Apple recently announced that its upcoming release of iOS 14, iPadOS 14, and tvOS 14 will include AppTracking Transparency (ATT), which is intended to provide users with tighter control over their privacy and data settings. Apple’s current plan is to roll the change out with the next iOS update (14.5). In Apple’s App Store, each app will need to disclose what data their app collects (for use by the app itself, as well as for any third parties).
User privacy is central to our work here at Quantcast and we are here to support you with preparing for Apple’s upcoming release. This article is meant to provide you with some context on the new Apple feature and guide you through this change.
What is the ATT and what are its requirements?
AppTracking Transparency (ATT) is a new privacy protection framework for Apple device users. With ATT, a notification pops up asking if a user wants to be tracked across third-party apps and websites when the user downloads or opens an app.
This change requires mobile developers to add an iOS ATT alert to get explicit user permission in order to use the IDFA (Identifier for Advertisers) to track campaigns and deliver personalised ads.
What does the iOS ATT alert look like?
Here is an example:
A purpose string needs to be included in the ATT alert
Apps must include a purpose string in the prompt that explains why the app is requesting to track the user. Until receiving permission from the user to enable tracking, the Apple device’s advertising identifier value will be set to all zeros - removing the ability for mobile apps to track users.
For your convenience, Quantcast has created a custom string that can be used as the description string while also continuing to align with our CMP, Quantcast Choice. Here is the custom string:
“We and our partners store and/or access information on your device and process personal data, such as your device’s advertising identifier, for personalised ads and content, ad and content measurement, audience insights, and to develop and improve products.
You can update your preferences at any time under this app’s application settings.”
You can use this message or any other message you’d like to present to your users.
Solution for Quantcast Measure SDK users
The Quantcast Measure SDK uses the IDFA as the unique identifier. Publishers using the Quantcast Measure SDK will need to integrate the ATT and ask for permission from the user to use the IDFA. Without this framework implemented (or in the case where the user does not grant access when prompted for tracking permission), the IDFA will be set to all 0s, making Quantcast Measure unable to track and provide measurement insights on that user.
-
Step 1: Add Usage Description In The Info.plist
Please add NSUserTrackingUsageDescription in the Info.plist of your project to describe how this permission will be used (see sample text below).
<key>NSUserTrackingUsageDescription</key>
<string>We and our partners store and/or access information on your device and process personal data, such as your device’s advertising identifier, for personalised ads and content, ad and content measurement, audience insights, and to develop and improve products.
You can update your preferences at any time under this app’s application settings.</string>
-
Step 2: ATT Framework Implementation
You will need to add the following code to your application’s AppDelegete class’ application method to request authorization:
ObjectiveC:
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
}];
}
Swift:
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { _ in
}
}
Solution for Quantcast Choice SDK Users
The Choice iOS SDK includes code that will issue the required IDFA warning message. When integrating the SDK into your application, you will need to add the usage description in the Info.plist as described above in step 1.
The Choice iOS SDK will have the code to launch this UX embedded. It will only fire if the user has given consent within the CMP. We provide an option within the SDK initialization to disable this functionality if you’d like to implement this yourself.
For more information, you can read: