Playbook Tracking and analytics
Set up the TikTok Pixel and Events API the right way
The TikTok Pixel alone loses a chunk of your conversions to browsers and consent. Here is how to set up the Pixel and the Events API together, deduplicated and matched, so TikTok optimizes on real data.
If you advertise on TikTok and you are running only the TikTok Pixel, you are feeding the algorithm partial data and paying for the privilege. The Pixel alone loses a real share of your conversions to ad blockers, app tracking choices, and browser cookie limits, and TikTok optimizes your spend on what it can see, which is less than what actually happened. The fix is to run the TikTok Pixel Events API together, deduplicated and matched. Here is how to set that up the right way.
The TikTok Pixel Events API, in one line each
The TikTok Pixel is the browser tag: it sends events, ViewContent, AddToCart, CompletePayment, from the shopper’s device. The Events API sends those same events server to server, from your server directly to TikTok, where ad blockers and browser limits cannot interfere. You do not choose between them. You run both, with a shared event ID so TikTok merges the two reports of the same action into one.
The Pixel tells TikTok what the browser still allows it to see. The Events API tells it what actually happened.
Set it up in order
Install the Pixel cleanly, once
Start the TikTok Pixel setup through the TikTok sales channel, your tag manager, or the direct install, and confirm it fires on the key events: page view, add to cart, and purchase. The most common mistake here is installing it twice, through the channel and a tag, which doubles everything before you have even started.
Turn on the Events API
Connect the TikTok Events API so the same events also send server side. On Shopify and major platforms this is often an official connection or app, including TikTok Shop tracking where you sell there; on a custom stack it is a server endpoint that forwards events to TikTok. This is the path that recovers the conversions the Pixel loses.
Set a shared event ID on both
This is the step that makes it safe. Every event sent from both the Pixel and the Events API must carry the same event_id, so TikTok deduplicates them. Without it, your conversions double and your reporting becomes useless. Confirm the IDs match on a real test event.
Enable advanced matching
Send hashed customer information, email and phone, with your events so TikTok can match more of them to real people. It is the same lever as Maximum data sharing on Meta: better signal in, more attributed conversions out, with nothing raw ever leaving your system.
Verify and reconcile
A TikTok tracking setup that holds
- Pixel installed once, firing on view, add to cart, and purchase
- Events API connected and sending the same events server side
- A shared event_id on every event so the two paths deduplicate
- Advanced matching on, sending hashed email and phone
- Tested in Events Manager: one event, both sources, matched
- Reconciled TikTok-reported conversions against real orders after a week
The pattern here is the one that runs through every tracking and analytics post: one event, one stable ID, the best signal you can give the platform, sent through a path the browser cannot block. It is the same job as a clean server-side setup, pointed at TikTok.
If you are spending on TikTok and your reported conversions look thin, or you are not sure the Pixel and Events API are deduplicating, that diagnosis and fix is exactly what a short tracking audit is built for.