The Usercentrics CMP supports Google Consent Mode v2, which Google may require you to implement based on their EU user consent policy. Below you’ll find more information about it and how to implement it.
What is Google Consent Mode?
Consent Mode in essence is a mechanism that allows third party scripts to pass consent data to Google Tag Manager using the Global site tag (gtag) API.
This data can be used to conditionally load tags, or modify their behavior.
Consent Mode is not a Google service or product, it’s more like a consent API.
Consent Mode makes use of the dataLayer and only works with Google Tag Manager (or gtag).
Consent Mode is part of the larger Global site tag (gtag) API.
Two easy ways to implement GCM with the Usercentrics CMP
The Usercentrics CMP template tag registers default consent settings, so the consent mode script doesn’t need to be used with that implementation method for the Usercentrics CMP, as long as all relevant Google tags are handled in the Google Tag Manager. (No default consent needed on the page.)
If you don’t implement Usercentrics CMP via the template tag in Google Tag Manager, you’ll need to add a script to your page to enable it.
Let’s have a look at that script
<script type="text/javascript"> // create dataLayer window.dataLayer = window.dataLayer || []; //Create the gtag API, so you don’t have to write dataLayer.push() and can use gtag() instead. function gtag() { dataLayer.push(arguments); } //Use the gtag method to pass default consent settings to Google Tag Manager. gtag("consent", "default", { ad_user_data: "denied", ad_personalization: "denied", ad_storage: "denied", analytics_storage: "denied", wait_for_update: 2000 // milliseconds to wait for update }); // Enable ads data redaction by default [optional] gtag("set", "ads_data_redaction", true); </script> //The last part is the Google Tag Manager script. If you want to use Consent Mode as alternative to prior blocking the type of the script tag is "text/javascript". <script type="text/javascript"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window, document, 'script', 'dataLayer', 'GTM-XXXXX'); //replace GTM-XXXXXX with Google Tag Manager ID </script>
Default consent states for Google Consent Mode storage types in detail
Consent Type | Description |
ad_storage | Enables storage (such as cookies) related to advertising. |
ad_user_data | Sets consent for sending user data related to advertising to Google. |
ad_personalization | Sets consent for personalized advertising. |
analytics_storage | Enables storage (such as cookies) related to analytics e.g. visit duration. |
In addition to the Consent Mode parameters relevant for Google services, there are the following privacy parameters:
Storage Type | Description |
functionality_storage | Enables storage that supports the functionality of the website or app e.g. language settings. |
personalization_storage | Enables storage related to personalization e.g. video recommendations |
security_storage | Enables storage related to security such as authentication functionality, fraud prevention, and other user protection. |
The Usercentrics CMP does not update the above privacy parameters (functionality_storage, personalization_storage and security_storage) out-of-the-box as they are not part of the built-in consent checks of Google services. To make this connection (if applicable), you can use an event listener similar to the one from Step 2 of our Google Consent Mode tech doc after making sure to include them with the default consent state settings. While technically feasible, please note that this is outside of the support scope for the Usercentrics support & success teams.
Updates of consent states for Google Consent Mode storage types
After the default consent states are set, updates to those will occur when the consent_status of the Google DPS added to the implemented CMP Configuration / SettingID changes.
The updates are automatic, provided:
You are using Predefined DPS for the relevant Google services. A list of the relevant Google DPS for this out-of-the-box way to handle Google Consent Mode is available in our documentation.
You have enabled Google Consent Mode in the Admin Interface of the CMP Configuration, with the relevant toggle under Configuration → CMP Settings tab → Google Consent Mode
If you’re using Custom DPS for relevant Google services:
Follow the optional Step 2 of the Google Consent Mode technical documentation.
Alternative (requires deeper technical GTM expertise): For Google Consent Mode setups purely handled within the Google Tag Manager (GTM), it’s also possible to build your own or use third party Google Consent Mode GTM templates. The idea with that approach is to use the consent_status event’s information in the dataLayer to “translate” this into Google Consent Mode storage type consent states in the GTM.
Usercentrics does not recommend or actively support this alternative, but it may be feasible for some customers to explore such an option.
Deactivate Google Consent Mode in the Admin Interface of the CMP Configuration. This helps prevent mixed signaling for the consent states.