This page explains how you can use the MAX Terms & Privacy Policy Flow to prompt acceptance of your Terms of Use and Privacy Policy.
AppLovin MAX SDK, when used with Google UMP, complies with TCF v2: the MAX SDK can ingest the consent string and the AC string and can forward the TCF v2 Consent strings / states to the mediated networks as described in TCF v2 consent.
If you do not use Google UMP as your CMP (either through AppLovin’s automated flow or otherwise), you must ensure that the CMP you choose supports all the mediated networks you integrate.
The AppLovin MAX SDK automates the integration of Google UMP.
You do not need to manually integrate the Google UMP.
This is opt-in and AppLovin will provide you instructions on how you can enable this Google UMP integration.
Below is a visual representation of the flow:
MAX SDK initializes.
Regional Compliance Check: AppLovin determines whether the user is in a GDPR region. If so, the MAX SDK presents Google UMP.
(iOS only)
MAX SDK calls your initialization completion callback to signal that you can start loading ads.
Enabling Google UMP
Enabling Google CMP on AdMob dashboard
For MAX consent flow to display the Google GDPR form, you must first create and publish the Google GDPR message on the AdMob dashboard.
To do so:
Click Create message.
The GDPR message page opens.
Select the apps that you want to display your message:
Click Select apps.
Select the desired apps.
Click Save.
Select the languages in which you want to display your message.
In the User consent options section, select Consent or Manage options.
In the Targeting section, select Countries subject to GDPR (EEA and UK).
Click Continue.
The Edit message page opens.
In the Message name field, enter a descriptive message name to help you identify the message later.
This name appears on the Privacy & messaging page and is not visible to users.
Select the Styling tab.
Under the Global section, set the Secondary color to white (#ffffff).
Under the Buttons section, set the Secondary color to gray (#6e6e6e).
Click Publish.
Customize ad partners list
To customize which ad partners show in the GDPR message:
Then you can enable the MAX Terms and Privacy Policy Flow programmatically or by adding a settings file to application resources.
The sections below explain both of these methods.
Programmatically
To enable the MAX Terms and Privacy Policy Flow programmatically, set certain properties of the SDK’s settings object.
Do this before you initialize the SDK, as in the code sample below:
To enable MAX’s Terms and Privacy Policy Flow via Android resources:
Create a JSON file named applovin_settings.json in your raw resource directory.
In this file, create a new JSON object with the key consent_flow_settings.
In this consent_flow_settings object, add the following key-value pairs:
One with the key consent_flow_enabled and the value true.
Another with the key consent_flow_privacy_policy and the value of your Privacy Policy URL.
Optionally, another with the key consent_flow_terms_of_service and the value of your Terms of Service URL.
Optionally, another with the key consent_flow_show_terms_and_privacy_policy_alert_in_gdpr and the value true to show the Terms and Privacy Policy alert in GDPR region before the Google UMP flow.
The SDK presents the consent flow when you initialize the SDK.
When the user completes the flow, the SDK calls your initialization-completion callback.
If you set the user ID in your MMP integration, set it where you set the AppLovin user ID.
The code snippets below use Adjust as an example.
Refer to Adjust’s documentation to learn how to initialize Adjust and set the user ID.
// Initialize other 3rd-party SDKs - do not initialize mediated advertising SDKs, MAX will automatically do that for you. Not following this step will result in noticeable integration issues
// Initialize the Adjust SDK inside the AppLovin SDK's initialization callback
val adjustConfig =AdjustConfig( this, "«your-Adjust-app-token»", AdjustConfig.ENVIRONMENT_SANDBOX or AdjustConfig.ENVIRONMENT_PRODUCTION )
Adjust.onCreate(adjustConfig )
// Start loading ads
}
}
}
Show GDPR flow to existing users
AppLovin recommends that you allow existing users in GDPR regions to reenter the GDPR flow.
Typically, users do this in your app’s Settings section via an option to Manage Existing Privacy Settings.
You can conditionally show that settings option, based on whether the user is in a GDPR region.
To determine if a user is in a GDPR region, call AppLovinSdkConfiguration.getConsentFlowUserGeography() (the user is in GDPR region when getConsentFlowUserGeography() returns ConsentFlowUserGeography.GDPR).
When the user clicks Manage Existing Privacy Settings (or its equivalent), call AppLovinCmpService.showCmpForExistingUser().
Note that this resets the user’s existing consent information.
To set the debug user geography, add the consent_flow_debug_user_geography key with value gdpr under the consent_flow_settings object:
{
"consent_flow_settings": {
⋮
"consent_flow_debug_user_geography": "gdpr"
}
}
Then, set the test device hash ID before you initialize the MAX SDK.
The Google CMP SDK logs this test device hash ID when the app runs on a device.
Set the test device hash ID by making the following call:
Testing Google UMP integration with the Mediation Debugger
Verifying installation
Under the Privacy section of the MAX Mediation Debugger, the CMP (Consent Management Platform) row displays the name of the Google-certified CMP SDK that you integrated.
If you integrated the Google UMP SDK, it displays “Google consent management solutions” as the name.
Verifying IAB TCF parameters
If you select the CMP (Consent Management Platform) row, you can inspect the IAB TCF parameters IABTCF_gdprApplies, IABTCF_TCString, and IABTCF_AddtlConsent.
For the latter two, you can click the row to copy or share its value.
Verifying missing networks
In the CMP CONFIGURATION section, you can verify which networks integrate with or are missing from your Google UMP configuration.
This is an exhaustive list of all networks that are available to MAX.
You can ignore any networks that you did not integrate in your application.
On your CMP flow you must list the networks that you integrate in your application.
To check if any of those networks are missing, and to fix this problem:
Complete the CMP flow, granting consent to all networks.
Open the Mediation Debugger.
The Mediation Debugger parses the TC and AC strings and displays two lists:
Integrated networks you listed on your CMP flow
Networks that are missing which you might need to add (under Configured CMP Networks in the CMP CONFIGURATION section)
You will see missing networks in the MISSING ATP NETWORKS or MISSING TCF VENDORS lists.
If any of these are networks that you integrated into your application:
Return to your CMP’s dashboard.
Add the missing networks to those covered by the GDPR message.
(See Customize ad partners list for how to do this in Google’s Unified Consent Flow.)
Restart your app.
Repeat these steps until you verify that you included all of your networks in the CMP flow.
Verifying mediated network consent statuses
To view the consent statuses of all networks, expand Network Consent Statuses in the Mediation Debugger.
The Mediation Debugger parses the TC string and displays the consent statuses of all networks.
It also displays the AppLovin consent status that it parses from the AC string that Google UMP generates.