← All articles

Blog

TikTok Conversions Not Tracking? A Step-by-Step Diagnostic Guide

tiktok conversions not trackingtiktok pixel not trackingtiktok pixel no conversionstiktok conversions not showing

You're running TikTok Ads, but purchases and conversions never show up in the dashboard. Budget is being spent in full, yet results sit at zero — and without knowing why, your bidding and delivery optimization become pure guesswork. A pixel can "look installed" while sending TikTok no valid events at all.

Does any of this sound familiar?

  • You installed the pixel, but purchases/conversions are still at zero
  • It fires in the browser, but doesn't show up in TikTok
  • The event in Events Manager sits at "No events received"
  • TikTok's numbers don't match GA4 or your backend

This guide organizes what to check, and in what order, when TikTok conversions aren't tracking. Before you randomly start changing settings, work through it top to bottom.

First principle: there are only three kinds of "not tracking"

The biggest reason diagnosis goes wrong is treating "not tracking" as a single problem. In reality, the cause always falls into one of three categories. Simply knowing which one you're investigating makes the whole process dramatically easier.

Category What's happening Typical example
① Pixel / tag problem The measurement signal isn't being sent at all Pixel missing on the completion page / not firing
② Settings problem The signal arrives but isn't counted or matched correctly Wrong standard event name, event_id mismatch, dedup failure
③ Timing / blind-spot problem Nothing's broken — reporting delay or a condition drops it Waiting to report, consent/ATT signal loss, outside attribution window

The key point: ① and ② live in completely different places. Staring at the settings screen won't fix a pixel that isn't firing (①), and vice versa. Diagnostic steps 1–5 below are ordered to knock out these three categories efficiently, top to bottom.

Diagnosis 1: Is the TikTok pixel even on the completion page?

The first thing to check is whether the TikTok pixel is present on the page where the conversion actually happens (the purchase-complete page, thank-you page, inquiry-complete page, etc.).

  • Even if you think it's on every page, it's a classic miss for the completion page to be a different template where the pixel is absent
  • Confirming it on the homepage is meaningless if you haven't opened "the page at the exact moment the result occurs"

How to check: open the completion page directly and confirm the base pixel code loads. The easy way is the official TikTok Pixel Helper (Chrome extension), which lists the detected pixels and fired events.

Common pitfall: if "visitors reach the purchase-complete page but it isn't tracked," this Diagnosis 1 is almost always the cause. Check the exact page at the exact moment you want to measure.

Diagnosis 2: Is it firing? (check in DevTools)

"The pixel is installed" and "the pixel is firing" are two different things. Confirm that a request is actually sent the moment the button is clicked or the completion page loads.

  1. Open the completion page (or the action that triggers the conversion) and open the "Network" tab in DevTools
  2. Filter for analytics.tiktok.com
  3. See whether a request fires on that action
  4. Check the contents — is the standard event name (CompletePayment, PlaceAnOrder, Purchase, etc.) and are parameters like value and currency what you intended?

What it tells you: which event was sent, with what value (the most precise view of ② firing).

If you use Google Tag Manager (GTM): check that the TikTok tag's trigger is set to the correct event (e.g., a "Page View" trigger on the thank-you page, or a custom event that fires on form submission). A common GTM mistake is setting the trigger to "All Pages" for the conversion event — this fires on every page load instead of only the conversion moment. Also confirm that the variables for value and currency resolve correctly in GTM's Preview mode; unresolved variables silently send empty values.

Common pitfall: a misspelled standard event name or a custom name won't be handled correctly in optimization/reporting even if it arrives. Also, with an ad blocker or tracking protection on, analytics.tiktok.com itself gets blocked and looks like "it isn't firing." Verify in a clean state with those turned off. For a deeper look at how blockers affect pixel-based tracking, see How Ad Blockers Break Pixel Tracking.

Diagnosis 3: Read the "status / receipt" in Events Manager

In TikTok Ads' Events Manager, check the receipt status of your pixel and events. It displays an important clue.

  • Is the pixel receiving events recently (active, or "No events received")?
  • Is your target standard event (CompletePayment, etc.) arriving with the expected count and parameters?
  • Use the test feature to confirm your own action reaches it in real time

Stuck at "No events received" … no signal has arrived, ever or lately. Go back to Diagnosis 1 & 2 (installation / firing).

Common pitfall: if you leave "No events received" alone and keep tweaking settings, it won't fix anything. That's a sign the problem is on the pixel side — the right move is to shift your attention back to Diagnosis 1 & 2.

Diagnosis 4: Deduplication with the Events API (server side)

If you're using TikTok's Events API (server-side events) alongside the browser pixel, "receipt" gets more complex. This is easy to overlook.

  • Are the server events arriving in Events Manager alongside the browser events?
  • Do both share the same event name and event_id, so TikTok can deduplicate them?
  • A missing or mismatched event_id causes double-counting, or conversely, one side to go missing

What it tells you: not just whether it arrives, but whether it's matched and deduplicated correctly.

Common pitfall: if you send from both browser and server but don't share the event_id, you get numbers that don't add up (too high or too low). Check the event_id match first.

Diagnosis 5: Is it being dropped by a blind spot (consent, attribution window, iOS/ATT)?

If you've found no problems so far yet numbers are missing or low, suspect a blind spot where measurement is being dropped.

  • Consent (cookie consent banner): when users haven't consented, measurement can be restricted. For details, see Why Consent Mode Makes Your Conversions Drop.
  • Attribution window: results that occur after the click/view-to-conversion window has passed aren't counted as that ad's conversion.
  • iOS / ATT (signal loss): depending on App Tracking Transparency permission, the measurable scope shrinks for some traffic. Even when a browser event arrives, its attribution to the ad can weaken.

Common pitfall: if "even when I complete a purchase myself, nothing is tracked," consent, tracking protection, or an ad blocker may be active. Don't conclude "zero = broken" from your own excluded test.

Overlooked cause: ttclid (TikTok Click ID) getting stripped

Even when your pixel fires and Events Manager receives the event, TikTok may not attribute it to the ad if the ttclid parameter is missing. ttclid is a click identifier TikTok appends to your landing page URL when a user taps an ad. It is what connects a conversion event back to the specific ad, ad group, and campaign.

ttclid gets silently lost in several common scenarios:

  • URL redirects (e.g., a 301/302 redirect between the ad's destination and the actual landing page) strip query parameters
  • URL shorteners or link wrappers drop the parameter
  • Cross-domain navigation (the ad lands on domain A, but the conversion page is on domain B) without passing the parameter through
  • Single-page apps that rewrite the URL on route change before the pixel reads it

How to check: click through from a TikTok ad (or use a test link with ?ttclid=test123) and confirm the parameter is still present in the URL when the landing page finishes loading. If your Events API integration relies on ttclid, verify that your backend captures and stores it from the landing URL and includes it in the server event payload.

Common pitfall: everything "looks green" — the pixel fires, Events Manager receives the event — yet conversions are under-reported because the event can't be matched to the ad click. If you see events in Events Manager but conversion counts in campaign reporting are lower than expected, check ttclid first.

Overlooked cause: low Event Match Quality (EMQ) score

TikTok assigns an Event Match Quality (EMQ) score (0–10) to each event type in Events Manager. EMQ measures how confidently TikTok can match an incoming event to a real user on the platform. A low EMQ means events arrive but many cannot be attributed — they effectively disappear from your conversion count.

  • Below 5.0: TikTok restricts access to value-based bidding objectives. Conversion reporting will be significantly under-counted.
  • Browser pixel alone typically caps around 6.0–6.5 because iOS ATT and Safari ITP prevent the pixel from transmitting the customer identifiers that push the score higher.
  • Target 8.0+ by combining the pixel with the Events API and including hashed email, hashed phone, and external ID in every conversion event payload.

How to check: in Events Manager, select your pixel and look at the EMQ score next to each event. If it is below 6, your received events are likely being matched to users at a low rate — meaning conversions are happening but not being counted.

Common pitfall: advertisers see events arriving in Events Manager and assume tracking is healthy, but a low EMQ means many of those events are "orphaned" — they can't be tied to a TikTok user or ad interaction. Improving EMQ through the Events API and richer customer identifiers is the fix, not pixel-side changes.

It may look like "not tracking," but you're just waiting for it to report

A surprisingly common case: panicking when nothing is actually broken. TikTok conversions have a reporting delay from when they occur to when they appear in the dashboard. If you decide "it's zero, it's broken" right after setup or swapping a pixel and start changing settings, you may break healthy wiring instead. First wait a few hours to the next day, and confirm whether it's still zero. To verify in real time, Diagnosis 2 (firing check in DevTools) and the Events Manager test feature are the tools.

Diagnostic quick-reference

A table that points you to the first place to suspect, based on the symptom.

Symptom Suspect first
Events Manager shows "No events received" Diagnosis 1 & 2 (installation / firing)
At the purchase-complete page but zero Diagnosis 1 (pixel missing on completion page)
Fires in the browser but not in TikTok Diagnosis 3 & 5 (receipt status / consent-ATT)
Numbers don't match GA4 or backend Diagnosis 4 (event_id mismatch / dedup)
Nothing tracked when I test myself Diagnosis 5 (consent / exclusion) / Diagnosis 2 (ad blocker)
Events received but campaign conversions low ttclid stripping / low EMQ score
Zero right after setup Check the reporting delay (timing) first

What checking on your own machine can't tell you

Diagnostics 1–5 are all useful, but checking once, by hand, on your own machine has two structural limits.

  1. Your environment isn't your visitors' environment. Login state, extensions and IP mean it can look fine on your machine yet be missing under real visitor conditions.
  2. Conversions involving an ad click are hard to verify. To properly see "does it really track via an ad," you'd need to click a live ad to recreate the path — which carries the risk of an ad-policy violation as a self-click.

Judging "it fires on my action, so it's fine" tends to miss the problem of data going missing on the real path your visitors take.

A checklist to verify with confidence

  • Is the base pixel on every page (especially the purchase-complete page)?
  • Does the target event fire in Pixel Helper or DevTools (analytics.tiktok.com)?
  • Is the standard event name (CompletePayment, etc.) correct, with value and currency present?
  • Does it arrive in Events Manager with an active receipt status?
  • When using the Events API, do browser and server events share the same event name and event_id (dedup)?
  • Is the ttclid parameter preserved through redirects and cross-domain navigation to the conversion page?
  • Is the EMQ score for your conversion event at 6.0 or above in Events Manager?
  • Is measurement stopped for some users by consent, attribution window, or iOS/ATT?
  • Is it missing under real production visitor conditions, not just your one pattern?

Frequently asked questions

Q. I set up the pixel but purchase conversions stay at zero. A. In rough order of likelihood: ① the pixel isn't on the completion page (Diagnosis 1), ② a wrong standard event name or a firing miss (Diagnosis 2), ③ Events Manager isn't receiving it (Diagnosis 3), ④ reporting delay (timing), ⑤ signal loss from consent or ATT (Diagnosis 5). Work through this article from Diagnosis 1.

Q. It fires in the browser but conversions don't show in TikTok. A. Firing (②) and receipt (③) are different. Check whether it actually arrives in Events Manager, whether the standard event name and value/currency are correct, and whether consent or ATT is reducing signal. If you also use the Events API, verify event_id deduplication.

Q. The numbers don't match GA4 or my backend. A. If you send from both browser and server (Events API) without sharing the event_id, double-counting or missing events make the numbers disagree (Diagnosis 4). Differences in attribution window can also cause gaps.

Q. Do I have to include value and currency? A. For purchase events, sending value (amount) and currency correctly is what makes ROAS optimization and revenue reporting work. If they're missing, value-based optimization won't function even when the event is measured.

Q. Is it safer to click my own ad to verify? A. No. Clicking your own ad is treated as a policy violation (self-click) and risks account review or suspension. Verify from outside your own account — an independent environment.

Conclusion: don't stop at firing — confirm "did TikTok receive it?"

"TikTok conversions not tracking" only has three kinds of cause: ① pixel, ② settings, ③ timing/blind spots. Isolating in order — Diagnosis 1 (installation) → 2 (firing) → 3 (receipt status) → 4 (Events API dedup) → 5 (blind spots) — gets you to the cause without randomly changing settings. Relatedly, How to Verify Your TikTok Pixel Is Firing and the Conversion Tracking Verification Checklist are useful companions. If the pixel fires but the conversion isn't recorded, see Why Your Conversion Tag Fires but Isn't Recorded for the acceptance-stage causes that apply across platforms.

But firing checks on your own machine have limits. Going further — confirming the data is actually received and recorded, on the real path your visitors take, in production — is what "it's tracking" truly means.

ConversionOK runs your live page in an independent, isolated browser and intercepts the TikTok events actually sent, then verifies them — with no need to click your own ad and no interference from your office environment. Start with a free static check to confirm the entry point of your measurement.