Why does app attribution fail on iOS after iOS 14.5?
iOS 14.5 killed deterministic device-level tracking through IDFA (Identifier for Advertisers). Apple's App Tracking Transparency (ATT) framework requires explicit user consent to track. Most users decline—adoption rates sit between 15–30% in mature markets. Without IDFA, Facebook and Google can't match conversions back to the exact user who clicked your ad. Both platforms now rely on probabilistic modeling (machine learning against aggregated data) and server-to-server conversion APIs to fill the gap.
This means you can still measure app installs and post-install events, but the data path changed. iOS attribution is now aggregated, delayed 24–72 hours, and subject to Apple's privacy thresholds (events below 5 conversions per campaign per day may be withheld). Android remains more transparent, but Google is moving toward similar privacy controls with Privacy Sandbox.
How do you measure post-install events with ATT consent gaps?
Set up a mobile measurement partner (MMP) like AppsFlyer, Adjust, or Branch to collect raw in-app events server-side and send them back to Facebook and Google via conversion APIs. The MMP sits between your app and your ad platforms, normalizing data across iOS and Android.
The flow works like this:
- User clicks your ad. Facebook or Google logs a click and generates a click ID.
- User installs your app. Your app fires an install event with the click ID embedded (or the MMP infers the match probabilistically on iOS).
- MMP records in-app events. Purchase, signup, add-to-cart, tutorial completion—whatever matters to your LTV model.
- MMP sends conversion data back to ad platforms via API. Facebook and Google learn which campaigns, audiences, and placements drove installs and high-value post-install behavior.
- Platforms optimize for your goal. Instead of optimizing for installs, they optimize for revenue events, or whichever downstream metric you feed them.
Start with install as your baseline, then layer 1–3 key post-install events (first purchase, 7-day retention, signup completion). Don't send every event—noise hurts algorithmic learning. iOS data will be aggregated and delayed; Android will be cleaner and near-real-time. Both are actionable if you're patient and test at sufficient scale (minimum 50 conversions per variant per day for statistical significance).
What does it cost to set up mobile app attribution?
MMP pricing ranges from $0 (free tier, ~10K users/month) to $5K–$15K/month for mid-market (100K–500K users/month). AppsFlyer and Adjust charge per user tracked. Branch charges per event. If you're doing paid media in-house, you likely need only the free or low-tier plan to start; the real cost is engineering time to integrate the SDK and configure the conversion API connections to Facebook and Google.
Setup takes 2–4 weeks: SDK integration in your codebase, QA on test devices, conversion API credential setup, event selection and mapping, and MMP-to-ad-platform testing. If you work with an agency or fractional growth team, that integration cost is typically bundled into your media management fee or charged hourly (15–40 hours at market rates).
Which post-install events should you send to ad platforms?
Start with the events closest to revenue:
- Install (always). iOS gets aggregated; Android gets granular.
- App opens / Launch (optional). Low signal; skip if you have something downstream.
- Signup or registration. If you gate monetization behind signup, this is high-priority.
- First purchase or transaction. Strongest signal for ad spend ROI.
- Add-to-cart or content view. Useful on Android if purchase conversion is too sparse.
- 7-day or 30-day retention. Predictive of LTV; some MMPs let you send cohort-based retention metrics back to platforms (advanced).
Test the 2–3 events that represent your monetization path. Feed them to your ad platforms one at a time over 2-week windows and measure ROAS. The event that drives the best ROAS becomes your optimization goal. Don't send conflicting events (e.g., both purchase and add-to-cart to the same campaign) or the platform's algorithm will struggle to optimize.
How do you validate attribution accuracy?
Run a test campaign with known spend and user volume (minimum 500 installs over 5–7 days). Compare the installs reported by your MMP, your ad platform, your app analytics (Firebase, Amplitude), and your backend database. They should be within 5–15% of each other. Gaps reveal:
- iOS variance (10–20% normal): Aggregated data, modeling error, consent issues. Accept it.
- Android variance (2–5% normal): Organic installs bleeding into paid attribution, SDK initialization timing, deep link parameter loss.
- Post-install event gaps: Measure events in-app (your analytics tool) vs. events the MMP reports vs. events the ad platform logs. If your app reports 100 purchases but your MMP reports 80, check event mapping and MMP SDK configuration.
If the gap is larger than 20%, pause new spend, debug with your MMP support team, and retest after fixes.
What's the practical workflow?
Assume you're running Facebook and Google UAC campaigns for a mobile fitness app. Your funnel is: App Install → Signup → 7-Day Retention → First Subscription. Here's how to set it up:
- Choose your MMP (AppsFlyer is easiest if you're already on Facebook). Integrate the SDK in your app release.
- Map your in-app events in the MMP dashboard: Purchase = first subscription; Custom Event 1 = signup; Custom Event 2 = day 7 launch.
- Configure conversion API access: Facebook App ID + token, Google Ads customer ID + conversion ID.
- Run a test campaign: $1,000 spend over 7 days, target a specific cohort. Install and send post-install data to both platforms.
- After 2 weeks, compare ROAS if you optimized for Install vs. Signup vs. Purchase. Pick the winner.
- Scale the winning variant. Monitor ROAS weekly. Retrain the platforms every 30 days by refreshing conversion data.
On iOS, expect 24–72 hour delays in conversion reporting and 10–20% variance due to ATT consent rates. On Android, expect near-real-time reporting and 2–5% variance. Both are fine for optimization if you adjust your testing window (iOS: 10–14 days; Android: 5–7 days).
Mobile app attribution isn't deterministic anymore, but it's measurable. The key is choosing the right events, validating the setup, and giving the platforms enough data and time to learn. If you feed iOS and Android identical events, both campaigns should move in the same direction—and if they don't, your product funnel has an asymmetry worth fixing.


