Initialize
0. GDPR (General Data Protection Regulation)
The GDPR is the European Union's (hereinafter 'EU') data protection law, and service providers must obtain user consent regarding the collection and use of personal data of EU users or equivalent information. This is the procedure required for GDPR compliance and for ad network operations under the regulation.
1. Initialize & GDPR Content UI
On initialization, it provides the necessary features to obtain and process GDPR consent from users in the European Economic Area (EEA). In the AppDelegate, call the initialization function before making any ad-related requests.
In the ADX SDK, you can handle GDPR consent from users.
As of January 16, 2024, IAB Europe requires that consent management be handled through a Consent Management Platform (CMP) certified by platform vendors. Therefore, the GDPR consent screen previously provided internally by the Unity ADX SDK is no longer supported, and GDPR consent must now be managed through AdMob UMP (User Messaging Platform).
If you are servicing, or plan to service, an application in the European Economic Area (EEA), follow the instructions in this document to configure the UMP (User Messaging Platform).
Use the ADX App ID issued by ADX in place of "
<ADX_APP_ID>
".SDK initialization should be called only once when the app launches and ad requests should be made after SDK initialization is complete.
Do not request ads until the
ADXCompletionHandler
closure (block) has been received.
Select one of the items below as the
GdprType
.
GDPR Type
Description
ADXGdprTypePopupLocation
Show the consent popup depending on the region (EU region).
ADXGdprTypePopupDebug
Show the consent popup regardless of region for testing purposes (DEBUG).
ADXGdprTypeDirectNotRequired
Regions where consent is not required (non-EU regions).
ADXGdprTypeDirectDenied
The user has refused the collection and use of personal data.
ADXGdprTypeDirectConfirm
The user has agreed to the collection and use of personal data.
Case 1. Display the GDPR consent screen for users in the EEA
Provides a consent screen that allows users in the European Economic Area (EEA) to choose whether to give consent.
The functionality that allows users in the EEA to choose consent is handled by AdMob UMP (User Messaging Platform).
In
ADXConfiguration
, setGdprType
toADXGdprTypePopupLocation
. Depending on the user’s country, EU users can provide consent through the GDPR consent UI.If you set
GdprType
toADXGdprTypePopupDebug
, the consent UI will show regardless of the user’s country.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
ADXConfiguration *configuration =
[[ADXConfiguration alloc] initWithAppId:@"<ADX_APP_ID>"
gdprType:ADXGdprTypePopupLocation
testDevices:@[@""]];
[[ADXSdk sharedInstance] initializeWithConfiguration:configuration
completionHandler:^(BOOL result, ADXConsentState consentState) {
NSLog(@"ADX Sdk Initialize");
}];
return YES;
}

Case 2. Direct Consent State
If your app does not have users in the European Economic Area (EEA) or does not collect personal data as defined by GDPR (e.g., account registration within the app), you must handle consent manually.
For regions outside the European Economic Area (EEA) where consent is not required, set
GdprType
toADXGdprTypeDirectNotRequired
inADXConfiguration
.
In UMP, GDPR and IDFA (Identifier for Advertisers) access permissions are managed together. If GdprType
is set to ADXGdprTypeDirectNotRequired
, access to IDFA will not be granted. In this case, the ATT (App Tracking Transparency) consent request must be handled manually using programming code.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Note: When using AdMob UMP's IDFA message, use 'ADXGdprTypePopupLocation'
ADXConfiguration *configuration =
[[ADXConfiguration alloc] initWithAppId:@"<ADX_APP_ID>"
gdprType:ADXGdprTypeDirectNotRequired
testDevices:@[@""]];
[[ADXSdk sharedInstance] initializeWithConfiguration:configuration
completionHandler:^(BOOL result, ADXConsentState consentState) {
NSLog(@"ADX Sdk Initialize");
}];
return YES;
}
2. ConsentState
GDPR consent can have one of the following four states.
State
Description
ADXConsentStateUnknown
Users with no consent status: personalized ads will not be shown.
ADXConsentStateNotRequired
Regions where consent is not required (non-EU regions): personalized ads will be shown.
ADXConsentStateDenied
Users who have refused the collection and use of personal data: personalized ads will not be shown.
ADXConsentStateConfirm
Users who have agreed to the collection and use of personal data: personalized ads will be shown.
To check or update the consent state, use the following functions provided by ADXGdprManager
.
// Checks the consent state of the user set in ADXGdprManager.
[ADXGdprManager sharedInstance].consentState;
// Manually updates the consent state.
[[ADXGdprManager sharedInstance] setConsentState:ADXConsentStateConfirm];
3. Redisplay the GDPR consent screen
You can redisplay the GDPR consent screen to the user, allowing the consent state to be updated.
#import <ADXLibrary/ADXLibrary.h>
UIViewController * viewController = self;
[[ADXSdk sharedInstance] showGDPRForm:viewController
completionHandler:^(BOOL result) {
}];
4. Privacy Policy
You can access the URL of ADX’s Privacy Policy by calling privacyPolicyURL
in ADXGdprManager
.
[ADXGdprManager sharedInstance].privacyPolicyURL;
5. Enable Debugging Logging
To verify proper integration and mediation during QA, set the logLevel
in ADXConfiguration
before calling the initialization method.
ADXConfiguration *configuration =
[[ADXConfiguration alloc] initWithAppId:@"<ADX_APP_ID>"
gdprType:ADXGdprTypePopupLocation];
configuration.logLevel = ADXLogLevelDebug;
6. Child-Directed Settings
If your content is intended for children under COPPA regulations or targets users below the consent age in the European Economic Area (EEA), you must configure AdMob targeting settings before calling the initialization function. For more details, refer to AdMob Targeting: https://developers.google.com/admob/ios/targeting?hl=en
Last updated
Was this helpful?