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
| Endpoint | Method | What 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 name | Where | Notes |
|---|---|---|
auto_long_site_dwell | events[][0] | Automatic event. Seen on live sites. |
autobuttonclick | events[][0] | Automatic event. Seen on live stores; its value holds the clicked button's text. |
Any name starting with auto | events[][0] | Treated as an automatic event: value is page detail, not an amount. |
tw-PIXEL-CODE | txn_id | A 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- code | The 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.
| Field | Key(s) | Notes |
|---|---|---|
| Value | value | Read as an amount for configured and named events, never for automatic events. |
| Currency | currency | Kept exactly as sent. |
| Order ID | order_id | The only order key. |
| Event occurrence ID | conversion_id | Identifies one occurrence; not used as an order ID. |
| Configured code | txn_id | Identifies the tag or event code; not an order ID. |
| Number of items | num_items | Event-level count. |
| Products | contents[] | 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. |
| Content | content_ids, content_type, content_name, search_string | Shown as parameters. |
| Page | tw_document_href, tw_document_referrer, tw_iframe_status | Page URL, referrer and whether the tag ran in an iframe. |
Common problems
- Button text in
value. On a live store,autobuttonclicksentvalue="Add to cart". It was once flagged as an invalid number; it is now labeled "Automatic event detail (e.g. clicked button text)" and not read as money. - Only automatic events on cart actions. On the live stores checked, X sent only the base pixel and automatic events. None sent a configured cart event.
- Two hosts, one visit. Requests to
analytics.twitter.comandt.coappear side by side. Checkconversion_idororder_idbefore concluding an event was counted twice. - Event codes are opaque. A
tw-code does not say whether the event is a purchase, a lead or a cart action.
How to check it with Universal Pixel Debugger
- Open the site and click the Universal Pixel Debugger toolbar icon to open the side panel. Reload the page if nothing is captured yet.
- Find the X lane on the signal board and click it to show only X events.
- 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. - Open the X parameters checklist. It reads "N of M known fields sent", groups the sent keys, and lists the rest under Not sent.
- 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.