Home / Tracking parameter reference
TikTok sends its events as a JSON body rather than a query string. What each field in that body means, and the mistakes that stop an event from matching a product or a server event.
The TikTok Pixel sends events to analytics.tiktok.com, as JSON POSTs to
/api/v2/pixel/track. Nothing of interest is in the URL: the pixel code, the event and its properties
are all in the body. In DevTools, read the Payload tab — or paste the URL and the body into the request decoder,
which flattens the JSON into the dotted names used below.
Which pixel and which event.
| Parameter | What it means |
|---|---|
eventEvent Name | TikTok event name. |
event_id | Deduplication id shared with the Events API. |
timestamp | When the event happened, as the pixel recorded it. |
context.pixel.code | The TikTok pixel this event reports to. Check it against the pixel in Events Manager. |
Where the event happened.
| Parameter | What it means |
|---|---|
context.page.url | The page the event happened on. |
context.page.referrer | The page the visitor came from. |
What you passed as the second argument of ttq.track(…).
| Parameter | What it means |
|---|---|
properties.value | The value of the event, as a number. TikTok uses it for value-based optimisation. |
properties.currency | Currency of that value, as a three-letter ISO 4217 code. |
properties.content_id | The product id. It must match the id in your TikTok catalogue for the event to match a product. |
properties.content_type | Whether content_id refers to a product or a product group. |
properties.content_name | The product or page name. |
properties.contents | The products in the event, each with its id, quantity and price, as an array. |
properties.quantity | How many items the event covers. |
properties.query | The search query, sent with a Search event. |
The checks the Tag Master extension runs on every TikTok Pixel hit it captures. Each is something the platform drops, cuts or misreports without saying so in its own interface.
Worth a lookA purchase with no event_id
Browser and server events without a shared id are counted twice.
Fix: Pass event_id in the third argument of ttq.track and send the same value from the Events API.
Dropped or wrongA content_type TikTok does not accept
An unrecognised content_type breaks catalogue matching, and Video Shopping Ads stop attributing.
Fix: Use one of: product, product_group, destination, hotel, flight, vehicle.
Worth a lookA commerce event with no content_id
Without it TikTok cannot match the event to a catalogue product, which Video Shopping Ads require.
Fix: Send content_id (and content_type) with every commerce event.
Dropped or wrongA currency that is not a three-letter code
Platforms cannot convert an unknown currency, so the value is dropped or read as the account default — silently changing what the sale was worth.
Fix: Send the three-letter code: TRY, EUR, USD. Not the symbol, not lowercase.
Dropped or wrongA value that is not a plain number
A value carrying a currency sign, a thousands separator or a comma decimal reads as zero on the platform side.
Fix: Send 1649.25 — no symbols, no spaces, dot as the decimal separator.
Have a request in front of you? Paste it into the tracking request decoder and every parameter above is named on the hit itself, with these checks run on it. The Tag Master extension does the same for every request on the page, live.
TikTok sends events as a JSON POST. The URL is just the endpoint; the event, the pixel code and every property are in the request body.
The deduplication ID. When the same event is also sent from your server through the Events API with the same ID, TikTok counts it once.
product or product_group for a catalogue, and destination, hotel, flight or vehicle for those verticals. Anything else breaks catalogue matching.
Other references: GA4 · Meta Pixel · Google Ads conversion
Tag Master is free, needs no account, and collects no data.
Add to Chrome — Free