What is Google consent mode?
Google consent mode helps you to obtain your users consent and pass it to Google seamlessly. Consequently, Google tools adjust their behaviors automatically. Google further supplements this by filling gaps through conversion modeling and behavioral modeling, aiding you in achieving your marketing goals. For mobile applications, this is crucial to ensure the proper functioning of Firebase Services.
Those who do not have consent mode enabled are not able to capture new European Economic Area (EEA) users in their audiences since March 2024.
Implement Google consent mode in your app
To successfully incorporate Google consent mode v2 into your mobile application, there are a few essential steps to ensure a seamless integration process.
Consent types
Google has the following consent types:
Consent Type | Description |
|---|---|
ad_storage | Enables storage, such as cookies (web) or device identifiers (apps), related to advertising. |
ad_user_data | Sets consent for sending user data to Google for online advertising purposes. |
ad_personalization | Sets consent for personalized advertising. |
analytics_storage | Enables storage, such as cookies (web) or device identifiers (apps), related to analytics, for example, visit duration. |
More details can be found in Google's official documentation.
Setting up vendors and services
To set up Google consent mode,
Google adheres entirely to TCF policies and is registered as a vendor with ID 755 on IAB Global Vendor List (check out IAB’s vendor list).
Therefore, it's mandatory to select this vendor from the Global Vendor List to enable the SDK to signal consent mode accurately.

Full overview of the purposes and corresponding consent types can be found in Google’s official documentation.
Example banner:

After the end-user interacts with the banner, the following scenarios could happen:
Accept All ✅
All Consent Types will be set totrue.Deny All ❌
All Consent Types will be set tofalse.Save Settings (granular choices) 📋
In this scenario, consent types may have different values, since it will vary according to the consent given to Google Adverting Products TCF Vendor, Purposes being used, and their Legal Basis.An example showing which options users could customize:

Check Google's official documentation to have an overview of possible outcomes of granular choices made by the end-user.
We always set the enableAdvertiserConsentMode flag to true, delegating the interpretation of the TCString to Google in order to infer consents.
For more details on how Google will process the generated TCString, read this article in their documentation.
When using GDPR only, if you need to have all the four Consent Type flags set, you need to add two Data Processing Services.
To set values related to Analytics data collection, add in the Admin Interface the DPS named Google Analytics for Firebase with template ID diWdt4yLB.
We will update the analytics_storage flag and set analytics data collection enabled or disabled, according to the consent given to Google Analytics for Firebase.
In order to set values related to Advertising data Collection, you should add in the Admin Interface the DPS named Google Analytics Advertising for Firebase with template ID GqhZxB-iiydzEk.
We will update the flags ad_storage, ad_user_data and ad_personalization according to the consent given to Google Analytics Advertising for Firebase.
More details on how we implement the signaling, check out our Consent Mediation documentation.

Configuring the SDK
Integrate with Usercentrics SDK starting from version 2.13.2.
Activate the Usercentrics Consent Mediation Feature:
let options = UsercentricsOptions(..., consentMediation: true)Refer to the detailed instructions for more information.
Add Firebase Library to your app:
Use the minimum version of 10.17.0. Please refer to its guide for detailed instructions on integration.
Add the Consent Mode keys to your app's info.plist file:
Assign
falsevalues to the keys to establish default permission where GDPR or another legal framework requires consent to be explicitly given.More information can be found in this Google documentation page.
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE</key> <false/> <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE</key> <false/> <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <false/> <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <false/>
Integrate with Usercentrics SDK starting from version 2.13.2.
Activate the Usercentrics Consent Mediation Feature:
val options = UsercentricsOptions(..., consentMediation = true)Refer to the detailed instructions for more information.
Add Firebase Library to your app:
Use the minimum version of 21.5.0 or 32.5.0 if you want to use the Firebase Android BoM. Please refer to its guide for detailed instructions on integration.
Add the consent mode keys to your app's AndroidManifest.xml file:
Assign
falsevalues to the keys to establish default permission where GDPR or another legal framework requires consent to be explicitly given.<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="false" /> <meta-data android:name="google_analytics_default_allow_ad_storage" android:value="false" /> <meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="false" /> <meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="false" />
Enable Consent Mediation on Usercentrics Prefab.

Please use the minimum version of 11.7.0.
Please refer to its guide.
Make sure to add default keys for each platform to establish default permission where GDPR or another legal framework requires consent to be explicitly given.
Android (AndroidManifest.xml):
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="false" />iOS (Info.plist):
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <false/>In the next step, you will apply consent mode to Firebase Analytics SDK.
Basic vs advanced consent mode
Google offers two implementation strategies: basic and advanced consent modes.
The key differences are:
Basic consent mode
Google SDKs are NOT loaded until end-user interacts with a consent banner.
Advanced consent mode
Google SDKs are loaded BEFORE end-user interacts with a consent banner.
Usercentrics uses Google’s advanced consent mode
The Usercentrics Apps SDK uses advanced consent mode. This approach never restricts any SDK from operating within any app or game.
When Google SDKs are loaded alongside Usercentrics, you're choosing the advanced implementation approach. Usercentrics will then send the consent signals once it has been initialized.
We signal consent using privacy APIs exposed by third-party SDKs, as described on our consent mediation documentation.
Following the guidance above, Google SDKs will automatically identify the default consent status, which is initially set to false in scenarios where GDPR or another legal framework requires consent to be explicitly given.
If you wish to implement the basic consent mode, make sure to only initialize Firebase SDK after the end-user interacted with the banner.
Integration with Adjust
Following the guidance on the Consent mediation page for integrating Adjust, Usercentrics will signal provided flags to fully enable Google consent mode.
When Adjust is present on the DPS list and is configured according to the TCF 2.2 Framework + GDPR, we will follow the previously described rules for processing consents and legitimate interests, regardless if user provided consent to Adjust DPS.
In case of a negative consent to Adjust, we keep signaling the decision of the user and the granular options detailed below.
Granular Flags
Consent Type | Values | Description |
|---|---|---|
eea | "1" (positive) or "0" (negative) | This parameter informs whether users installing the app are within the European Economic Area (apart from EU member states, this currently includes Switzerland, Norway, Iceland and Slovenia). |
ad_user_data | "1" (positive) or "0" (negative) | This parameter informs whether users consented with their advertiser ID being leveraged for attribution purposes. |
ad_personalization | "1" (positive) or "0" (negative) | This parameter informs whether users consented with being served personalized ads via Google Ads and/or Google Marketing Platform. To reduce effort, this parameter will also inform the npa parameter that is reserved for Google Marketing Platform. |
Signaling consent to Adjust
In this section, we provide a detailed overview of our methods for signaling consents to Adjust.
import Adjust
let consent = "1" || "0"
let thirdPartySharing = ADJThirdPartySharing.init(isEnabledNumberBool: nil)
thirdPartySharing.addGranularOption("google_dma", "eea", consent)
thirdPartySharing.addGranularOption("google_dma", "ad_user_data", consent)
thirdPartySharing.addGranularOption("google_dma", "ad_personalization", consent)
Adjust.trackThirdPartySharing(thirdPartySharing)import com.adjust.sdk.AdjustThirdPartySharing
val consent = "1" || "0"
val thirdPartySharing = AdjustThirdPartySharing(null)
thirdPartySharing.addGranularOption("google_dma", "eea", consent)
thirdPartySharing.addGranularOption("google_dma", "ad_user_data", consent)
thirdPartySharing.addGranularOption("google_dma", "ad_personalization", consent)
Adjust.trackThirdPartySharing(thirdPartySharing)FAQ
Question: How to verify the integration with Usercentrics SDK?
Answer: By enabling the debug mode, check out the console to see our logs, example:
[USERCENTRICS][DEBUG] [Mediation] Applied Granular Consent to Firebase - MediationGranularConsent(eea=true, analyticsStorage=false, adStorage=false, adUserData=false, adPersonalization=false)
[USERCENTRICS][DEBUG] [Mediation] Applied Granular Consent to Firebase (Adjust Signal) - MediationGranularConsent(eea=true, analyticsStorage=false, adStorage=false, adUserData=false, adPersonalization=false)Note: the "Adjust Signal" will only be printed in case Adjust is also properly configured. The Payload is the same for Firebase signal, but only the mentioned flags above will apply for Adjust.
Question: How to double check the integration with Firebase?
Answer: Check out their documentation on how to verify consent signals, iOS or Android.
Question: What happens in locations where the SDK is initialized, but end-user consent is not required?
Answer: When Usercentrics is properly integrated into your app or game, the banner will not appear in these locations. Consequently, the default consent status for all Services, Vendors, and Purposes will be positive. As a result, we will signal granted consent for all the flags mentioned above, for Firebase and Adjust SDKs.
What is Google additional consent?
Google’s Additional Consent is a technical specification designed to enable publishers to collect and signal additional consent for ad tech providers that are not part of the IAB Europe’s Transparency & Consent Framework (TCF) v2.2, but are listed on Google’s Ad Tech Providers (ATPs) list. This specification is crucial for publishers that want to work with ad tech providers not using the TCF. It is important to note that Google’s Additional Consent does not replace the standard IAB TCF v2.2 consent collection process, but supplements it, enabling an extra layer of consent collection for Google ATPs.
The Google Additional Consent V2 supports an Additional Consent (AC) String and to allow interoperability for CMPs that support TCF and Advertiser Consent Mode. For more information, please refer to this guide.
Implement Google additional consent V2
Google Additional Consent V2 is supported by the Apps SDK starting from version 2.11.0.
To successfully incorporate Google Additional Consent V2 into your mobile application, add the vendor called Google Ad Technology Providers to your CMP configuration:
In Usercentric’s Admin Interface, go to your configuration.
Under Service Settings, select the Google Vendors tab.
Use the toggle to enable the Google Ad Technology Providers (ATPs).
Select your providers in the list.

Your app is now using the Google Additional Consent Mode V2. To access the Additional Consent Mode Data generated by the SDK, use the getAdditionalConsentModeData endpoint.