▸Example AppsFlyer call (the "before")
import AppsFlyerLib
// ATT prompt path — required before AppsFlyer reads IDFA:
ATTrackingManager.requestTrackingAuthorization { _ in
AppsFlyerLib.shared().start()
AppsFlyerLib.shared().logEvent("af_purchase", withValues: [
AFEventParamRevenue: price,
AFEventParamCurrency: "USD",
AFEventParamContentId: sku,
])
}
Apple's App Tracking Transparency dialog is a measurable conversion-rate killer — denial rates of 50-80% are typical, and the wording is mostly outside your control. If an SDK in your app reads IDFA, ATT is required by Apple's App Review. Removing the SDK that needs it is the cleanest way to also remove the prompt.
☑Remove AppsFlyer cleanly
-
1
Remove the AppsFlyer SDK from your build (
AppsFlyerFramework/af-android-sdk/react-native-appsflyer/appsflyer_sdk) -
2
Remove
AppsFlyerLib.shared().start()andlogEvent(...)call sites -
3
Re-check your
Info.plistforNSUserTrackingUsageDescription— if no other SDK needs ATT, remove it (Apple flags apps that ship the key without code that callsATTrackingManager) -
4
Re-check your Android merged manifest for
com.google.android.gms.permission.AD_IDand remove the corresponding<uses-permission>if no other SDK contributes it -
5
Plan how you'll attribute installs without AppsFlyer — Apple SKAdNetwork + Google Play Install Referrer (both first-party, no SDK needed) cover most cases
⇋AppsFlyer vs Respectlytics — no att prompt
| AppsFlyer | Respectlytics | |
|---|---|---|
| Triggers ATT prompt on iOS | — see tool note above | No (SDK never calls ATTrackingManager) |
| Reads IDFA | — see tool note above | No |
| Requires NSUserTrackingUsageDescription in Info.plist | Yes (when reading IDFA) | No |
| App Store Privacy Label: Identifiers tier | Triggered | Not triggered by Respectlytics |
| Effect of users denying ATT | Reduced data quality | No effect (no IDFA path) |
❓Frequently asked questions
If we remove the ATT prompt, won't App Store Review reject our app?
No. Apple only requires ATT when an app or its SDKs actually track users across other apps or websites. If you remove the SDK that does that tracking, you should also remove NSUserTrackingUsageDescription from your Info.plist — keeping the key when no code calls ATTrackingManager.requestTrackingAuthorization is itself a flag Apple's review notes.
How do we still attribute installs to ad campaigns without IDFA?
Use Apple SKAdNetwork (and the newer AdAttributionKit on iOS 17.4+). Both are first-party Apple frameworks designed exactly for this — no IDFA, no ATT prompt, deterministic install attribution within Apple's privacy boundary. Your ads platform (Apple Search Ads / Google Ads / Meta) supports them directly.
Does Respectlytics still work if some users have ATT denied in other apps?
Yes — Respectlytics doesn't read IDFA at all, so the ATT state is irrelevant to it. Your Respectlytics data quality is the same for users who denied ATT in other apps as for users who allowed it.
What about the conversion-rate hit from showing ATT?
That goes away when you remove the prompt. Anecdotally teams report a measurable engagement lift on first-session retention after removing ATT prompts that were shipped purely for analytics rather than for ad attribution.