Attribution

How to attribute app installs to organic TikTok posts

Short answer: you can attribute installs to a specific organic post, but only if you instrument it before the post goes live. Give every post its own tracked link carrying a deferred deep link. On install, the click ID arrives via the Play install referrer or a device-signal match, and your measurement tool ties that install — and every dollar it later produces — back to that one post.

What you cannot do is reconstruct it afterwards. Organic installs with no click record are bucketed as “organic” permanently, and no vendor can split that bucket by post retroactively.

This is the single hardest measurement problem in organic short-form marketing, and it is why most founders running TikTok, Reels or Shorts can tell you their view count but not their cost per paying user. Below is what actually works, what each method misses, and how the layers combine.

Why organic short-form defaults to “unattributed”

A mobile measurement partner attributes an install by matching it against a recorded click. AppsFlyer's published attribution model prioritises deterministic methods — the Play install referrer and device-ID matching — then falls back to probabilistic modelling, and finally records the install as organic when nothing matches.1

An organic post produces no ad click. Unless you have placed a tracked link in the bio, the pinned comment, or an on-screen QR code, there is no click record for the matcher to find. The install is real, the revenue is real, and both land in a bucket labelled “we don't know where this came from”.

This is also why SKAdNetwork does not help here. Apple's SKAdNetwork generates a postback when an ad is served and clicked inside a participating ad network.2 An organic TikTok video is not an ad impression, so it never enters that chain at all. The privacy-era measurement stack was built for paid acquisition; organic short-form falls outside it by design.

The four methods that do work

MethodWhat it capturesWhat it misses
Per-post tracked links
with deferred deep links
Users who tap through and install in one session. Full downstream events — retention, revenue, LTV — per post. Anyone who watches on one device and installs on another, or searches the app store by name instead of tapping.
Promo / referral codes Clickless attribution. The viewer hears or reads a code, searches the store themselves, and enters the code at onboarding. Requires an onboarding surface to enter the code, and depresses conversion slightly by adding a step.
Organic uplift modelling The untracked majority — measured as deviation from a pre-established daily install baseline. Attributes to a campaign window, not to a post. Confounded by seasonality and concurrent marketing.
Branded search spillover People who see the post, remember the name, and search the store later. Visible in App Store Connect / Play Console. Lagged by days, and impossible to split across simultaneous posts.

The instrumentation, step by step

  1. Generate a unique link per post, not per campaign. One link per campaign collapses exactly the signal you are trying to isolate. The whole point is knowing that post #14 converted and post #15 did not.
  2. Use a deferred deep link, not a raw store URL. A deferred deep link survives the round trip through the app store and delivers its payload on first open, so the click ID reaches your SDK. On Android, the Play Install Referrer API carries the original URL parameters through the install intact.3
  3. Attach revenue events. An attributed install is a count. An attributed install with a revenue event is a unit economic. Connect RevenueCat for mobile subscriptions or Stripe for web billing, and send purchase events back with values attached.
  4. Establish the baseline first. Uplift modelling needs 60–90 days of pre-campaign daily organic installs by geography. You cannot construct a counterfactual retroactively — if you start posting before you start measuring, that layer is lost.
  5. Test every link on a real device, inside the actual app. Social platforms open links in their own in-app WebView, and those browsers handle universal links inconsistently. A link that works in Safari can dead-end inside the TikTok browser.

Why the numbers still won't reconcile

Even with all four layers running, tracked-link attribution understates reality. Apple's App Tracking Transparency framework means a large share of iOS users never grant the identifier that device-matching relies on,4 and the defining behaviour of short-form — watch on the phone, think about it, install two days later — is precisely the delayed, cross-device journey that click-based attribution handles worst.

The practical consequence: treat per-post attribution as a ranking signal, not an audit. It is reliable for telling you that hook A converts better than hook B. It is not reliable as an absolute count of installs your content produced — that number is almost always higher than what your links report.

How Scaler handles this

Scaler generates a unique tracked link per post at publish time and matches conversions back through a connected Stripe or RevenueCat account, so each post carries its own view → install → revenue chain. That per-post conversion label is then fed back as the training signal for the next round of content — the system optimises against paying users rather than views. See how the loop works, or compare the economics against paid UA.

Frequently asked

Can you attribute installs to a specific organic post?

Yes, if you instrumented it beforehand with a per-post tracked link and a deferred deep link. Retroactively, no — installs already bucketed as organic cannot be split by post.

Why do my TikTok installs show as “organic” in AppsFlyer?

Because no click record exists to match them against. The measurement tool only attributes installs it can tie to a recorded click; an untracked organic post produces none.

Does SKAdNetwork cover organic posts?

No. SKAdNetwork postbacks originate from ads served in participating networks. An organic post is not an ad impression and never enters that chain.

What is the most reliable approach overall?

Layer the methods: per-post tracked links for granularity, promo codes for clickless installs, and baseline uplift modelling for the untracked remainder — then attach revenue events so each attributed install carries a dollar value.

Sources

  1. AppsFlyer, AppsFlyer attribution model — attribution method priority and the organic fallback.
  2. Apple, SKAdNetwork — ad-network-originated install postbacks.
  3. Google, Play Install Referrer API — passing referrer parameters through install.
  4. Apple, App Tracking Transparency — user permission for cross-app tracking identifiers.