App Tracking Transparency

IDFA (Identifier for Advertisers)

  • Before iOS 14.5, advertisers could use the IDFA (Identifier for Advertisers) to measure ad performance and deliver personalized ads. With the introduction of ATT (App Tracking Transparency) in iOS 14.5 and stronger privacy protections, the IDFA value can now be obtained only if the user grants consent.

To maximize ad revenue on iOS 14.5 and later, handling related to the ATT (App Tracking Transparency) framework is required.

Use of ATT (App Tracking Transparency)

  • To request permission to access and use identifiers such as IDFA on iOS 14.5 and later, you must use the ATT (App Tracking Transparency) consent prompt. If you want to manually obtain permission to access the IDFA through code, please follow the five steps below.

It is recommended to use AdMob UMP (User Messaging Platform) to automatically handle the ATT (App Tracking Transparency) consent prompt.

Step 1. SDK Preparation

For new or updated apps, use iOS SDK version 2.5.0 or higher, and for Unity, use Unity Package version 2.5.0 or higher.

Step 2. SKAdNetwork Configuration

Regardless of the user’s ATT consent decision, Apple introduced SKAdNetwork to officially measure the success of ad campaigns. To use SKAdNetwork, add the list of ad network identifiers to your iOS app project’s Info.plist file.

You can find the list of identifiers supported by each ad network in the SKAdNetwork ID List section of this guide.

(example)

<key>SKAdNetworkItems</key>
    <array>
        <dict>
            <key>SKAdNetworkIdentifier</key>
            <string>example100.skadnetwork</string>
        </dict>
        <dict>
            <key>SKAdNetworkIdentifier</key>
            <string>example200.skadnetwork</string>
        </dict>
    </array>

Step 3. Add Usage Description for Permissions

Add the NSUserTrackingUsageDescription key to your Info.plist file and provide a message explaining why the app is requesting permission.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

The usage description message you provide will be displayed in the ATT consent popup.

Step 4. Request permission

To display the permission request, call requestTrackingAuthorizationWithCompletionHandler:

  • The ATT consent prompt must be requested when the app is fully running and in the Active state to display correctly.

    • Calling ATT in application:didFinishLaunchingWithOptions: will not work starting from iOS 15.

  • After the user grants App Tracking Transparency permission, use the completion callback to allow the ad SDK to access the IDFA and then request ads.

#import <AppTrackingTransparency/AppTrackingTransparency.h>

- (void)requestIDFA {
    if (@available(iOS 14.5, *)) {
        // Permission request via ATT prompt
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
        
        }];
    } 
}

Last updated

Was this helpful?