How to check your X (Twitter) pixel is working
The X pixel works if the browser loads uwt.js from static.ads-twitter.com and sends requests to analytics.twitter.com or t.co ending in /adsct, with your pixel ID. Conversions are separate events with their own event ID (tw-…), and a purchase should carry a value and a currency.
Skip the DevTools: the free scan loads your page in a real browser, accepts and rejects the cookie banner, and shows what the X (Twitter) pixel actually sent.
At a glance
- Tag script
static.ads-twitter.com/uwt.js(the older single-event tag usesoct.js)- Event request
analytics.twitter.com/1/i/adsct?…andt.co/1/i/adsct?…, withtxn_idorp_id- Pixel ID
- A short code of letters and digits, used in
twq('config', '<pixel ID>') - Click ID
twclid- Conversion events
- Each has an event ID like
tw-abc12-def34, created in Events Manager
Check it yourself in two minutes
- Open DevTools on the Network tab, filter on
adsct, accept the banner and load a page. - You should see one request to each of
analytics.twitter.comandt.coper event. The page view comes from the base code'stwq('config', …). - Trigger a conversion (a test order or sign-up) and look for a request carrying the conversion's
tw-event ID. A purchase should include a value and a currency. - The X Pixel Helper extension for Chrome lists the events; Events Manager in X Ads shows whether each conversion event has received activity.
Why the X (Twitter) pixel breaks, and how to fix it
Conversion events created but never called
With the current pixel, the base code only sends page views. Each conversion you create in Events Manager needs its own call on the page where it happens:
twq('event', 'tw-abc12-def34', {
value: 84.50,
currency: 'USD',
conversion_id: 'order-10045'
});
If the call is missing, the event stays at "no activity" even though the pixel shows as active.
Old single-event tags still on the site
Older X setups used one website tag per conversion (oct.js with twttr.conversion.trackPid). They often survive redesigns next to the new pixel, so conversions are counted by both or attributed to retired events. Remove the old tags once the new events record.
Purchase without value
Without value and currency, X can count purchases but not revenue, and value-based bidding has nothing to work with. Send the order total as a number with an ISO currency code.
The pixel loads before consent
The X pixel sets cookies when it loads and has no consent API of its own. It must load only after the visitor accepts marketing cookies. See Ad pixel fires before consent or after "reject".
twclid lost in a redirect
X adds twclid to ad clicks. A redirect that drops the query string loses it, and the conversion cannot be tied to the click. Test it with the click ID redirect tester.
What the free scan checks
- X pixel loads, and sends at least a page view
- Only one X ID, or a warning if there are more
- X pixel waits until the visitor accepts cookies
- X pixel stops after the visitor clicks "reject all"
- No email addresses in plain text in X pixel requests
- The twclid click ID survives your redirects
Server-side events (Conversions APIs, server-side tagging) are invisible to a public scan, so the report never marks them as working or broken.
Related
- Click ID redirect tester (gclid, fbclid, ttclid, msclkid)
- Ad pixel fires before consent or after "reject": how to fix it
- Redirects drop the gclid and other ad click IDs: how to keep them
Sources
Updated 2026-10-27. Based on the platforms' public documentation and the requests their public tags make; menus and names change, so check the linked pages if a step looks different.