TikTok App Attribution for Subscription Apps
Connect a TikTok click to an app install, trial, subscription, and revenue using a store-first campaign and server-side event feedback.

TikTok app attribution has two separate jobs:
- Connect the ad click to the person who reaches and installs the app.
- Connect that install to trials, subscriptions, renewals, and revenue.
Most reporting gaps happen between those jobs. The ad platform sees a click. The subscription system sees a purchase days later. Neither record automatically knows about the other.
Postback's TikTok Signal Campaign workflow keeps the App Store or Google Play destination while preserving the click through a Signal link. The SDK then records the install, and RevenueCat, Superwall, or app events provide the downstream outcome.
The short answer
A subscription attribution setup for TikTok needs four parts:
| Part | Job |
|---|---|
| Signal link | Captures campaign context and routes the visitor to the store |
| Postback SDK | Connects the first app session to the captured click |
| Revenue or event source | Reports trials, purchases, subscriptions, and later lifecycle events |
| TikTok Events API | Receives selected server-side events for reporting and campaign optimization |
This is not the same setup as TikTok's native App Promotion Events API. Postback's current Signal Campaign flow uses a website destination and TikTok's web Events API. That distinction affects the campaign objective, event list, Pixel requirements, and destination you select in Ads Manager.
Why subscription attribution is harder
A mobile game may know the value of an install quickly. A subscription app often waits through onboarding, a paywall, and a free trial before revenue appears.
Consider this path:
TikTok ad click -> App Store -> install -> onboarding -> trial -> paid subscription -> renewal
The first four steps may happen in minutes. The paid conversion may happen seven days later, and a renewal may arrive a month after that.
If the click identifier disappears during the store handoff, later revenue becomes unattributed. If the subscription webhook has no shared install identity, the purchase reaches your reporting system but cannot be connected to the TikTok campaign.
The setup has to preserve both ends of the chain.
How the store-first TikTok flow works
1. The ad opens a Signal link
The TikTok ad uses a Postback Signal link as its Website URL. The link captures the available campaign and click context, then redirects the visitor to the correct store.
This keeps the public store page in the journey. The visitor still sees the App Store or Google Play listing before installing.
2. The SDK records the install
After the app opens, the Postback SDK creates the install identity and matches it to the captured click when the required signal is available.
Postback can then report the campaign, ad, placement, country, and other supported context beside the install.
3. The revenue source reports the outcome
Your app or subscription platform sends downstream events. Typical events include:
- Sign-up.
- Trial start.
- Purchase.
- Paid subscription.
- Renewal.
- Cancellation or expiration.
- Refund-related lifecycle events.
RevenueCat and Superwall webhooks are useful here because they continue to report subscription changes after the install session.
4. Selected events go back to TikTok
Postback maps supported app events to TikTok standard web events and sends them through Events API.
For example:
| App event | TikTok web event |
|---|---|
| Sign-up or registration | CompleteRegistration |
| Trial start | StartTrial |
| Subscription | Subscribe |
| Purchase | Purchase |
| Checkout start | InitiateCheckout |
| Payment information added | AddPaymentInfo |
Postback's current web Events API setup intentionally does not forward install, login, or level events through this path. Those belong to TikTok's separate app-promotion event system. Postback can still show its own attributed install in the campaign report.
What you need before launch
The current Postback setup requires:
- The Postback SDK installed and sending events.
- Admin or Operator access to the TikTok advertiser.
- A Web Pixel linked to that advertiser.
- TikTok OAuth access for campaign reporting.
- An Events API access token for the Pixel.
- A Signal link pasted into the ad's Website URL.
- A mapped conversion event that fits the campaign objective.
Use the TikTok Ads integration guide for the current dashboard steps and permission requirements. The guide should win over an old screenshot or a remembered menu path because TikTok changes its setup UI.
Pick the event that matches the decision
The deepest event is not always the best first optimization event.
A new campaign may produce too few paid subscriptions for TikTok to learn from them. A trial start happens earlier and more often, but it is only useful if trial quality stays connected to later revenue.
Choose between:
| Optimization event | Useful when | Main risk |
|---|---|---|
| Sign-up | Onboarding completion is meaningful and frequent | Weak accounts may look like valuable users |
| StartTrial | Trial intent predicts later paid conversion | Low-quality trials can inflate success |
| Subscribe | Paid subscriptions arrive with enough volume | Feedback may be too sparse or delayed |
| Purchase | Purchase value is the campaign objective | One-time and recurring revenue may be mixed |
For Postback's current TikTok Signal Campaign setup, StartTrial or sign-up uses a Lead generation website campaign. Purchase or Subscribe uses a Sales website campaign. Confirm that Ads Manager makes the mapped event selectable before launch.
Connect RevenueCat or Superwall
The install identity and subscription identity must meet.
For RevenueCat, save the Postback install ID as the postbackId subscriber attribute, then configure the authenticated webhook. RevenueCat sends purchase and subscription lifecycle events, and Postback matches them to the install through that shared value.
For Superwall, set the same postbackId as a user attribute and configure the signed webhook. Postback verifies the Svix signature before accepting the event.
The setup guides cover the current details:
Sandbox deliveries can prove the webhook connection is valid. Postback does not turn sandbox revenue into production attribution or outbound ad conversions, so verify the full path with a controlled production flow before trusting ROAS.
The report you should expect
A useful TikTok subscription report should connect media delivery to a mature business outcome.
| Metric | Question |
|---|---|
| Spend | How much budget did the campaign use? |
| Impressions and clicks | Did TikTok deliver and earn traffic? |
| Attributed installs | How many first app opens matched the campaign? |
| Trial starts | Did the traffic reach subscription intent? |
| Paid subscriptions | Did trials become customers? |
| Revenue | How much attributed value arrived? |
| ROAS | Did attributed revenue cover spend? |
Do not compare a three-day-old cohort with a campaign that has had a month to renew. Align cohort age before you call one creative or audience better.
The free-trial ROAS workflow explains how to handle that delay.
Common TikTok attribution failures
The ad points straight to the store
A direct store URL skips the Signal link, so Postback cannot capture the click context used by this workflow. Paste the generated Signal link into the Website URL field.
The campaign uses the App destination
Postback's current TikTok Signal Campaign setup uses Website as the destination and optimization location. Selecting App creates a different setup path.
The Pixel and advertiser are not linked
The Events API token belongs to a Pixel. That Pixel must be connected to the advertiser selected in Postback and Ads Manager.
The event does not fit the objective
TikTok decides which events are available for a campaign objective. A StartTrial event may appear under Lead generation while Subscribe belongs under Sales.
Events are duplicated
TikTok recommends deduplication when the same web conversion is sent from Pixel and Events API. Make sure overlapping browser and server events use the same event identity. If Postback is the only sender for a particular event, do not invent a second browser copy.
Subscription webhooks cannot find the install
The webhook can be valid while attribution still fails. Confirm the postbackId user or subscriber attribute is set after Postback configures the SDK.
Test traffic is treated as production proof
TikTok test events help validate delivery. RevenueCat and Superwall sandbox webhooks validate their connection. Neither proves that a real paid click will install, match, subscribe, and appear in production revenue reporting.
A practical validation sequence
Test the integration in layers.
Check the click
Open the Signal link with a controlled test parameter and confirm the redirect reaches the expected store.
Check the install
Install and open the app. Confirm the Postback dashboard receives the new install and its available source context.
Check the product event
Trigger one non-revenue event, such as registration or trial start, and verify the event reaches Postback.
Check the subscription identity
Open the RevenueCat or Superwall customer record and confirm postbackId exists for the test user.
Check production revenue
Run a controlled production purchase when practical. Confirm the webhook, attributed event, revenue, and campaign report agree.
Check TikTok delivery
Use Events Manager diagnostics to verify that the mapped server event arrived with the expected value and currency when applicable.
How to use the data
Do not optimize every weak report with a new creative.
The funnel tells you where to work:
| Pattern | First investigation |
|---|---|
| Clicks but few installs | Store-page match, audience, or redirect flow |
| Installs but few trials | Onboarding and paywall timing |
| Trials but few paid users | Offer quality and trial intent |
| Paid users but weak ROAS | Acquisition cost, price, refunds, and renewal quality |
| Good ROAS but little delivery | Budget, bid, audience, and event volume |
TikTok's own Events API documentation recommends defining the events, parameters, and match keys around your marketing objective, with legal and technical review of the data you share. That is good operational advice. Send the minimum data needed for the campaign job.
What to do next
Choose one downstream event that matches the current campaign stage. Connect the advertiser, Pixel, Signal link, SDK, and subscription source. Then validate the path one layer at a time before increasing spend.
Set up TikTok Ads attribution in Postback to connect campaign reporting, attributed installs, trials, subscriptions, revenue, and server-side event feedback.
Sources
- TikTok Events API overview - Current Events API purpose, data-connection guidance, and server-side event use
- TikTok Events API setup - Current requirements for events, parameters, match keys, access tokens, and privacy review
- TikTok standard events and parameters - Current standard web events supported for reporting and optimization
- Postback TikTok Ads integration - Current Signal link, Pixel, event mapping, and campaign setup
- Postback RevenueCat integration - Current subscriber identity and webhook setup
- Postback Superwall integration - Current user identity and signed webhook setup
FAQ
Yes, when the campaign preserves enough click context and the app records the matching install signal. In Postback's Signal Campaign flow, the ad opens a Signal link before the visitor reaches the store, and the SDK records the first app session.
The current Signal Campaign setup uses TikTok's web Events API with a Website campaign destination. It does not use TikTok's separate App Promotion Events API. The Postback integration guide documents the current supported path.
Use an event with enough volume that still predicts revenue. Trial start can work for a young campaign, while Subscribe or Purchase is stronger once paid events arrive often enough. Keep measuring later paid conversion and revenue even when the campaign optimizes for an earlier event.
They provide subscription and purchase events. They still need campaign context and a shared install identity to connect that revenue to the original TikTok click.
The systems can use different attribution views, event receipt times, and matched-user sets. Reconcile the event definition, campaign window, currency, and cohort age before treating the difference as an implementation error.
You might also like
See all posts →
How to Track App Campaign ROAS After a Free Trial
Measure app campaign ROAS when revenue arrives after a free trial, with mature cohorts, subscription events, refunds, and renewals.

Do You Need an MMP for Apple Search Ads?
Learn what Apple Search Ads attribution gives you, what a DIY setup requires, and when an MMP is worth adding for subscription ROAS.

RevenueCat Attribution: What It Tracks and When You Need an MMP
Learn what RevenueCat knows about subscriptions, where campaign attribution comes from, and when an app needs an MMP beside RevenueCat.