IDFA support (iOS only)
Stay organized with collections
Save and categorize content based on your preferences.
Select platform:
iOS
Flutter
The User Messaging Platform (UMP) SDK lets you present an
IDFA message
to your users before requesting their consent for
App Tracking Transparency
(ATT). The IDFA message shows your users how your app uses the identifier.
This guide covers using the UMP SDK to present an IDFA message.
Prerequisites
Before you begin, make sure you've done the following:
Update Info.plist
To show a custom alert message, do the following:
- Open the
Info.plist
file.
- Add the
NSUserTrackingUsageDescription
key with a custom message that
describes the usage:
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
The usage description appears as part of the IDFA ATT alert when you present the
consent form:

Then, link the AppTrackingTransparency
framework:

Your app then shows an IDFA message before the ATT alert.
Testing
While testing, remember that the ATT alert only appears a single time since
requestTrackingAuthorization
is a one-time request. The UMP SDK only has a form available to load if the
authorization status is
ATTrackingManagerAuthorizationStatusNotDetermined
.
To make the alert appear a second time, you must uninstall and reinstall your
app on your test device.
Request ads with or without IDFA
If a user denies ATT, continue to request ads using your ad format's APIs. The
Google Mobile Ads SDK
doesn't send IDFA in the ad request. For more details see,
Select an ad format.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["This guide explains how to implement the IDFA message within the User Messaging Platform (UMP) SDK for Flutter apps, specifically for handling Apple's App Tracking Transparency (ATT) requirements."],["Before starting, ensure you have completed the UMP SDK setup and created an IDFA message in Google Ad Manager."],["Update your app's `Info.plist` file to include the `NSUserTrackingUsageDescription` key with a custom message explaining your data usage for personalized ads, which will be displayed in the ATT dialog."],["Link the `AppTrackingTransparency` framework to enable the display of an IDFA explainer message before the ATT dialog appears."],["For testing, remember the ATT dialog appears only once; reinstall the app to see it again after the initial authorization."]]],["To support the IDFA message using the UMP SDK, first complete the \"Get started\" guide and create an IDFA message in Ad Manager. Update the `Info.plist` file by adding the `NSUserTrackingUsageDescription` key with a custom message explaining IDFA usage. Link the `AppTrackingTransparency` framework. During testing, remember the IDFA ATT dialog appears only once unless the app is uninstalled and reinstalled due to the one-time authorization request. The form is available if the authorization status is `ATTrackingManagerAuthorizationStatusNotDetermined`.\n"]]