Google Consent Mode v2 (GCM v2) lets Google tags adjust their behaviour based on the consent status of your visitors. When integrated with Kukie.io, your Google Analytics, Google Ads, and other Google tags automatically respect consent choices without requiring any additional code on your part.
WordPress users: Google Consent Mode v2 can be enabled directly from the WordPress plugin settings page - no manual code changes needed.
What Is Google Consent Mode?
Google Consent Mode is an API that lets you communicate your visitors' consent status to Google services. Google tags read the consent state and adjust what they do: while consent is denied, Google tags that have loaded send measurements without cookies, which Google can use for conversion modelling. Google calls loading tags before a choice advanced consent mode, and loading them only after consent basic consent mode. See Google Consent Mode v2: basic vs advanced.
Version 2 of Consent Mode introduces two additional parameters (ad_user_data and ad_personalization). Google requires these parameters under its own platform policies for Google Ads audience building, remarketing, and conversion modelling features for EEA traffic, effective March 2024.
The 7 Consent Parameters
GCM v2 uses seven consent parameters. Kukie.io manages all of them automatically:
analytics_storage- controls whether Google Analytics can use cookies and storage.ad_storage- controls whether Google Ads can store conversion cookies.ad_user_data- controls whether user data can be sent to Google for advertising.ad_personalization- controls whether personalised ads can be shown.functionality_storage- controls storage for enhanced features (e.g. language preferences).personalization_storage- controls storage for personalisation features (e.g. video recommendations).security_storage- always set togranted(required for fraud detection and authentication).
Category-to-Parameter Mapping
Kukie.io maps your cookie categories to GCM parameters as follows:
| Kukie Category | GCM Parameters |
|---|---|
| Analytics | analytics_storage |
| Marketing | ad_storage, ad_user_data, ad_personalization |
| Functional | functionality_storage, personalization_storage |
| (Always) | security_storage → always granted |
When a visitor accepts the Analytics category, analytics_storage is updated to granted. When they accept Marketing, the three advertising parameters are granted. And so on.
Default Denied → Update on Consent
On every page load, the banner script fires gtag('consent', 'default', {...}) with all parameters set to denied (except security_storage) and a wait_for_update: 500 directive. This tells Google tags to wait up to 500 milliseconds for a consent update before proceeding in restricted mode. It applies to every visitor, including one Google cannot place in a region.
If some of your region rules use the Opt-out, Notice Only or Hidden consent model, the banner then sends a second default that names those regions: gtag('consent', 'default', {..., region: [...]}), with the state Accept all would give. Google applies the most specific default for a visitor's region, so visitors there start as granted and everyone else stays denied. A visitor who already made a choice on this device, or whose browser sends a privacy signal your site honours, does not get this default. Google explains region defaults under "Region-specific behavior" in Set up consent mode on websites.
For returning visitors who have already chosen, the banner fires gtag('consent', 'update', {...}) with their saved choice as soon as it knows their region, before Google Tag Manager is loaded. This ensures that the very first GTM event contains the correct consent state.
If you install the banner with the Kukie CMP template in Google Tag Manager, the template sets the consent defaults from its own table on Consent Initialization, and the banner script sends no default of its own. See How to install Kukie.io with Google Tag Manager.
Tip: The
wait_for_update: 500parameter is critical. It gives the consent update time to fire before Google tags start their own initialisation. Without it, tags may initialise in denied mode even if the visitor has already consented.
Enabling Google Consent Mode
A new site starts with Google Consent Mode on: the Google Consent Mode v2 switch on the Add site form is on by default, and it also gives the banner the text Google recommends. If you turned it off, or your site is older:
- Open the site's Banner Editor and go to the Integrations tab.
- In the Google Consent Mode v2 card, turn on Enable GCM v2.
- Select Save configuration.
The card then recommends Google's banner text, with a link to Google's privacy page and an Accept all button. See Google's banner requirements for Consent Mode.
If you also use Google Tag Manager, enable the GTM integration on the same tab and enter your container ID. See Google Tag Manager Integration for details.
Behaviour Per Consent Model
What Google tags are told before a choice depends on the consent model of the visitor's region rule:
- Opt-in - consent stays
denieduntil the visitor makes a choice. Accept all, or saved preferences, send an update that grants the accepted categories. Reject all keeps them denied. - Opt-out and Notice Only - your rules allow data by default here, so the region default described above tells Google tags
grantedfrom page load. While the banner is on screen, it sends no consent update until the visitor acts: opting out or Reject all sends an update that denies the refused categories. A Notice Only banner that closes by itself then sends the granted update. - Hidden - no banner is shown, and the banner script sends a
grantedupdate at page load. - Global Privacy Control or Do Not Track - when your site honours the visitor's signal, and the visitor has no choice saved, the banner script sends a
deniedupdate at page load, whatever the consent model. A saved choice is applied instead, unless Global Privacy Control replaces it (see Consent Models Explained).
Kukie.io and Google each work out the visitor's region. If Kukie.io cannot work it out, or applies a stricter rule than the region default Google may be using for the visitor's country or state, the banner script sends one update that denies everything, so Google tags do not run as granted under an Opt-in banner. Kukie.io cannot see a disagreement about the country itself, for example behind a VPN, where the two lookups place the visitor in different countries.
Testing with Google Tag Assistant
Use Google Tag Assistant (tagassistant.google.com) to verify that consent signals are firing correctly:
- Open Tag Assistant and connect your website.
- Load a page and check that a
consentevent withdefaultvalues appears before any GA4 or Ads events. In a region whose rule is Opt-out or Notice Only, the defaults readgrantedand no update follows until you choose. - Accept cookies on the banner and verify that a second
consentevent appears withupdatevalues set togranted. - Check that subsequent GA4 events fire with full measurement capabilities.
To see the same signals in your browser console, with a report on whether the default came before your Google tags, use Consent Mode debug mode. If a Google tag on your site is served through your own domain or CDN, read Google tag gateway too.
Help with Consent Mode
If Google tags are not getting Consent Mode signals, or you run into another Consent Mode setup, timing or measurement problem, email Kukie.io's Google client support at google-support@kukie.io first, before you contact Google. We answer within 1 business day.
To copy Google's Consent Mode support team, add cmp-support-helper@google.com to your email, or choose the Google Consent Mode topic in the contact form and select the box.
Official Google Documentation
For Google's authoritative reference on Consent Mode v2, see:
- Consent Mode (Google Tag Platform documentation)
- Consent mode overview
- Consent Mode for Google Ads
- Consent Mode for Google Analytics 4
- Google EU User Consent Policy
- Google Privacy & Terms
