iOS attribution data is inaccurate primarily because Apple’s App Tracking Transparency (ATT) framework, introduced with iOS 14, removed access to the IDFA for most users. Without the IDFA, ad networks can no longer track individual installs deterministically, which means your app install numbers, ROAS figures, and campaign-level data are based on a combination of aggregated signals and statistical modelling rather than one-to-one user tracking. If your tracking numbers don’t match across platforms, or your app installs dropped suddenly after an iOS update, this is almost always the root cause. The sections below break down exactly how each piece of this puzzle works.
What changed in iOS 14 that broke attribution?
iOS 14 introduced the App Tracking Transparency framework, which requires apps to ask users for explicit permission before accessing their IDFA (Identifier for Advertisers). Before this change, the IDFA was available by default and allowed ad networks to match ad clicks to app installs with high accuracy. Once most users began declining tracking, that deterministic match rate collapsed, and attribution data became fragmented almost overnight.
The IDFA had been the backbone of mobile attribution for years. When a user clicked an ad and installed an app, the IDFA allowed the ad network and your mobile measurement partner (MMP) to confirm the match. With opt-in rates sitting well below 50% across most app categories, the majority of installs now happen without any IDFA being present. That gap is what causes the attribution data mismatch you see in your dashboards today.
Apple did not remove attribution entirely. They replaced IDFA-based tracking with SKAdNetwork, their own privacy-preserving attribution framework. But SKAdNetwork works very differently, and that difference is the source of most of the confusion marketers face in 2026.
How does SKAdNetwork affect your campaign data?
SKAdNetwork is Apple’s privacy-preserving attribution framework that sends aggregated, delayed conversion signals to ad networks without exposing individual user data. Instead of reporting a real-time install linked to a specific user, SKAdNetwork sends a postback to the ad network after a delay, with limited conversion value data and no user-level identifiers attached.
Several characteristics of SKAdNetwork directly affect the accuracy and completeness of your campaign data:
- Delayed reporting: SKAdNetwork postbacks are sent after a timer window closes, not in real time. This means installs and conversion events appear in your data later than they actually occurred.
- Limited conversion values: SKAdNetwork allows a single conversion value to be passed per install, which gives you a narrow window to capture meaningful post-install behaviour before the timer locks.
- No user-level data: You cannot see which individual users converted, which makes audience segmentation and retargeting on iOS significantly harder.
- Campaign count limits: Earlier versions of SKAdNetwork placed strict limits on how many campaigns could be tracked per network, which forced consolidation and reduced granularity.
SKAdNetwork 4.0 introduced improvements, including hierarchical source identifiers and more nuanced conversion values, but the fundamental constraint remains: iOS attribution is aggregated and delayed, not individual and real-time.
Why do numbers differ between ad networks and your MMP?
Numbers differ between ad networks and your MMP because each platform counts installs and conversions using different methodologies, attribution windows, and data sources. Ad networks report based on their own click and impression data, while your MMP applies its own attribution logic, deduplication rules, and SKAdNetwork postback processing. These differences compound each other, which is why the attribution data mismatch can appear large even when both sources are technically correct.
The most common reasons for the gap include:
- View-through vs. click-through attribution: Some ad networks count installs that follow an ad impression, even without a click. Your MMP may not count these the same way.
- Attribution window differences: A network may use a 30-day click window while your MMP uses a 7-day window. Installs that fall outside the MMP window still appear in the network’s count.
- Deduplication: If a user saw ads from two networks before installing, the MMP assigns the install to one source. Both networks may have counted the same install independently.
- SKAdNetwork postback timing: MMPs receive SKAdNetwork postbacks with a delay. If you compare data before the postback window closes, the numbers will not align.
Understanding which source to trust for which decision is more useful than trying to make the numbers match exactly. Your MMP is the single source of truth for deduplicated, comparable attribution data across channels.
What is probabilistic attribution and when does it apply?
Probabilistic attribution is a method of matching ad clicks to app installs based on shared signals such as IP address, device type, operating system version, and timestamp, rather than a unique identifier like the IDFA. When an exact match is not possible, the attribution system calculates the probability that a given install came from a specific click, and assigns credit accordingly.
On iOS, probabilistic attribution applies when a user has not granted ATT permission and no IDFA is available. In those cases, your MMP cannot confirm a deterministic match, so it falls back to probabilistic matching. The accuracy of this method depends on how distinctive the combination of available signals is. A match based on a unique IP address and a narrow timestamp window is reasonably reliable. A match based on a shared IP from a corporate network with many devices is much less so.
It is worth noting that Apple’s guidelines place restrictions on using device fingerprinting for attribution purposes. Many MMPs have moved toward modelled or aggregated approaches rather than probabilistic fingerprinting specifically, to stay compliant. This is another reason why unattributed installs meaning “no matched source” has become more common in iOS reporting, and why your overall attributed install volume on iOS may appear lower than it actually is.
How can you improve iOS attribution accuracy?
You can improve iOS attribution accuracy by increasing ATT opt-in rates, configuring SKAdNetwork conversion values strategically, and ensuring your MMP is set up correctly to process iOS signals. No single fix restores pre-iOS 14 accuracy, but combining these approaches gives you a significantly cleaner picture of campaign performance.
Increase your ATT opt-in rate
The most direct way to improve attribution accuracy is to get more users to grant tracking permission. You can do this by presenting a pre-permission prompt before the official ATT dialogue, explaining clearly what tracking is used for and why it benefits the user. Timing matters too: asking after a positive in-app moment, such as completing onboarding or achieving a goal, tends to produce higher opt-in rates than asking on first launch.
Configure SKAdNetwork conversion values with intent
SKAdNetwork conversion values are limited, so you need to decide upfront which post-install events matter most and map them to the available values in a way that gives you actionable data. If you use the conversion value window to capture only installs and ignore meaningful engagement signals, you lose the ability to optimise campaigns toward users who actually activate or convert. Working with your MMP to define a conversion value schema aligned with your key in-app events makes a real difference to the quality of your campaign signals.
Validate your MMP setup
Incorrect MMP configuration is a common and often overlooked cause of iOS install tracking inaccurate reporting. Make sure your SKAdNetwork postback URLs are correctly registered, your attribution windows are consistent across platforms, and your conversion value schema is actively updating. Platforms like Adjust, AppsFlyer, and Branch each have specific requirements for iOS setup, and gaps in configuration lead directly to unattributed installs and data gaps.
Should you trust modelled conversions for iOS campaign decisions?
Yes, you should use modelled conversions for iOS campaign decisions, but with a clear understanding of what they represent. Modelled conversions are statistical estimates that fill the gaps left by missing SKAdNetwork data and low ATT opt-in rates. They are not fabricated numbers; they are informed projections based on observed patterns across users who did consent to tracking. For campaign-level optimisation, they are the best available signal on iOS today.
The key is to use modelled data consistently and comparatively rather than as an absolute count. If your ROAS doesn’t match reality or your marketing numbers don’t add up when you compare iOS to Android, part of that difference is structural: Android still supports more granular attribution, while iOS data is inherently aggregated. Comparing the two directly without accounting for this will always produce confusion.
Use modelled conversions to identify directional trends, compare campaigns against each other within the same channel, and inform budget allocation decisions. Avoid using them to make precise claims about exact install volumes or revenue per user, where the margin of error is too wide to be meaningful. The marketers who navigate iOS attribution well are those who accept the limitations of the data and build decision frameworks that work within those constraints rather than against them.
If you are still seeing large unexplained gaps in your iOS data, the issue is usually one of three things: ATT opt-in rates that are lower than average for your category, a misconfigured conversion value schema, or attribution window mismatches between your ad networks and MMP. Each of these is solvable with the right setup and the right expertise.
At Wuzzon, we work with these exact challenges every day. Our team has hands-on experience with Adjust, AppsFlyer, and Branch, and we know how to configure iOS attribution setups that give you the clearest possible picture of your campaign performance. If your app install numbers are wrong or your attribution data is pointing in different directions, our app growth services are built to diagnose and fix exactly these kinds of issues. You can also request a free consultation to talk through your specific iOS attribution setup with one of our specialists.
Frequently Asked Questions
What ATT opt-in rate should I aim for, and what's considered a good benchmark?
Opt-in rates vary significantly by app category, but industry averages typically sit between 25% and 45%. Gaming and utility apps tend to sit at the lower end, while apps that clearly communicate a personalised value exchange — such as fitness or finance apps — can reach 50% or higher. Rather than chasing a universal benchmark, focus on improving your own rate incrementally: even a 10-percentage-point increase in opt-ins meaningfully reduces your unattributed install volume and improves the reliability of your campaign data.
How do I know if my SKAdNetwork conversion value schema is actually working correctly?
The clearest sign that your conversion value schema is working is that your MMP is receiving postbacks with populated conversion values, not just null or zero values. You can verify this in your MMP’s raw postback logs or reporting dashboards — platforms like Adjust, AppsFlyer, and Branch all provide visibility into postback receipt and conversion value distribution. If a large proportion of your postbacks are arriving with empty conversion values, it usually means your in-app events are not firing within the SKAdNetwork timer window, and your schema needs to be reconfigured to capture earlier, faster signals.
What's the difference between SKAdNetwork 3.0 and 4.0, and do I need to upgrade?
SKAdNetwork 4.0, available from iOS 16.1 onwards, introduced hierarchical source identifiers (replacing the older campaign ID system), multiple conversion postbacks across a longer measurement window, and more granular conversion values for high-traffic campaigns. These improvements give marketers significantly more signal depth compared to earlier versions. If your app supports iOS 16.1 and above and your MMP has rolled out SKAdNetwork 4.0 support — which most major platforms have — upgrading your implementation is worth the effort, as it directly improves the quality and timeliness of your attribution data.
Is there any way to do audience segmentation or retargeting on iOS without the IDFA?
Direct user-level retargeting on iOS is no longer possible for users who have not granted ATT permission, since there is no identifier to match against. However, there are practical alternatives: you can retarget users who have opted in (your consented audience), use contextual targeting based on content and placement rather than user behaviour, and leverage first-party data such as email or phone number for hashed audience matching on platforms that support it. Some ad networks also offer aggregated audience modelling that approximates retargeting at a cohort level without relying on individual identifiers.
How should I handle reporting to stakeholders when iOS attribution data is incomplete or modelled?
The most effective approach is to set expectations upfront by clearly labelling modelled or estimated data in your reports and explaining what it represents. Frame iOS performance in terms of directional trends and relative comparisons — for example, Campaign A outperforming Campaign B by 30% — rather than absolute install or revenue figures where the margin of error is wide. It also helps to establish a consistent reporting methodology and stick to it, so stakeholders are comparing like-for-like data over time rather than reacting to fluctuations caused by methodology changes or postback timing differences.
Can I use Meta's Aggregated Event Measurement (AEM) alongside SKAdNetwork, and how do they interact?
Yes, Meta’s Aggregated Event Measurement operates alongside SKAdNetwork rather than replacing it — they are separate frameworks that serve overlapping but distinct purposes. SKAdNetwork handles attribution at the Apple level and reports back to ad networks, while Meta’s AEM is Meta’s own system for measuring campaign events within its ecosystem under privacy constraints. When running iOS campaigns on Meta, both frameworks will be active simultaneously, and your MMP will reconcile the signals from each. The key is to ensure your event configuration is aligned across both systems so you are not inadvertently measuring different events or windows in each.
What should I do first if I suspect my iOS attribution setup has a configuration problem?
Start by auditing your SKAdNetwork postback registration in your MMP — confirm that your app’s SKAdNetwork IDs are correctly listed in your Info.plist file and that postback URLs are properly configured for each ad network you are running. Next, check your conversion value update logic to ensure events are firing and updating values within the SKAdNetwork timer window. Finally, compare your attribution window settings across your MMP and each ad network to identify any mismatches. Most configuration issues fall into one of these three areas, and your MMP’s support documentation or a specialist audit can usually pinpoint the exact gap quickly.
Related Articles
- Why do I have too many dashboards for app marketing?
- How do you advertise an app using influencer marketing?
- How do you advertise an app and prevent ad fraud?
- 10 expert tips to advertise your app on a tight budget
- How do you conduct an app store optimization competitor analysis?
- What is app store personalization?
- When is the best time to ask users for an app review?
- What are long-tail keywords in app store optimization?
- 6 app store metadata optimization tips for iOS and Android
- What are app store creatives?