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:
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.
[[["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-09-04 UTC."],[[["\u003cp\u003eThis guide provides steps to implement the IDFA message within the User Messaging Platform (UMP) SDK for iOS apps.\u003c/p\u003e\n"],["\u003cp\u003eBefore proceeding, complete the UMP Get Started guide and create an IDFA message in Ad Manager.\u003c/p\u003e\n"],["\u003cp\u003eUpdate your app's \u003ccode\u003eInfo.plist\u003c/code\u003e to include the \u003ccode\u003eNSUserTrackingUsageDescription\u003c/code\u003e key explaining how you use the IDFA.\u003c/p\u003e\n"],["\u003cp\u003eLink the \u003ccode\u003eAppTrackingTransparency\u003c/code\u003e framework to enable the IDFA explainer message before the iOS system dialog.\u003c/p\u003e\n"],["\u003cp\u003eFor testing purposes, reinstall the app to see the IDFA ATT dialog repeatedly, as it only appears once per install.\u003c/p\u003e\n"]]],[],null,["Select platform: [iOS](/ad-manager/mobile-ads-sdk/ios/privacy/idfa \"View this page for the iOS platform docs.\") [Flutter](/ad-manager/mobile-ads-sdk/flutter/privacy/idfa \"View this page for the Flutter platform docs.\")\n\n\u003cbr /\u003e\n\nThe User Messaging Platform (UMP) SDK lets you present an\n\n[IDFA message](//support.google.com/admanager/answer/10115027)\n\nto your users before requesting their consent for\n[App Tracking Transparency](//developer.apple.com/documentation/apptrackingtransparency)\n(ATT). The IDFA message shows your users how your app uses the identifier.\n\nThis guide covers using the UMP SDK to present an IDFA message.\n| **Note:** If you enable both GDPR and IDFA messages, refer to [Which message your users will\n| see](//support.google.com/admanager/answer/10075998#which-message-your-users-will-see) for the possible outcomes.\n\nPrerequisites\n\nBefore you begin, make sure you've done the following:\n\n- Complete the [Get started guide](/ad-manager/mobile-ads-sdk/ios/privacy).\n- [Create an IDFA message](//support.google.com/admanager/answer/10116236) in the Ad Manager UI.\n\nUpdate Info.plist\n\nTo show a custom alert message, do the following:\n\n1. Open the `Info.plist` file.\n2. Add the `NSUserTrackingUsageDescription` key with a custom message that describes the usage:\n\n \u003ckey\u003eNSUserTrackingUsageDescription\u003c/key\u003e\n \u003cstring\u003eThis identifier will be used to deliver personalized ads to you.\u003c/string\u003e\n\nThe usage description appears as part of the IDFA ATT alert when you present the\nconsent form:\n\nThen, link the `AppTrackingTransparency` framework:\n\nYour app then shows an IDFA message before the ATT alert.\n\nTesting\n\nWhile testing, remember that the ATT alert only appears a single time since\n[`requestTrackingAuthorization`](//developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorization)\nis a one-time request. The UMP SDK only has a form available to load if the\nauthorization status is\n[`ATTrackingManagerAuthorizationStatusNotDetermined`](//developer.apple.com/documentation/apptrackingtransparency/attrackingmanagerauthorizationstatus/attrackingmanagerauthorizationstatusnotdetermined?language=objc).\n\nTo make the alert appear a second time, you must uninstall and reinstall your\napp on your test device.\n\nRequest ads with or without IDFA\n\nIf a user denies ATT, continue to request ads using your ad format's APIs. The\nGoogle Mobile Ads SDK doesn't send IDFA in the ad request. For more details see,\n[Select an ad format](/ad-manager/mobile-ads-sdk/ios/quick-start#select_an_ad_format)."]]