TikTok Conversions API Setup: Fix Inflated Ad Tracking
TikTok’s default browser pixel uses a 1-day view-through attribution window that claims credit for sales it had nothing to do with, inflating ROAS by 40–60%. The TikTok Conversions API sends hashed purchase data directly from your server to TikTok — no browser involved, no inflated numbers.
Video walkthrough
Full architectural breakdown of how TikTok’s view-through attribution inflates ROAS and how to fix it with a server-side integration.
Scaling TikTok ad spend without server-side tracking is like reading a speedometer that adds 40% to every reading. You think you’re doing 60 mph. You’re doing 40. The TikTok browser pixel has the opposite problem from Meta’s — instead of losing data, it invents data by crediting itself for conversions it never influenced.
Why the TikTok pixel over-reports
TikTok’s browser pixel applies a 1-day view-through attribution window by default. That means any user who sees your ad — including someone who scrolled past it for half a second — gets attributed to your campaign if they buy something within 24 hours, even if they found your product through a Google search, a friend’s recommendation, or direct memory.
The result: your ROAS dashboard shows numbers that look real but reflect a mix of genuine paid conversions and organic sales the pixel borrowed credit for. Campaigns that are actually losing money appear profitable. You scale them. Ad spend increases. Real returns do not.
The only reliable fix is to stop using browser signals for attribution entirely and replace them with payment-confirmed, server-originated data.
What the TikTok Conversions API actually is
The TikTok Conversions API (sometimes called the Events API) is a direct connection between your backend server and TikTok’s data infrastructure. Instead of waiting for a browser to fire a pixel tag after a purchase, your server sends a verified conversion event — including the buyer’s hashed email and the TikTok Click ID (ttclid) — directly to TikTok’s endpoint.
Because the data comes from your payment processor and not from a browser, it is not affected by ad blockers, iOS privacy restrictions, or cookie loss. More importantly, it only fires when a real transaction completes — there is no view-through inflation.
Browser pixel vs. Conversions API
| Factor | Browser pixel | Conversions API |
|---|---|---|
| Attribution model | 1-day view-through (default) | Post-click only |
| Affected by ad blockers | Yes | No — server-side |
| Affected by iOS privacy changes | Yes | No |
| Data source | Browser (unreliable) | Payment processor (verified) |
| ROAS accuracy | Inflated 40–60% | Deterministic |
| Setup complexity | Low — paste a tag | Medium — requires webhook + hashing |
How the Make.com integration works
Make.com handles the entire routing sequence without requiring you to write or host custom server code. The flow runs automatically every time a payment completes.
Payment webhook fires
Stripe or Shopify sends a webhook to Make.com the moment a transaction is confirmed. The raw JSON payload contains order value, customer email, and any URL parameters captured at checkout.
Make.com extracts and hashes the data
Make.com pulls the ttclid from the payload, normalises the customer email to lowercase, removes whitespace, and applies SHA-256 hashing before any data leaves your system.
Verified payload sent to TikTok Events API
Make.com posts the formatted JSON to TikTok’s Events API endpoint. TikTok receives a confirmed purchase tied to a real click — no view-through credit, no inflated ROAS.
Prerequisite: you need a working webhook interceptor first
This flow requires your payment processor to send webhook events to Make.com before any conversion data can be routed. If you have not set that up yet, start with the guide to configure a Make.com Stripe webhook before continuing here.
Payload formatting requirements
The TikTok Events API documentation enforces strict rules on the JSON structure you send. Getting any of these wrong causes the server to reject the payload silently.
-
Capture the
ttclidon your landing page. The TikTok Click ID appears as a URL parameter when a user arrives from a TikTok ad. Your landing page must read this value and pass it through to the order object at checkout. Without it, TikTok cannot match the conversion to the correct campaign. - Normalise email before hashing. Convert the customer email to lowercase, remove any leading or trailing spaces, then hash the result with SHA-256. Sending an un-normalised string produces a hash that does not match TikTok’s own hashing of the same address, breaking match rates.
-
Use the correct event name. For purchase events the required string is
CompletePayment. Using a non-standard event name causes the payload to be accepted but not attributed to the right conversion goal. -
Include
valueandcurrency. Both fields are required for revenue reporting.valueshould be a decimal number (e.g.,49.00), andcurrencyshould be a three-letter ISO 4217 code (e.g.,USD).
Troubleshooting payload rejections
If your JSON payload is rejected by TikTok’s endpoint, the diagnostic logic is nearly identical to Meta’s CAPI. The guide to formatting server-side payload parameters for Meta covers the same field-level syntax errors that cause TikTok rejections — missing required fields, incorrect data types, and malformed hash strings.
The TikTok Offline Tracking Program
For retailers who need to connect physical store sales to TikTok ad spend, the Conversions API extends into the TikTok Offline Tracking Program. This is designed for businesses where a meaningful share of conversions happen in-store rather than online.
How it works
Retailers connect point-of-sale data to TikTok via an infrastructure partner such as LiveRamp. The connection uses OAuth authorisation and a 28-day lookback window, matching hashed loyalty card emails and transaction records against historical TikTok ad views. The result is an omnichannel view of true ROAS — not just the share of revenue that came through a browser.
This is not a tool for most direct-to-consumer operators. It requires an enterprise-level data agreement and a live POS integration. For digital-first businesses, the standard Conversions API via Make.com covers all the ground you need.
Build your full attribution stack
Server-side TikTok tracking is one piece. The complete Make.com attribution blueprint covers Stripe webhooks, pixel deduplication, and CRM routing in a single connected workflow.
Get the complete Make.com attribution blueprint →Frequently asked questions
Why is my TikTok pixel over-reporting sales?
The TikTok browser pixel applies a 1-day view-through attribution window by default. Any user who saw your ad — even briefly, without clicking — gets credited if they purchase within 24 hours, regardless of how they actually found your product. This inflates ROAS and makes losing campaigns look profitable.
What is the TikTok Conversions API?
It is a server-to-server connection that sends hashed, payment-verified conversion data directly from your backend to TikTok’s Events API. Because it bypasses the browser, it is not affected by ad blockers or iOS privacy restrictions, and it only records genuine post-click purchases.
Can Make.com handle the TikTok Conversions API setup?
Yes. Make.com’s HTTP modules can receive Stripe or Shopify webhooks, extract the ttclid, apply SHA-256 hashing to customer emails, and POST the formatted payload to TikTok’s endpoint — all without custom server code.
Do I still need the browser pixel if I set up the Conversions API?
You can run both in parallel during a transition period to compare data. Once you confirm the API is recording accurately, disabling or reducing the pixel’s attribution window (from view-through to click-through only) prevents double-counting and removes the inflation from your dashboard.
What is the TikTok Offline Tracking Program?
An enterprise extension of the Conversions API for retailers who need to connect physical point-of-sale data to TikTok ad views. It uses a 28-day lookback window and an OAuth-secured connection via data partners like LiveRamp to prove omnichannel ROAS.