App Tracking Transparency (ATT) is a permission system Apple introduced with iOS 14.5. If an app wants to track a user across other apps or websites, it must first show an explicit permission dialog.
This change specifically affects mobile advertising. If the user doesn’t grant permission, the app can’t access IDFA (the advertising identifier) and can’t perform measurement tied to that user’s identity. The campaign doesn’t stop working, but it becomes harder to see, on a per-user basis, which ad brought in which user.
Apple’s App Tracking Transparency documentation states that when permission is denied, IDFA returns a zero value (00000000-0000-0000-0000-000000000000) and the app cannot share user data with third parties. Apple’s support page explains which apps the requirement applies to. Apple’s SKAdNetwork documentation shows that even without permission, ad performance can still be measured in an aggregated way, without user identity.
What Is App Tracking Transparency?
ATT is a framework that ties an app’s ability to track a user across other apps or websites to user permission. It has been mandatory since iOS 14.5.
Permission is requested separately for each app
Even if a user grants permission in one app, the system asks again the moment another app is opened. There’s no blanket “allow all apps” setting; each app must show its own dialog.
The permission text is set by Apple
The core text of the dialog — the tracking request and the stated purpose — follows the framework Apple has defined. An app can only add a short explanation; it cannot freely change the wording. For example, an e-commerce app might add a 2-3 word justification like “for personalized ads,” but it can’t change the dialog’s main sentence.
What Happens If Permission Is Denied?
When a user declines tracking, IDFA returns a zero value. This means the app can no longer match the user to ad networks on a per-user basis.
The campaign doesn’t stop, but per-user visibility drops
The ad can still be shown and can still generate conversions. What changes is that the question “which ad brought in which user” can only be answered in an aggregated way, not per user. For example, if a campaign generates 200 sales in a week, which ad those sales came from is now read as a general trend rather than at the customer level.
The size of the impact depends on the opt-in rate
The rate at which users grant permission varies from app to app and audience to audience. The lower this rate, the smaller the share of traffic covered by per-user measurement. This rate can shift noticeably within weeks, particularly for gaming and e-commerce apps — which is why ongoing tracking matters more than a one-off measurement.
How Does SKAdNetwork Step In?
SKAdNetwork is Apple’s framework that makes it possible to measure ad performance even when permission isn’t granted.
Aggregated reporting instead of user identity
SKAdNetwork reports the overall result of an ad campaign rather than an individual user. Postback data is delivered with a delay (between 0-24 hours, to protect privacy) and is encrypted.
Deterministic data loss gives way to probabilistic modeling
As per-user matching declines, many ad platforms try to fill the gap with modeling (probabilistic attribution). This isn’t a precise measurement — it’s an estimate that shows the order of magnitude.
On Meta’s side, the counterpart is AEM
For apps using Meta Ads, the system running in parallel to SKAdNetwork is called Aggregated Event Measurement (AEM). The two systems operate at different layers, and their reports may not overlap exactly.
What Changes for Advertisers?
ATT’s most tangible impact is on the quality of data that campaign optimization and reporting depend on.
Retargeting audiences may shrink
As user-level tracking declines, retargeting audiences targeting previous visitors may become smaller or less current.
Total results and channel-level shares can diverge
An app’s total sales may stay the same, but the breakdown of which channel that revenue came from can become less certain compared to before ATT.
For example, if an app gets 500 sign-ups a month and the opt-in rate has dropped to 30%, most of those 500 sign-ups now show up through aggregated reporting rather than per-user data. The total count stays the same, but the question of which ad brought in which sign-up gets a less precise answer.
Pre-Launch Checklist
An ATT-driven measurement gap shouldn’t be confused with an actual campaign problem:
- Is the drop only visible in iOS app traffic, or is it also showing up on Android and web?
- Has measurement shifted to SKAdNetwork or a similar aggregated method, or is it still relying solely on IDFA?
- Has the opt-in rate changed significantly over time?
- Is the reported result periodically cross-checked against real in-app sales/sign-up data?
A Common Mistake
The most common mistake is interpreting a drop in “per-user measured” conversions after ATT as the campaign having stopped or failed. Most of the time, the problem isn’t with the campaign — it’s that the user is no longer visible on a per-user basis.
Summary
ATT ties an app’s ability to track users to explicit permission. When permission is denied, IDFA is reset, and per-user measurement gives way to aggregated methods like SKAdNetwork. For advertisers, the real work isn’t trying to raise the opt-in rate — it’s building measurement interpretation around this new reality.