TikTok Pixel & Events API not tracking? Setup + troubleshooting (incl. Shopify) 2026
You ran ads for a few days, the dashboard shows 0 conversions, so you blame the creative or the audience. But very often the thing that's actually broken is your tracking. The orders are sitting in Shopify; TikTok just never received a single one. Let's fix that from the ground up.
If your ads have clicks and views but no sales, don't kill them yet. Read this alongside: TikTok ads not converting? Clicks and views but no sales (2026). More than half of 'not converting' cases are really tracking that was never set up right.
Pixel vs Events API: the core difference
This is the most basic and most misunderstood part:
- TikTok Pixel (browser-side): a JavaScript snippet running in the buyer's browser. When they browse, add to cart, or pay, the browser sends the event to TikTok. Fast to install, but signal loss is high — iOS privacy limits, ad blockers, cookie-consent banners, and dropped connections all stop events from sending.
- Events API (server-side): your server sends the event straight to TikTok after the order is confirmed, bypassing the browser. Ad blockers can't reach it, privacy settings can't block it, and you can attach SHA256-hashed email/phone to improve match quality.
Since the iOS privacy changes and the rise of blockers, browser-only Pixel keeps losing more signal. So the 2026 standard is: Events API as the primary signal, Pixel as backup, both running, with deduplication on.
Why you must deduplicate
Run both and the same order can get counted twice (once by Pixel, once by the API), wrecking CPA and ROAS. The fix is to send the same event_id on both sides: TikTok merges events that share the same event name and event_id and counts them once. Per TikTok's docs, the dedup match window is within 48 hours of the first event (and a second copy arriving roughly 5 minutes later still merges). Note: if you send different, non-overlapping events on each channel, you don't need event_id dedup — but in ecommerce, Purchase almost always overlaps, so just pass the event_id.
How to install (three paths)
| Method | Best for | Notes |
|---|---|---|
| Shopify native TikTok integration | Most Shopify sellers | Routes events through Shopify Customer Events (custom-pixel sandbox). Least effort. |
| Google Tag Manager (GTM) | Non-Shopify sites / centralized tags | Deploy Pixel via a GTM container; flexible but you map events yourself. |
| Manual code | Self-hosted, Webflow, etc. | Base code site-wide, event code on the matching pages. |
Shopify sellers, take note: Shopify now runs third-party pixels inside the Customer Events sandbox. That means the pixel can't see the full DOM — you use Shopify's standard events (product_viewed, checkout_completed), and any custom DOM-scraping breaks. After installing, confirm under Settings -> Customer events that the TikTok entry shows 'Connected'.
How to test that it actually works
Three tools, in order:
- TikTok Pixel Helper: a Chrome extension. Load your site and check whether the Pixel fires, whether event parameters are complete, and whether anything errors. This is the browser-level health check.
- Events Manager -> Test Events: in TikTok Ads Manager go to Tools -> Events Manager -> Data Sources, select your pixel, open the Test Events tab, enter your site URL (or scan the QR code to browse in the in-app browser), then click through view / add-to-cart / checkout. Events should appear in the panel within seconds. This is the step that confirms data really reached TikTok.
- Diagnostics tab: surfaces recurring production issues (a long-missing event, incomplete parameters) with severity and fix instructions.
Shopify users can also watch events and payloads live under Settings -> Customer events -> Test, confirming checkout_completed carries value and currency.
The most common reasons it's NOT tracking
- Pixel never fires: base code isn't site-wide, or the app embed isn't enabled in the theme. Confirm with Pixel Helper first.
- Events not mapped: the killer is the payment event not mapped to CompletePayment / Purchase. You might be tracking ViewContent but missing the actual purchase event the algorithm optimizes toward.
- Domain not verified: with multiple domains (especially when checkout lives on a different domain, like hosted checkout), there's no Pixel on the checkout domain, so Purchase never fires. Verify and publish the domain in Events Manager.
- Consent / cookie banner blocking: before the user clicks 'accept', the banner blocks the Pixel and the event is lost.
- Duplicate events: no event_id, so Pixel and API each count once — inflated, messy data.
- Wrong Pixel ID: copy-paste grabbed another account's ID, or your test and live stores use different IDs.
- Shopify sandbox limits: old DOM-scraping custom code fails in the new sandbox — switch to standard events.
- Blockers / incognito noise: when testing, disable ad blockers and use an incognito window to rule out cache.
Broken tracking = ads that 'look like they don't convert'
This is where it costs you the most. If Purchase isn't sent back, TikTok's algorithm doesn't know who bought, so it can't find more buyers to optimize toward. The result: CPA spikes, ROAS lies, and you blame the creative and the audience when the signal was simply cut. The algorithm is fed by data — don't tell it who converted and it's flying blind. Fixing tracking often beats ten new creatives. To push costs down further, see how to lower TikTok ads CPA while scaling (2026).
Step-by-step fix checklist
- Confirm the Pixel base code loads site-wide (verify with Pixel Helper).
- Confirm key events are mapped: at least ViewContent, AddToCart, CompletePayment/Purchase.
- Run a full purchase in Events Manager -> Test Events; confirm Purchase carries value + currency.
- Deploy the Events API (built into the Shopify integration, or server-side), passing the same event_id on both channels to enable dedup.
- Verify and publish every relevant domain (including the checkout domain).
- Audit consent/cookie logic so the Pixel fires (or re-fires) after acceptance.
- Match the Pixel ID to your ad account; keep test and live stores separate.
- Wait for data to flow back, then re-read ad performance — don't conclude 'bad creative' before tracking is fixed.
Want to know which categories have real demand and aren't yet crowded by affiliates? Check the Opportunity Score in EshopPick's Category Opportunity Radar, and spend your now-fixed tracking on products worth advertising -> open EshopPick for free, real US TikTok Shop sales data this week.
Frequently asked questions
Why is my TikTok Pixel not tracking? Usual culprits: base code not loaded site-wide, the payment event not mapped to CompletePayment/Purchase, the checkout domain not verified, a cookie-consent banner blocking it, or the wrong Pixel ID. Work through the fix checklist above.
What is the difference between TikTok Pixel and Events API? Pixel runs in the browser and is easily blocked by ad blockers and privacy settings; Events API sends server-side, bypassing the browser, so data is more reliable and complete. The 2026 standard is to use both with event_id dedup.
How do I set up TikTok Pixel on Shopify? Easiest is the native Shopify TikTok integration, which sends events through the Customer Events sandbox. After installing, confirm TikTok shows 'Connected' under Settings -> Customer events, then verify live with Test.
How do I test if my TikTok Pixel is working? Use TikTok Pixel Helper for the browser-side check, then run a real purchase through Events Manager Test Events and confirm the Purchase event reaches TikTok with value and currency.
Why are my TikTok conversions not showing? Usually the Purchase event isn't being sent back (domain not verified, event not mapped, or consent banner blocking), sometimes attribution-window or timing lag. Confirm in Test Events that the event arrives first.
Do I need Events API for TikTok ads? Strongly recommended. Pixel-only loses a lot of signal under iOS and blockers; Events API recovers those lost conversions, directly affecting algorithm optimization and the ROAS you see.
Leads EshopPick's paid-growth desk. Covers Meta, Google and TikTok ad buying and creative testing, creators and live, email/SMS and product-listing SEO. Breaks down tactics through one lens — does it convert — to turn traffic into orders.
