App Tracking Transparency
Starting in iOS 14.5, IDFA will be unavailable until an app calls the App Tracking Transparency framework to present the app-tracking authorization request to the end-user. If an app does not present this request, the IDFA will automatically be zeroed out, which may lead to a significant loss in ad revenue.
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 the usage.
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
And AppTrackingTransparency.framework to your project.
Appodeal Unity Plugin automatically adds NSUserTrackingUsageDescription
(if the
corresponding checkbox
was ticked in Appodeal → Appodeal Settings) and AppTrackingTransparency.framework.
1. Stack Consent Manager
If you are using StackConsentManager framework in your project, no additional steps are required. Authorization
request will be shown for users under iOS 14.5 and higher after
-[STKConsentManager showConsentDialogFromRootViewController:delegate:]
method is invoked.
No additional steps are needed. Consent Manager integration remains the same as in the GDPR/CCPA section.
Consent Manager will show ATT request only for users under iOS 14.5 or higher, you may want to add some notes in
App Review Information section of the app version page in App Store Connect. For example, it can be something like:
App Tracking Transparency request is only available for users under iOS 14.5 or higher. This step may be needed
because Apple can reject builds that contain AppTrackingTransparency.framework
, but do not display ATT requests at
app launch.
2. Manually
Disable ATT request via Appodeal Unity Consent Manger:
- UPM Distribution
- Manual Distribution
_consentManager = ConsentManager.GetInstance();
_consentManager?.RequestConsentInfoUpdate(AppKey, this);
// Prevent consent manager to ask app tracking transparency permissions
_consentManager?.DisableAppTrackingTransparencyRequest();
consentManager = ConsentManager.getInstance();
consentManager?.requestConsentInfoUpdate(appKey, this);
// Prevent consent manager to ask app tracking transparency permissions
consentManager?.disableAppTrackingTransparencyRequest();
Download Unity App Tracking Transparency Plugin
Import Unity App Tracking Transparency Plugin to your project.
Extend your class with IAppodealAppTrackingTransparencyListener
:
SomeClassName : IAppodealAppTrackingTransparencyListener {}
Call the method below to present the App Tracking Transparency authorization request alert. Call this method at the application launch event
AppodealAppTrackingTransparency.RequestTrackingAuthorization(this);
Now you can use the following callback methods within your class
:
public void AppodealAppTrackingTransparencyListenerNotDetermined()
{
Debug.Log("AppodealAppTrackingTransparencyListenerNotDetermined");
}
public void AppodealAppTrackingTransparencyListenerRestricted()
{
Debug.Log("AppodealAppTrackingTransparencyListenerRestricted");
}
public void AppodealAppTrackingTransparencyListenerDenied()
{
Debug.Log("AppodealAppTrackingTransparencyListenerDenied");
}
public void AppodealAppTrackingTransparencyListenerAuthorized()
{
Debug.Log("AppodealAppTrackingTransparencyListenerAuthorized");
}