TikTok CAPI Recovery Calculator: Estimate Missing Conversion Signal (2026)
Models potential TikTok-attributed signal recovery. It does not predict additional revenue.
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.
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
2. Modeled recovery
Modeled value, not guaranteed additional revenue or guaranteed TikTok attribution.
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.
| Step | Formula | Meaning |
|---|---|---|
| Reported value | Ad spend × reported ROAS | The conversion value represented by the TikTok ROAS figure you entered. |
| Modeled missing value | Reported value × gap ÷ (1 − gap) | A mathematical estimate of the value outside the reported captured share. |
| Modeled recovery | Missing value × expected CAPI recovery | The portion of that modeled gap your scenario assumes the server-side system can capture. |
| Modeled post-recovery ROAS | (Reported value + modeled recovery) ÷ spend | A 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
Potential signal gap
A user-defined scenario for conversion value that may not be represented in TikTok’s received event stream.
Potential recovered value
The portion of the modeled gap you believe the Events API implementation could send successfully and make available for matching.
Actual lost sales
A browser event failing to reach TikTok does not mean the sale failed or that the advertiser lost money.
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.
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.
Missing match keys
Events can reach TikTok while still having weak matching if useful identifiers are absent, incomplete or incorrectly normalized.
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.
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 path | Where the event starts | Primary strength | Primary limitation |
|---|---|---|---|
| Pixel only | Browser | Simple web implementation | Depends on browser execution and available identifiers |
| Events API only | Server / backend | Direct server-side event delivery | Your backend must actually capture the conversion data and identifiers |
| Pixel + Events API | Browser + server | Broader event coverage; browser and server data can merge into one richer event | Requires 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 / signal | What it does | Implementation note |
|---|---|---|
| TikTok Click ID (ttclid) | Connects a web event to a TikTok ad click; appended to the landing URL on ad clicks | Capture on landing and persist it to the order record when available and permitted |
| Helps match the event to a TikTok user | Normalize, then hash with SHA-256 as TikTok documents | |
| Phone | Helps match the event to a TikTok user | Normalize appropriately and hash as required |
| External ID | Advertiser-side identifier used for matching | Hash where required by TikTok’s implementation guidance |
| IP address + user agent | Device and network context | Useful supplemental signals when permitted and available; pass the end user’s values, not your server’s |
| First-party _ttp cookie | Browser identifier set by the Pixel, used to match visitor events with TikTok ads | TikTok 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
| Scenario | What TikTok does |
|---|---|
| Pixel and API copies arrive within 5 minutes of each other | Merged 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 first | Deduplicated; the first event received is the one recorded for measurement and reporting |
| Pixel-to-Pixel or API-to-API repeats | Deduplicated within 48 hours of the first event |
| API event has no event_id but the _ttp cookie is present | TikTok 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
CompletePaymentand Events APIPurchase). 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
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.
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.
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.
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.
| Test | What to verify | Failure usually means |
|---|---|---|
| Event received | Server event appears in Test Events / Events Manager | Auth, endpoint, payload or transport issue |
| Correct event | Purchase (or your legacy CompletePayment) is recognized with value and currency | Incorrect event name or parameter mapping |
| Match quality | Relevant match-key coverage improves | Missing or malformed identifiers |
| Deduplication | Browser + server overlapping events deduplicate | Different event_id, event name or pixel ID between the two paths |
| Diagnostics | No material event configuration errors | Implementation or data-quality issue |
| Production cleanliness | test_event_code removed before launch | Live 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 reportingMake 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.
Receive and preserve
Accept the backend event, validate required fields and preserve the source conversion ID.
Route
Decide which destination receives which event and which client or account configuration applies.
Measure and optimize
Send the conversion to TikTok using the Events API with appropriate match keys and the shared deduplication identifier.
Operational follow-up
Send the same confirmed conversion into a CRM or automation platform when the business process requires it.
Related tracking and attribution guides
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.
Events API positioning, implementation methods and web conversion guidance.
Partner, data-partner and direct API setup paths.
Deduplication keys, the 5-minute merge window and the 48-hour window.
Match-key guidance for Click ID, email, phone, external ID, IP/UA and cookies.
_ttp and ttclid cookie details, including the 13-month duration.
ttclid behavior and attribution-window information.
CompletePayment to Purchase and SubmitForm to Lead renames, and the legacy-support timeline.
Current standard event names and recommended parameters.
The /event/track/ endpoint, supported event sources and request structure.
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.