How to check if your TikTok pixel is working
The TikTok pixel works if the browser sends POST requests to analytics.tiktok.com/api/v2/pixel carrying your pixel code and an event name. The page view comes from ttq.page(); purchases should arrive as a CompletePayment or Purchase event with a value, a currency and an event_id.
Skip the DevTools: the free scan loads your page in a real browser, accepts and rejects the cookie banner, and shows what the TikTok pixel actually sent.
At a glance
- Tag script
analytics.tiktok.com/i18n/pixel/events.js?sdkid=<pixel code>- Event request
- POST to
analytics.tiktok.com/api/v2/pixel, event details in a JSON body - Pixel code
- Around 20 capital letters and digits, usually starting with C
- Click ID
ttclid- Consent
ttq.holdConsent()before the pixel loads, thenttq.grantConsent()orttq.revokeConsent()
Check it yourself in two minutes
- Open your site in a private window with DevTools open on the Network tab, and filter on
analytics.tiktok.com. - Accept the cookie banner and reload. You should see
events.jsload and then one or more requests to/api/v2/pixel. - Open one of those requests and look at the Payload:
context.pixel.codeis your pixel code andeventis the event name (the page view usually shows asPageview). - Go through a test purchase. On the confirmation page, the payload should have
"event": "CompletePayment"(or"Purchase"), and underpropertiesa numericvalueand acurrencysuch as"USD". Check forevent_idtoo. - In TikTok Events Manager, open the pixel and use Test events to watch the same events arrive.
TikTok Pixel Helper (a Chrome extension) gives a quicker overview, including warnings about missing parameters.
Why the TikTok pixel breaks, and how to fix it
CompletePayment without value or currency
Value-based optimisation and ROAS reporting need both. TikTok's standard events expect value as a number and currency as an ISO code:
ttq.track('CompletePayment', {
value: 59.00,
currency: 'GBP',
contents: [{ content_id: 'SKU-123', quantity: 1, price: 59.00 }]
}, { event_id: 'order-20391' });
For catalog (video shopping) ads, content_id must match the product IDs in your TikTok catalog, or the events cannot be tied to products.
Pixel and Events API counted twice
Shopify and other platforms often send the same events from the server through TikTok's Events API. TikTok deduplicates a browser and a server event when both have the same event_id (and event name). Without it, purchases are reported twice. Check the browser payload has an event_id and that your server integration sends the same value.
Two installs of the same pixel
A pixel added through the TikTok sales channel app plus a manual install in the theme or Google Tag Manager means every event is sent twice. In the Network tab you see two /api/v2/pixel requests with the same event per page view. Remove one install.
The pixel ignores the cookie banner
TikTok's pixel has its own consent switch: call ttq.holdConsent() before it loads, so it waits, and ttq.grantConsent() when the visitor accepts. Without it, or without your consent tool blocking the pixel, events go out before the visitor answers. See Ad pixel fires before consent or after "reject".
ttclid lost on the landing page
TikTok adds ttclid to ad clicks and the pixel stores it for attribution. A redirect that drops the query string (http to https, a country page, a trailing slash) loses it, and conversions from TikTok look like they came from nowhere. Test it with the click ID redirect tester.
What the free scan checks
- TikTok pixel loads, and sends at least a page view
- Only one TikTok ID, or a warning if there are more
- TikTok pixel waits until the visitor accepts cookies
- TikTok pixel stops after the visitor clicks "reject all"
- No email addresses in plain text in TikTok pixel requests
- On an order confirmation page: the purchase carries a value, a currency and an event ID
- The ttclid 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
- Why Meta, Google Ads and GA4 don't match your orders
Sources
- TikTok: Set up and verify the pixel
- TikTok: Supported standard events and parameters
- TikTok: About event deduplication
- TikTok: How to use cookies with TikTok Pixel
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.