App Tracking Transparency (ATT) prompt

The iPhone system dialog an app must use before tracking someone across other companies' apps and sites or accessing the IDFA.

the ask app not to track popupallow tracking dialog on iPhonepermission to track across appswhy is the app asking to track meIDFA permissionApple tracking popupmy ad numbers fell off a cliff after an iOS updatetracking transparancy prompt

See it

Live demo coming soon

What it is

App Tracking Transparency is the iOS system permission for tracking a person across other companies' apps and websites, including access to the advertising identifier. The app supplies a purpose sentence, but Apple draws the dialog and records allowed, denied, restricted, or not determined. Apple made the prompt mandatory in iOS 14.5 in April 2021, which is the moment mobile ad attribution changed for everyone.

Reach for the ATT prompt only when the app or one of its SDKs actually performs Apple's definition of tracking. Ask at a moment where the benefit is understandable, after a plain in-app explanation, then call ATTrackingManager.requestTrackingAuthorization. Ordinary first-party analytics does not automatically require ATT merely because it measures app use.

Gotcha: the system prompt is effectively one shot per install. If the answer is not authorized, the app must not access the IDFA or let an ad or attribution SDK find another way to track the same person. Gate SDK startup on the current authorization status, keep a useful non-tracked path, and make the App Privacy details match what the shipped code does.

Ask AI for it

Implement App Tracking Transparency on iOS with the AppTrackingTransparency framework. Add a concrete NSUserTrackingUsageDescription, show one in-app primer only at the feature that benefits from personalized advertising, then call ATTrackingManager.requestTrackingAuthorization only when trackingAuthorizationStatus is notDetermined. Branch explicitly for authorized, denied, restricted, and notDetermined. Do not initialize the advertising or attribution SDK, read ASIdentifierManager's advertisingIdentifier, or send cross-company tracking data before authorization. Keep contextual ads and core app features working after denial, re-read status on foreground, and add tests proving every tracking code path stays closed unless status is authorized.

You might have meant

app privacy details data safety sectionruntime permissionpermission primingapp review rejection