Stay organized with collections
Save and categorize content based on your preferences.
This guide outlines the changes needed to prepare your app for
tvOS 14.
Prerequisites
Interactive Media Ads SDK 4.3.2 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.
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:
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.
[[["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-20 UTC."],[[["\u003cp\u003eTo request App Tracking Transparency authorization for accessing the IDFA, update your \u003ccode\u003eInfo.plist\u003c/code\u003e to add the \u003ccode\u003eNSUserTrackingUsageDescription\u003c/code\u003e key with a custom message and call \u003ccode\u003erequestTrackingAuthorizationWithCompletionHandler:\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003ePublisher 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 by setting \u003ccode\u003eIMASettings::SameAppKeyEnabled\u003c/code\u003e to \u003ccode\u003efalse\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers publishing apps on the App Store need to disclose certain information regarding their apps' data use, with these disclosures being required for new apps and app updates starting December 8, 2020.\u003c/p\u003e\n"],["\u003cp\u003eYou should update to Interactive Media Ads SDK 4.3.2 or higher to prepare your app for tvOS 14.\u003c/p\u003e\n"]]],["To prepare for tvOS 14, update your app with Interactive Media Ads SDK 4.3.2 or higher. Add the `NSUserTrackingUsageDescription` key to your `Info.plist` to request App Tracking Transparency authorization via `requestTrackingAuthorizationWithCompletionHandler:`. It is highly recommended to implement an explainer to the users. Publisher first-party ID (formerly same app key), is enabled by default and can be disabled via `IMASettings::SameAppKeyEnabled`. Disclose all data usage in the App Store, as required by Apple starting December 8, 2020.\n"],null,["# Prepare tvOS versions\n\nThis guide outlines the changes needed to prepare your app for\ntvOS 14.\n\nPrerequisites\n-------------\n\n- Interactive Media Ads SDK 4.3.2 or higher.\n\nRequest App Tracking Transparency authorization\n-----------------------------------------------\n\nTo display the App Tracking Transparency authorization request for accessing the\nIDFA, update your `Info.plist` to add the `NSUserTrackingUsageDescription` key\nwith a custom message describing your usage. Here is an example description\ntext: \n\n```text\n\u003ckey\u003eNSUserTrackingUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis identifier will be used to deliver personalized ads to you.\u003c/string\u003e\n```\n\nThe usage description appears in the App Tracking Transparency dialog box:\n\nTo present the authorization request, call\n[`requestTrackingAuthorizationWithCompletionHandler:`](//developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorization).\nWe recommend waiting for the completion callback prior to loading ads so that if\nthe user grants the App Tracking Transparency permission, the Interactive Media\nAds SDK can use the IDFA in ad requests. \n\n### Swift\n\n```swift\nimport AppTrackingTransparency\nimport AdSupport\n...\nfunc requestIDFA() {\n ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in\n // Tracking authorization completed. Start loading ads here.\n // loadAd()\n })\n}\n```\n\n### Objective-C\n\n```objective-c\n#import \u003cAppTrackingTransparency/AppTrackingTransparency.h\u003e\n#import \u003cAdSupport/AdSupport.h\u003e\n...\n- (void)requestIDFA {\n [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {\n // Tracking authorization completed. Start loading ads here.\n // [self loadAd];\n }];\n}\n```\n\nFor more information about the possible status values, see\n[`ATTrackingManager.AuthorizationStatus`](//developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/authorizationstatus).\n| **Key Point:** For a better user experience, we recommend adding an explainer preceding the call to `requestTrackingAuthorizationWithCompletionHandler:` to clarify the permission and data usage to users.\n\nPublisher first-party ID, formerly known as same app key\n--------------------------------------------------------\n\n| **Note:** Same app key has been renamed to [Publisher first-party\n| ID](//support.google.com/admob/answer/9997589). The same app key API may change to reflect publisher first-party ID in an upcoming SDK release. This change will not impact existing activation of same app key on IMA SDKs 3.14.5+. All applicable SDK versions will process the identifier seamlessly.\n\n**Prerequisites: IMA SDK for iOS 3.14.5 or higher**\n\nThe Interactive Media Ads SDK for iOS introduced Publisher first-party\nID, formerly known as [same app\nkey](//support.google.com/admanager/answer/9997589) to help you deliver more\nrelevant and personalized ads by using data collected from your apps.\n\nPublisher first-party ID is enabled by default, but you can always choose to\ndisable it in your app by setting\n[`IMASettings::SameAppKeyEnabled`](/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASettings#sameappkeyenabled) to `false`: \n\n### Swift\n\n```swift\nlet settings = IMASettings()\n// Disables Publisher first-party ID, formerly known as same app key.\nsettings.SameAppKeyEnabled = false\nadsLoader = IMAAdsLoader(settings: settings)\n```\n\n### Objective-C\n\n```objective-c\nIMASettings *settings = [[IMASettings alloc] init];\n// Disables Publisher first-party ID, formerly known as same app key.\nsettings.SameAppKeyEnabled = false;\nIMAAdsLoader *adsLoader = [[IMAAdsLoader alloc] initWithSettings:settings];\n```\n\nDisclose data usage in the App Store\n------------------------------------\n\nApple requires that developers publishing apps on the App Store disclose\n[certain information](//developer.apple.com/app-store/app-privacy-details/)\nregarding their apps' data use. Apple has\n[announced](//developer.apple.com/news/?id=vlj9jty9) that these disclosures will\nbe required for new apps and app updates starting December 8, 2020.\n\n[Learn more about the data disclosure\nrequirements](/ad-manager/dynamic-ad-insertion/sdk/tvos/data-disclosure)."]]