Universal Pixel Debugger

Networks · X Pixel

X (Twitter) Pixel events and parameters

Updated 2026-09-27

The X Pixel (formerly the Twitter Pixel) is the website tag X Ads uses for page visits and conversion events. The script loads from static.ads-twitter.com/uwt.js, and events are sent to the adsct paths on analytics.twitter.com, analytics.x.com and t.co, each carrying the pixel or event code in txn_id.

Where the events go

EndpointMethodWhat it carries
analytics.twitter.com/i/adsct, analytics.x.com/i/adsct, t.co/i/adsct—Named-event batches: txn_id plus an events list of tuples, each a name and its properties
analytics.twitter.com/1/i/adsct, analytics.x.com/1/i/adsct, t.co/1/i/adsct—Base pixel and configured-code events: txn_id plus event properties

A page can send requests to both analytics.twitter.com and t.co. They are kept as separate observations, and two requests alone do not prove double counting.

Event names as sent

On /i/adsct, each tuple in events becomes its own event, named by the tuple's first element (events[][0]), exactly as sent. On /1/i/adsct, the name comes from txn_id.

Sent nameWhereNotes
auto_long_site_dwellevents[][0]Automatic event. Seen on live sites.
autobuttonclickevents[][0]Automatic event. Seen on live stores; its value holds the clicked button's text.
Any name starting with autoevents[][0]Treated as an automatic event: value is page detail, not an amount.
tw-PIXEL-CODEtxn_idA configured event code. The full code is the name. The conversion type is set in X Ads and is not read from the code, even if it ends in a word like "purchase".
Base pixel (grey label)txn_id without a tw- codeThe base pixel request. No event name was sent.

Value, currency, order ID and products

In a batch, these keys sit in the tuple's properties (events[][1].value); in other requests they sit under event (event.value). Each tuple's properties stay with that tuple.

FieldKey(s)Notes
ValuevalueRead as an amount for configured and named events, never for automatic events.
CurrencycurrencyKept exactly as sent.
Order IDorder_idThe only order key.
Event occurrence IDconversion_idIdentifies one occurrence; not used as an order ID.
Configured codetxn_idIdentifies the tag or event code; not an order ID.
Number of itemsnum_itemsEvent-level count.
Productscontents[]Product ID from content_id or item_id; quantity from num_items; price from item_price or content_price; also name, currency, sku, brand, category, content_group_id.
Contentcontent_ids, content_type, content_name, search_stringShown as parameters.
Pagetw_document_href, tw_document_referrer, tw_iframe_statusPage URL, referrer and whether the tag ran in an iframe.

Common problems

How to check it with Universal Pixel Debugger

  1. Open the site and click the Universal Pixel Debugger toolbar icon to open the side panel. Reload the page if nothing is captured yet.
  2. Find the X lane on the signal board and click it to show only X events.
  3. Click an event. Value and currency are shown with the key they came from (for example events[][1].value), followed by the order ID, occurrence ID and products, or Not observed where nothing was sent.
  4. Open the X parameters checklist. It reads "N of M known fields sent", groups the sent keys, and lists the rest under Not sent.
  5. Check the issues: invalid numeric value, invalid currency format, potential duplicates, and value, currency or product mismatches with other networks that sent the same order ID.

A request that sent no event name is shown with a grey label instead of a sent name. For X, that is Base pixel.

Sources