Skip to main content
Server-Side Attribution

TikTok CAPI Recovery Calculator: Estimate Missing Conversion Signal (2026)

Models potential TikTok-attributed signal recovery. It does not predict additional revenue.

By The Architect, CreatorOpsMatrix Tracking & attribution tool
Affiliate disclosure: The Make.com link on this page may be an affiliate link. CreatorOpsMatrix may earn a commission if you register or purchase through it, at no additional cost to you.
Quick answer

This calculator does not claim to know your store’s “true revenue.” It models how much TikTok-attributed conversion value could be missing from the platform’s received signal, then estimates how much of that modeled gap could be recovered by a correctly implemented TikTok Events API setup. Use your measured signal gap whenever possible; defaults are illustrative scenarios, not TikTok benchmarks or expected recovery rates.

Signal recovery is not attribution recovery

An event can reach TikTok and still not become a TikTok-attributed conversion. Attribution depends on matching, the attribution window configured in Attribution Manager, and TikTok’s own logic. This calculator models the first step only: how much conversion signal reaches the platform.

Key facts

TikTok recommends Pixel and Events API together, with event_id deduplication. TikTok matches duplicates on pixel ID, event name and event_id. Pixel and API copies arriving within 5 minutes are merged; later copies up to 48 hours after the first are deduplicated. Events API 2.0 posts to /open_api/v1.3/event/track/. Purchase replaced CompletePayment as TikTok’s standard event name in 2025, and legacy names still work. ttclid and _ttp last 13 months from the last date used. EMQ is a match-key coverage diagnostic, not a recovery percentage.

TikTok CAPI Recovery Calculator

Enter what TikTok currently reports, then estimate the percentage of attributed conversion value you believe is missing and how much of that missing signal a server-side implementation could realistically capture.

Best input = measured data

If you can compare your backend purchase records with the corresponding TikTok event records, use that observed gap instead of guessing from iOS traffic share. iOS share, Safari share or ad-blocker prevalence alone cannot tell you how much TikTok-attributed conversion value is actually missing.

TikTok’s published reference point

TikTok reports that, on average, advertisers using Pixel and Events API together saw 19% more events captured and a 15% improvement in cost per action, based on a TikTok analysis covering November 2022 to February 2023. Treat this as context, not a benchmark for your account: it is a TikTok-run average, it is several years old, and it measures events captured rather than your attributed value. Under this calculator’s gap definition, “19% more events” works out to a gap of roughly 16% (0.19 ÷ 1.19).

Build your recovery scenario

Defaults are illustrative scenarios, not TikTok benchmarks or expected recovery rates. Replace them with your own measured data whenever possible.

1. Your current numbers

Enter spend for exactly the same period and currency as the ROAS below. Used only to convert ROAS into reported conversion value.
The ROAS currently shown in TikTok Ads Manager for the same period as the spend above.
Scenario assumption: estimated share of the underlying TikTok-attributable conversion-value pool that is not represented in the TikTok event signal. This is not a TikTok-reported metric.
Scenario assumption for the share of the modeled missing signal your implementation could send successfully and with sufficient identifiers for matching.
Optional. Converts the modeled recoverable value into conversion equivalents. Use the same currency basis as the figures above.

2. Modeled recovery

Modeled recoverable TikTok-attributed value
+$3,529.41

Modeled value, not guaranteed additional revenue or guaranteed TikTok attribution.

Reported TikTok-attributed value $40,000.00
Modeled missing value outside the reported captured share $7,058.82
Current ROAS 2.00x
Modeled TikTok-attributed ROAS after recovery 2.18x Scenario value only. Not a prediction of actual ROAS improvement or incremental sales.
Modeled recovered conversion equivalents 35.29 Not a prediction of additional orders.
Model: Reported value = spend × reported ROAS. Modeled missing value = reported value × gap ÷ (1 − gap). Modeled recovered value = modeled missing value × CAPI recovery rate. This assumes the reported value represents the captured share of an otherwise larger TikTok-attributable conversion-value pool. It is a scenario model, not a measurement of actual store revenue.
Reported vs modeled TikTok-attributed value
Reported
With modeled recovery
Bar width represents modeled TikTok-attributed conversion value; it is not a forecast of revenue or sales.

Want to build the server-side path behind this model?

Build the CAPI Workflow in Make.com →

How the TikTok CAPI recovery model works

The original version tried to infer missing TikTok revenue by multiplying iOS traffic share × pixel loss rate. That is not a reliable measurement method because device share does not tell you which conversion events TikTok actually received, which events matched, or which conversions were attributable under TikTok’s attribution settings.

The current model uses one variable that is much easier to reason about: estimated missing attributed conversion value.

StepFormulaMeaning
Reported valueAd spend × reported ROASThe conversion value represented by the TikTok ROAS figure you entered.
Modeled missing valueReported value × gap ÷ (1 − gap)A mathematical estimate of the value outside the reported captured share.
Modeled recoveryMissing value × expected CAPI recoveryThe portion of that modeled gap your scenario assumes the server-side system can capture.
Modeled post-recovery ROAS(Reported value + modeled recovery) ÷ spendA scenario showing what the platform-level value could look like if the modeled recovery occurred.

Best way to improve the estimate

Replace the assumed signal gap with a measured comparison between your backend conversion records and TikTok’s received event data for the same event and time period. Then update the recovery assumption after implementation using your actual Events Manager diagnostics.

A simple worked example

Suppose a store spends $20,000 and TikTok reports 2.0x ROAS. The modeled reported conversion value is $40,000. If you enter a 15% signal gap, the model calculates $7,058.82 of conversion value outside the reported captured share. If you assume the server-side implementation captures 50% of that modeled gap, the modeled recoverable value is $3,529.41.

That does not mean the store will necessarily receive $3,529.41 more sales, nor does it mean TikTok will attribute exactly that amount. It simply makes the assumption transparent so the value of improving measurement can be discussed quantitatively.

Why a 15% gap does not mean $6,000

A 15% gap means 85% of the underlying value is currently captured. $40,000 ÷ 0.85 = $47,058.82 modeled total, so the modeled missing value is $7,058.82. Taking 15% of $40,000 ($6,000) would define the gap against the reported figure instead, which is a different assumption.

What this calculator does — and does not — measure

Measures / models

Potential signal gap

A user-defined scenario for conversion value that may not be represented in TikTok’s received event stream.

Measures / models

Potential recovered value

The portion of the modeled gap you believe the Events API implementation could send successfully and make available for matching.

Does not prove

Actual lost sales

A browser event failing to reach TikTok does not mean the sale failed or that the advertiser lost money.

Does not prove

Guaranteed ROAS improvement

More events can improve measurement and may support optimization, but CAPI does not guarantee lower CPA, higher ROAS or incremental sales.

Important distinction

Conversion value that TikTok cannot measure is not the same thing as revenue that your business lost. This distinction is the reason the calculator uses “modeled missing attributed conversion value” throughout the page.

Where TikTok conversion signal can disappear

Browser-based measurement depends on a client-side environment. Server-side Events API changes the delivery path, but it does not recreate information that the business never collected.

Browser

Pixel execution

TikTok Pixel runs in the visitor’s browser. Browser configuration, privacy controls, consent decisions, network conditions and extensions can affect what is available.

Identifiers

Missing match keys

Events can reach TikTok while still having weak matching if useful identifiers are absent, incomplete or incorrectly normalized.

Server-side

Events API delivery

Server-side events are sent from your backend or integration layer instead of relying on the browser to execute the conversion call.

Still required

Consent and data governance

Server-side delivery does not override consent, privacy requirements or TikTok’s data terms. Only send data you are permitted to share.

TikTok’s current recommendation

TikTok recommends using Pixel and Events API together with event deduplication for web conversion measurement. The two channels are complementary: the browser provides one event path and Events API provides another server-side path.

What TikTok Events API actually changes

Events API is a server-to-server mechanism for sending conversion events to TikTok. TikTok describes it as a reliable connection between TikTok and your marketing data across web, app and offline sources, and recommends using it alongside Pixel for web measurement. Pixel or Events API setup is also a prerequisite for the Web Conversions objective in Ads Manager.

Measurement pathWhere the event startsPrimary strengthPrimary limitation
Pixel onlyBrowserSimple web implementationDepends on browser execution and available identifiers
Events API onlyServer / backendDirect server-side event deliveryYour backend must actually capture the conversion data and identifiers
Pixel + Events APIBrowser + serverBroader event coverage; browser and server data can merge into one richer eventRequires correct event deduplication

TikTok’s website data-connection guidance recommends Pixel + Events API for web conversion clients, with deduplication when overlapping events are sent, and suggests mirroring your Pixel setup in Events API so events and parameters are shared consistently.

EMQ and TikTok match keys: stop using fake recovery tables

An older version of this page included a table claiming particular identifier combinations produce specific EMQ scores and recovery percentages. There is no sound basis for turning that into a universal “EMQ 8.5 = 75% recovery” rule.

EMQ is described as a weighted average of match-key coverage. The useful way to read it is as an implementation diagnostic rather than a guaranteed percentage of missing revenue recovered. Check the exact view in your own Events Manager diagnostics.

Match key / signalWhat it doesImplementation note
TikTok Click ID (ttclid)Connects a web event to a TikTok ad click; appended to the landing URL on ad clicksCapture on landing and persist it to the order record when available and permitted
EmailHelps match the event to a TikTok userNormalize, then hash with SHA-256 as TikTok documents
PhoneHelps match the event to a TikTok userNormalize appropriately and hash as required
External IDAdvertiser-side identifier used for matchingHash where required by TikTok’s implementation guidance
IP address + user agentDevice and network contextUseful supplemental signals when permitted and available; pass the end user’s values, not your server’s
First-party _ttp cookieBrowser identifier set by the Pixel, used to match visitor events with TikTok adsTikTok documents that passing first-party cookies through a dual Pixel + Events API setup enables better matching. Availability depends on cookie settings and consent.

Better way to use EMQ

Use EMQ and TikTok’s event diagnostics to improve the inputs going into your model. Do not convert the score directly into a dollar recovery percentage. Your calculator’s recovery percentage should remain an explicit scenario assumption or be derived from your measured before/after event coverage.

Pixel + CAPI deduplication: the rule that matters

When the same conversion is sent through both Pixel and Events API, TikTok requires deduplication so the same conversion is not counted twice. Sending different events through each channel with no overlap does not require it.

Critical correction

Do not describe event_time as the primary deduplication key. TikTok deduplicates on the pixel ID (event_source_id in the API), the event name, and event_id. All three must match between the browser and server copies of the same conversion.

Recommended purchase-event pattern

Order / conversion | +---- event_id = ORDER-12345 (created once, at order creation) | +---- Pixel -> Purchase, event_id = ORDER-12345 | +---- Events API -> Purchase, event_id = ORDER-12345, same pixel ID

What TikTok does with overlapping events

ScenarioWhat TikTok does
Pixel and API copies arrive within 5 minutes of each otherMerged into the first event; extra match keys and parameters from the later copy are combined in
A copy arrives after 5 minutes, within 48 hours of the firstDeduplicated; the first event received is the one recorded for measurement and reporting
Pixel-to-Pixel or API-to-API repeatsDeduplicated within 48 hours of the first event
API event has no event_id but the _ttp cookie is presentTikTok attempts browser-to-server deduplication using the _ttp value

The merge behavior is the practical reason Pixel + Events API works: a browser event with few identifiers and a server event carrying hashed email, hashed phone and ttclid can combine into one richer event, provided they share the same event name and event_id.

The safest implementation is to generate one stable conversion identifier at order creation and make sure the browser and server events for the same conversion use that identifier and the same event name.

What not to do

  • Do not generate one random ID in the browser and a different one on the server.
  • Do not send different event names for the same conversion (for example Pixel CompletePayment and Events API Purchase). TikTok converts legacy names, but matching names exactly removes the risk.
  • Do not assume HTTP success means the event was deduplicated correctly.
  • Do not turn off the Pixel simply because Events API has been added.

Three practical ways to implement TikTok CAPI

Option 1

Commerce partner

TikTok supports commerce integrations such as Shopify and WooCommerce. This is usually the simplest route when your store platform already exposes the required Events API functionality.

Option 2

Server-side tag management

A server-side Google Tag Manager architecture gives more control over event routing, normalization and deduplication, but introduces infrastructure and maintenance.

Option 3

Direct API / automation workflow

A backend or automation platform can receive a confirmed conversion and forward a correctly mapped Events API payload. This is where Make.com can become useful for operators who need cross-platform routing without building a full application.

Decision rule

Do not add middleware without a reason

If a native partner integration already produces the required events and identifiers, an additional automation layer may add complexity without enough benefit.

TikTok’s current setup guidance

TikTok lists commerce partner integrations, data partner integrations and direct API integration as supported paths. Its guidance recommends considering the events, parameters and match keys that actually support your marketing objective before choosing the integration method.

Current TikTok Events API 2.0 architecture

TikTok’s documentation names Events API 2.0 as the recommended endpoint for reporting events from all sources: web, app, offline and CRM. It uses the /open_api/v1.3/event/track/ path, so “2.0” is the product generation and “v1.3” is the API version in the URL. They are not competing versions. The older /pixel/track/ and /app/track/ endpoints belong to Events API 1.0; new integrations should use /event/track/, which accepts a single event or a batch in the data array.

Illustrative web-event payload structure

This is an illustrative structure, not a copy-paste production payload. Validate the exact fields, nesting, required parameters and supported identifiers against TikTok’s current Events API documentation and Payload Helper before deployment. While testing, add a top-level test_event_code from the Test Events tab in Events Manager, and remove it before going live, because test-coded events are not saved to production data.

POST https://business-api.tiktok.com/open_api/v1.3/event/track/Header: Access-Token: YOUR_EVENTS_API_TOKENBody: { "event_source": "web", "event_source_id": "YOUR_PIXEL_CODE", "test_event_code": "TEST_CODE_FROM_EVENTS_MANAGER", "data": [ { "event": "Purchase", "event_time": 1767225600, "event_id": "ORDER-12345", "user": { "email": "SHA256_EMAIL", "phone": "SHA256_PHONE", "external_id": "SHA256_EXTERNAL_ID", "ttclid": "TIKTOK_CLICK_ID", "ttp": "TIKTOK_FIRST_PARTY_COOKIE", "ip": "203.0.113.10", "user_agent": "Mozilla/5.0 ..." }, "properties": { "currency": "USD", "value": 149.00, "order_id": "12345" }, "page": { "url": "https://example.com/thank-you" } } ] }

Payload note

Field availability and requirements can vary by event source and implementation. Do not copy a blog’s example, including this one, and assume every field is mandatory. Note that event_source_id carries your pixel code, and that value is also one of the three deduplication keys.

Access token

Generate the Events API access token in Events Manager, in the settings for the relevant pixel or data source. Keep the token server-side and never expose it in client-side JavaScript.

Use Purchase for new setups

In May 2025 TikTok renamed CompletePayment to Purchase and SubmitForm to Lead. Legacy names are converted automatically and shown under the new names in reporting, audiences and optimization, and TikTok says existing setups keep working with no code changes. PlaceAnOrder and ClickButton are soft-deprecated, with support continuing until 2027.

Choose by situation. For a new pixel, use Purchase. For a live pixel already optimizing on CompletePayment, there is no urgent need to rename. Whichever you choose, send the same event name from Pixel and Events API for the same conversion. Event names are case-sensitive.

Normalize and hash identifiers correctly

TikTok documents SHA-256 hashing for identifiers such as email and phone. Normalize values according to TikTok’s current documentation before hashing. A hash of incorrectly formatted source data is still incorrect matching data.

Testing and diagnostics before you trust the data

A server-side request returning HTTP success is not the same thing as a correctly configured measurement system. TikTok’s Events Manager provides a Test Events area, Diagnostics, event details and a change log.

TestWhat to verifyFailure usually means
Event receivedServer event appears in Test Events / Events ManagerAuth, endpoint, payload or transport issue
Correct eventPurchase (or your legacy CompletePayment) is recognized with value and currencyIncorrect event name or parameter mapping
Match qualityRelevant match-key coverage improvesMissing or malformed identifiers
DeduplicationBrowser + server overlapping events deduplicateDifferent event_id, event name or pixel ID between the two paths
DiagnosticsNo material event configuration errorsImplementation or data-quality issue
Production cleanlinesstest_event_code removed before launchLive events silently excluded from production data

Use the diagnostics before changing the calculator

Once the implementation is live, replace the calculator’s assumed signal-gap and recovery values with the best measurements you can obtain from your own backend, event logs and TikTok Events Manager diagnostics.

Build the TikTok CAPI workflow with Make.com

Make is most useful when TikTok is only one destination in a broader event pipeline. For example:

Stripe / Shopify ↓ Confirmed conversion webhook (carries the order's event_id) ↓ Make.com: preserve conversion ID → validate → normalize → route ↓ ├── TikTok Events API ├── GoHighLevel ├── Google Ads └── Internal reporting

Make becomes particularly useful when an event needs to be validated, transformed or routed to several destinations rather than forwarded to a single endpoint. The automation layer can centralize routing while each destination receives the event format it expects.

Do not let middleware create the event ID

If the same conversion also fires through the Pixel, the event_id must already exist before either path runs. Generate it at order creation, pass it to the Pixel call, and store it on the order so Make forwards that exact value. A new ID created inside the scenario will not match the browser event and can double count.

Make layer

Receive and preserve

Accept the backend event, validate required fields and preserve the source conversion ID.

Make layer

Route

Decide which destination receives which event and which client or account configuration applies.

TikTok layer

Measure and optimize

Send the conversion to TikTok using the Events API with appropriate match keys and the shared deduplication identifier.

CRM layer

Operational follow-up

Send the same confirmed conversion into a CRM or automation platform when the business process requires it.

Frequently asked questions

Does TikTok CAPI replace the TikTok Pixel?

Not generally. TikTok recommends using Pixel and Events API together for web conversion measurement, with deduplication for overlapping events. Events API adds a server-side path; it does not make the browser Pixel obsolete.

Can TikTok CAPI recover every conversion the Pixel misses?

No. Server-side delivery can send events your backend knows about even when browser delivery failed, but matching still depends on the identifiers available to your system and the data you are permitted to send. There is no universal recovery percentage that applies to every advertiser.

Is signal recovery the same as attribution recovery?

No. An event can reach TikTok and still not become a TikTok-attributed conversion. Attribution depends on matching, the attribution window configured in Attribution Manager, and TikTok’s own logic. This calculator models signal recovery only.

Does EMQ directly tell me what percentage of conversions CAPI will recover?

No. EMQ is a match-key coverage diagnostic, not a recovery percentage. Use it to judge implementation quality rather than multiplying the score by a fixed recovery formula.

What match keys should I send through Events API?

TikTok’s matching documentation includes Click ID (ttclid), hashed email, hashed phone, hashed external ID, IP address, user agent and the _ttp first-party cookie where applicable. Send the relevant keys your business is permitted to share and actually collects.

What causes Pixel and CAPI events to double count?

The same conversion is shared through both channels without matching deduplication values. TikTok matches on pixel ID (event_source_id), event name and event_id, so all three must be identical for the browser and server copies.

How does TikTok deduplicate Pixel and Events API events?

Pixel and Events API copies with identical event and event_id values that arrive within 5 minutes of each other are merged, with match keys and parameters combined into the first event. Later copies arriving within 48 hours of the first event are deduplicated. If the API event has no event_id but the _ttp cookie is present, TikTok attempts browser-to-server deduplication using _ttp.

How long do TikTok’s ttclid and _ttp cookies last?

TikTok documents ttclid and _ttp with a duration of 13 months from the last date the cookie was used. Browser privacy controls, consent choices and your own implementation can still shorten real-world persistence, and attribution follows the window configured in Attribution Manager. Do not hard-code a universal 24-hour rule.

Does Events API bypass browser blockers?

Server-side delivery does not depend on the browser executing the Events API request, so it can send backend conversion events even when a browser request is blocked. It cannot recover an event your backend never receives or records, and it does not override consent or privacy controls.

What is the current TikTok Events API endpoint?

Events API 2.0 uses POST https://business-api.tiktok.com/open_api/v1.3/event/track/ for web, app, offline and CRM events. “2.0” is the product generation and “v1.3” is the API version in the URL. The older /pixel/track/ and /app/track/ endpoints belong to Events API 1.0.

What TikTok event name should I use for a completed purchase?

Use Purchase for new setups. TikTok renamed CompletePayment to Purchase in 2025 and converts legacy names automatically, so existing CompletePayment setups keep working. Send the same event name from Pixel and Events API for the same conversion.

Is this calculator a forecast of actual revenue?

No. It is a scenario model for potentially missing TikTok-attributed conversion value. It does not measure store revenue, guarantee additional sales or predict future ROAS. The strongest version of the model uses your own observed signal gap.

How should I improve the calculator’s accuracy after deploying CAPI?

Re-run the model using observed event coverage from your backend and TikTok Events Manager, compare matching quality before and after implementation, verify deduplication, and replace the assumed recovery rate with evidence from your actual event data.

Official documentation used for this calculator

TikTok’s implementation, event names and interface can change. Check these primary sources before deploying or updating a production implementation.

TikTok: About Events API

Events API positioning, implementation methods and web conversion guidance.

TikTok: Get Started with Events API

Partner, data-partner and direct API setup paths.

TikTok: Event Deduplication

Deduplication keys, the 5-minute merge window and the 48-hour window.

TikTok: Matching Events with Events API

Match-key guidance for Click ID, email, phone, external ID, IP/UA and cookies.

TikTok: Pixel Cookies

_ttp and ttclid cookie details, including the 13-month duration.

TikTok: Click ID

ttclid behavior and attribution-window information.

TikTok: Updated Standard Events

CompletePayment to Purchase and SubmitForm to Lead renames, and the legacy-support timeline.

TikTok: Standard Events & Parameters

Current standard event names and recommended parameters.

TikTok API for Business: Events API 2.0 Overview

The /event/track/ endpoint, supported event sources and request structure.

TikTok: Performance Fundamentals

Source of the 19% more events and 15% CPA improvement average (Nov 2022 – Feb 2023 analysis).

Ready to build the server-side path?

If your modeled signal gap is meaningful, the next step is not guessing a bigger recovery percentage. It is implementing the event path, testing it, fixing match keys and then measuring the actual change.

Scroll to Top