Universal Pixel Debugger

Networks · TikTok

TikTok Pixel events and parameters

Updated 2026-09-27

The TikTok Pixel is the website tag that reports events such as page views, add to cart and checkout to TikTok Ads. Its events travel as JSON in browser requests to analytics.tiktok.com, mainly /api/v2/pixel. The pixel also sends supporting requests that carry no event, so a request to TikTok alone does not show that an event fired.

Where the events go

EndpointMethodWhat it carries
analytics.tiktok.com/api/v2/pixelPOSTOne event as JSON, several events in an events or batch array, or the event JSON base64-encoded in analytics_message.
analytics.tiktok.com/api/v2/pixel/actPOST, or GET with analytics_messageAutomatic page metadata from the pixel script: action: "Metadata", auto_collected_properties (such as page_trigger and content_data) and an empty properties object. No event name. A second shape, action: "Direct", has also been seen; TikTok does not document it.

TikTok's Shopify integration sends the same event format to /api/v2/shopify_pixel. Paths ending in inter or perf are support traffic and carry no events. The script itself loads from analytics.tiktok.com/i18n/pixel/events.js (or sdk.js or shopify.js); a loaded script is setup evidence, not an event.

Event names as sent

The event name is in event; some formats use event_name. The pixel ID is in context.pixel.code (or pixel_code or pixel_id), and the occurrence ID in event_id or eventID. Names are case-sensitive, so check the exact spelling.

Name as sentNotes
PageviewPage view. Note the lowercase v.
ViewContentProduct or content view.
AddToCartAdd to cart.
SearchSite search. On a live store, the term was in properties.query.
InitiateCheckoutCheckout started.
CompletePaymentThe standard purchase event (not yet confirmed on a live purchase: we don't place real orders).
LandingPageView, EngagedSessionAlso seen on page loads on live sites.

Value, currency, order ID and products

Event fields sit in a properties object; some formats use params with the same keys.

FieldKey(s)Notes
Event valueproperties.value, params.valueMust be a number. Never taken from an item price.
Currencyproperties.currency, params.currencyKept exactly as sent.
Order IDtransaction_id, order_id, orderId (under properties or params)Read in that order.
Occurrence IDevent_id, eventIDIdentifies this event, separate from the order ID.
Products (list)properties.contents[] or properties.items[]Per item: ID in content_id, id or item_id; name in content_name, name or item_name; quantity; price or item_price; currency, sku, brand, category. One row per item.
Single productproperties.content_id with content_name, price, quantityRead as one product only when exactly one ID is sent. content_ids holds a list of IDs.
Item priceproperties.price, contents[].priceThe product's price, not the event value.

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.
  2. Find the TikTok lane on the signal board. It shows the event count, a red ! for request errors and an amber ? for requests with no decoded event, such as metadata requests. Click the lane to show only TikTok.
  3. Click an event. Value and currency each show the key they came from, for example "from properties.value", or read Not observed or Invalid.
  4. Open the TikTok parameters checklist: "N of M known fields sent", the sent fields by section, and a Not sent list. Anything else the request carried is under Other sent fields.
  5. Check the issues: invalid numeric value or currency, a value, currency or product mismatch when events on several networks share an order ID, and data that differs between destinations.

Sources