AI-generated Key Takeaways
-
This guide details changes required to make your app compatible with iOS 14, focusing on App Tracking Transparency and Publisher first-party ID.
-
You need to add the
NSUserTrackingUsageDescription
key to yourInfo.plist
and request user authorization for tracking to access the IDFA. -
For a better user experience, provide an explanation to users before requesting app tracking permission, potentially using the User Messaging Platform (UMP) SDK.
-
Publisher first-party ID (formerly known as same app key) is enabled by default in IMA SDK for iOS 3.14.5 or higher and can be disabled using
IMASettings::SameAppKeyEnabled
. -
You need to disclose data usage information about your app for the App Store, as required by Apple.
first-party ID, and disclose data use in App Store for the Google Interactive Media Ads (IMA) SDK for iOS.
This guide outlines the changes needed to prepare your app for iOS 14.
Prerequisites
- Interactive Media Ads SDK 3.12.1 or higher.
Request App Tracking Transparency authorization
To display the App Tracking Transparency authorization request for accessing the
IDFA, update your Info.plist
to add the NSUserTrackingUsageDescription
key
with a custom message describing your usage. Here is an example description
text:
<key>NSUserTrackingUsageDescription</key> <string>This identifier will be used to deliver personalized ads to you.</string>
The usage description appears in the App Tracking Transparency dialog box:

To present the authorization request, call
requestTrackingAuthorizationWithCompletionHandler:
.
We recommend waiting for the completion callback prior to loading ads so that if
the user grants the App Tracking Transparency permission, the Interactive Media
Ads SDK can use the IDFA in ad requests.
Swift
import AppTrackingTransparency import AdSupport ... func requestIDFA() { ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in // Tracking authorization completed. Start loading ads here. // loadAd() }) }
Objective-C
#import <AppTrackingTransparency/AppTrackingTransparency.h> #import <AdSupport/AdSupport.h> ... - (void)requestIDFA { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { // Tracking authorization completed. Start loading ads here. // [self loadAd]; }]; }
For more information about the possible status values, see
ATTrackingManager.AuthorizationStatus
.
Publisher first-party ID, formerly known as same app key
Prerequisites: IMA SDK for iOS 3.14.5 or higher
The Interactive Media Ads SDK for iOS introduced Publisher first-party ID, formerly known as same app key to help you deliver more relevant and personalized ads by using data collected from your apps.
Publisher first-party ID is enabled by default, but you can always choose to
disable it in your app by setting
IMASettings::SameAppKeyEnabled
to false
:
Swift
let settings = IMASettings() // Disables Publisher first-party ID, formerly known as same app key. settings.SameAppKeyEnabled = false adsLoader = IMAAdsLoader(settings: settings)
Objective-C
IMASettings *settings = [[IMASettings alloc] init]; // Disables Publisher first-party ID, formerly known as same app key. settings.SameAppKeyEnabled = false; IMAAdsLoader *adsLoader = [[IMAAdsLoader alloc] initWithSettings:settings];
Disclose data usage in the App Store
Apple requires that developers publishing apps on the App Store disclose certain information regarding their apps' data use. Apple has announced that these disclosures will be required for new apps and app updates starting December 8, 2020.
Learn more about the data disclosure requirements.