App Tracking Transparency (ATT) is Apple's framework for requesting access to a user's IDFA. If you use any of our attribution integrations, this article will explain what you need to do to make your app compliant.
What is App Tracking Transparency (ATT)?
Starting in iOS 14.5, collecting the IDFA will require permission from the user. This is done by integrating Apple's
AppTrackingTransparency framework in your app.
How Does ATT Affect RevenueCat?
RevenueCat will continue working as expected because RevenueCat doesn't depend on IDFA or
collectDeviceIdentifiers to work. However, depending on the integrations or workflows you have, you may need to update your app to ask the user permission to collect the IDFA via
collectDeviceIdentifiers. This section will help you figure out whether you need to integrate ATT.
If any of the following apply to you, you don't need to integrate ATT:
- You only use integrations that don't require or rely on IDFA to work, such as Amplitude or Mixpanel.
- You don't mind forgoing the IDFA to improve the user experience. ATT will pop up a message to the user asking for permission to collect IDFA, which can be disruptive or undesirable for some kinds of apps.
- You can rely on other identifiers for your workflows, like IDFV or email.
However, if you use any ad attribution integrations with RevenueCat, you need to integrate ATT. When it comes to attribution networks, RevenueCat's behavior will not change, but RevenueCat sits in between your app and the ad attribution networks, so app updates will be necessary to ensure RevenueCat can forward the correct information to the attribution networks. When you call
collectDeviceIdentifiers, the SDK will send any device identifiers it can collect to RevenueCat. RevenueCat will forward these device identifiers to attribution networks when any purchase event happens. So you will want to make sure you implement ATT to be able to collect IDFA if that's important to you, and to contact your ad attribution network to see if ATT is going to affect their attribution. If you use any of the following integrations that rely on the IDFA, we recommend implementing the ATT framework:
- Facebook Ads
- mParticle (only if you want to send the IDFA into mParticle)
How Do I Integrate ATT Into My App?
Starting in iOS 14.5, your app will need to request permission from the user to request the IDFA. This is done by integrating Apple's
AppTrackingTransparency framework and hooking into it to display a popup like this:
The basic steps required to integrate ATT are:
- Add the
NSUserTrackingUsageDescriptionkey to your
Info.plist. This is a user-facing description of why the user should grant your app permission to collect the IDFA that shows up in the pop up. More info here: https://developer.apple.com/documentation/bundleresources/information_property_list/nsusertrackingusagedescription
requestTrackingAuthorizationin your app before you call
collectDeviceIdentifiersif you want to collect the IDFA. If you call
collectDeviceIdentifiersbefore you get permission, you should call
collectDeviceIdentifiersagain to make sure that you also collect the IDFA. If you don't need to collect IDFA, you don't need to call
requestTrackingAuthorization. More details here: https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorization
All of this work is not related to RevenueCat - it's getting your app working with Apple's ATT framework. Apple has an overview of the ATT framework here: https://developer.apple.com/documentation/apptrackingtransparency