Mobile App Attribution and SKAdNetwork Explained (2026)
How mobile attribution works in 2026 — SKAdNetwork 4, conversion values, Android referrer, and the practical decisions indie devs must make.
Mobile attribution is the system that tells you which ad caused which install. Get it wrong and your ROAS numbers lie, you scale the wrong campaigns, and you waste budget.
This is the working explainer for 2026 — what's changed since the ATT/SKAdNetwork era, what you actually need to know, and the practical decisions indie devs need to make.
The pre-ATT world (RIP)
Pre-2021, mobile attribution was simple:
- User clicks ad → IDFA captured.
- User installs app → IDFA captured on install.
- Match IDFAs → attribute install to the ad.
Apple's App Tracking Transparency (ATT, iOS 14.5+) ended that. Now users must consent to IDFA sharing. Most don't (opt-in rates are 25-40% depending on category).
For the 60-75% of users who don't opt in, you get no IDFA. Old-school attribution doesn't work for them.
What replaced it: SKAdNetwork (SKAN)
SKAdNetwork is Apple's first-party attribution system. Networks report installs to Apple; Apple sends aggregated, privacy-preserving postbacks back to advertisers.
Current version: SKAdNetwork 4.0 (the version everyone uses in 2026).
Key features:
- Multiple conversion windows: postbacks at install, then 2-7 days, then 21-35 days, then potentially beyond.
- Coarse conversion values: Apple now returns "Low / Medium / High" + a fine value, allowing better cohort segmentation.
- Crowd anonymity: small cohorts get aggregated to protect privacy.
- Hierarchical reporting: campaign + ad-set + creative levels (in 4.0).
What you lose: per-user attribution. You get cohort-level data, not individual-user paths.
Android attribution: simpler
Android doesn't have ATT. You have access to:
- Google Play Install Referrer — first-party referrer string from the Play install.
- GAID (Google Advertising ID) — equivalent to IDFA, but no ATT prompt yet.
- Network SDK attribution — Meta, TikTok, etc. provide their own attribution.
For Android, you can still do deterministic attribution. The privacy story may change in coming years (Google's Privacy Sandbox), but as of 2026, Android is still mostly the pre-ATT world.
What changes for your day-to-day
Change 1: Conversion-value mapping is the big new task
SKAN 4.0 returns a conversion value. You define what each value means.
Example for a subscription app:
0 = installed, didn't open
1 = opened, no signup
2 = signed up, no trial start
3 = trial started
4 = trial → paid
5 = paid → annual
6 = high-value action (e.g., upgrade to top tier)
This mapping is the most important configuration of your iOS marketing. Get it wrong and your SKAN data is useless.
Most MMPs (Adjust, AppsFlyer, Singular) help you build and tune this. Without an MMP, you'd write it in SDK code yourself.
Change 2: Time horizons matter more
Because postbacks come back in waves (day 0, day 2-7, day 21-35), you're often reading partial data.
A campaign showing "low ROAS" at day 7 might look amazing once the day-35 postbacks arrive. Don't kill campaigns too fast.
Change 3: Network-reported vs MMP-reported numbers differ
Apple Search Ads, Meta, TikTok, Google all report their own install attribution. These will overlap and double-count if you sum them.
Total installs reported by all networks > actual installs you saw.
This is normal. Networks are claiming the same install for credit. Use an MMP (or just SKAN directly via Apple) to deduplicate.
Change 4: Probabilistic attribution is back in the gray zone
Some MMPs offer "probabilistic" attribution for non-consented iOS users — fingerprinting-style matching on IP, time, device characteristics.
Apple explicitly forbids this. Some MMPs do it anyway with caveats. As of 2026, this is gray-area and may get apps rejected. Avoid relying on it.
What indie devs actually need to do
If you're spending <$1k/month on paid
Don't worry about attribution depth. Use:
- Apple Search Ads dashboard — for ASA spend, attribution is built-in and accurate.
- Per-network dashboards — accept that they overlap.
- App Store Connect / Play Console — for top-line install/conversion data.
No MMP needed. Just use the SKAN data each network gives you.
If you're spending $1-5k/month on paid
Define your conversion-value mapping carefully. Use:
- The same per-network dashboards.
- RevenueCat or similar for paid-event tracking.
- Possibly a free MMP tier (some offer free SKAN attribution at low volume).
If you're spending $5-20k/month
Pick an MMP. Adjust or Singular are the cheap options. AppsFlyer is overkill at this scale.
See MMP comparison.
If you're spending $20k+/month
You need an MMP. The cost of bad data exceeds the cost of the MMP. Pick based on your network mix and analytics team.
The conversion-value mapping recipe
A working starting point for a subscription app:
SKAN Conversion Value Mapping
Value 0: no_open
Value 1: open_no_signup
Value 2: signup_no_trial
Value 3: trial_started
Value 4: trial_paid (initial conversion)
Value 5: paid_renewal_month_1
Value 6: high_value (annual, upgrade, etc.)
For a game:
Value 0: no_open
Value 1: tutorial_started
Value 2: tutorial_complete
Value 3: first_session_complete
Value 4: first_iap_offer_seen
Value 5: first_iap_purchase
Value 6: whale_threshold ($50+ spend)
These are starting templates. Tune based on your funnel.
SKAN reporting math you'll get asked
Networks and MMPs report SKAN data in different ways. Common reports:
- Install count — total SKAN postbacks received.
- Conversion-value distribution — % of installs at each value.
- Total value (estimated revenue) — sum of conversion-value mappings × installs.
- ROAS at conversion value — estimated revenue / spend.
These are estimates aggregated from postbacks. They will not match your real revenue exactly — typically within 10-30% for healthy campaigns.
Common mistakes
- Default conversion-value mapping — every app should customize.
- Reading D7 ROAS as the truth — postbacks come in waves; wait for D35.
- Summing network-reported installs — they overlap.
- Ignoring SKAN entirely — it's the iOS truth, like it or not.
- Probabilistic attribution dependence — gray area, risks rejection.
- Not separating iOS and Android decisions — they have very different attribution stacks.
Related reading
- MMP Comparison: Adjust vs AppsFlyer vs Singular
- Mobile Ad Metrics Guide
- ROAS Explained for Mobile Apps
- Measuring True ROAS for Subscription Apps
- Apple Search Ads Complete Campaign Guide 2026
Try the tools
Ready to Optimize Your App Store Listing?
Try our free ASO tools — no signup required.