TL;DR — Google Consent Mode v2 is Google's protocol that allows conversion measurement and GA4 audiences to continue working even when a user refuses analytical or advertising cookies. It has been mandatory since March 2024 for all advertisers using Google Ads or GA4 in Europe. There are two modes: Basic (no data without consent) and Advanced (modelled data without consent). Implementation requires a certified CMP and Google Tag Manager.
Since 6 March 2024, Google requires all sites using Google Ads or GA4 in Europe to implement Consent Mode v2. Without this configuration, conversions are no longer reported and Google Ads audiences become unusable. This guide explains how Consent Mode v2 works, the difference between Basic and Advanced, and how to implement it correctly with a CMP and GTM.
What is Google Consent Mode v2?
Google Consent Mode v2 is a technical framework that allows Google tags (GA4, Google Ads, Floodlight) to adapt to the user's consent choice. Instead of loading or not loading in a binary fashion, tags send consent signals indicating whether the user has accepted or lefused analytical and advertising cookies.
Consent Mode v2 introduces two new parameters compared to v1: ad_user_data (permission to send user data to Google for advertising) and ad_personalization (permission for advertising personalisation). The four mode parameters are: analytics_storage, ad_storage, ad_user_data and ad_personalization.
Basic vs Advanced Consent Mode: what is the difference?
The distinction between Basic and Advanced is fundamental for understanding what you are actually measuring.
Basic Consent Mode
In Basic mode, Google tags do not load at all if the user has not yet consented (or has refused). No data is sent to Google. This is the most privacy-strict approach, but it implies a total loss of signal for users who refuse. Non-consented conversions are not modelled.
Advanced Consent Mode
In Advanced mode, Google tags load even without consent, but in 'ping' mode: they send anonymous signals without cookies or personal identifiers. Google uses these signals for Conversion Modelling and audience modelling. The result is better overall data accuracy, even with high refusal rates. This is the recommended approach for sites with significant Google Ads budgets.
How to implement Google Consent Mode v2
Correct implementation of Consent Mode v2 requires three components: a Google-certified CMP, Google Tag Manager and consent signal configuration.
Step 1 — Choose a Google-certified CMP
Google publishes a list of partner CMPs that have natively integrated Consent Mode v2. FlowConsent is certified and automatically sends all four signals (analytics_storage, ad_storage, ad_user_data, ad_personalization) based on the user's choice. If your CMP is not certified, you must implement the signals manually via GTM.
Step 2 — Configure the default state
Before the user interacts with the banner, all parameters must be set to denied. This code block must load before all Google tags, ideally in the <head> before GTM: gtag('consent', 'default', { analytics_storage: 'denied', ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', wait_for_update: 500 });
Step 3 — Update signals after consent
When the user makes their choice, the CMP calls gtag('consent', 'update', {...}) with values corresponding to the accepted categories. If the user accepts analytics but refuses advertising: analytics_storage = 'granted', ad_storage = 'denied', ad_user_data = 'denied', ad_personalization = 'denied'.
Step 4 — Verify via GTM and Google Tag Assistant
In GTM, verify that GA4 and Google Ads tags fire correctly after consent and remain in ping mode (or do not load in Basic) before consent. Google Tag Assistant (tagassistant.google.com) displays the status of consent signals in real time.
Get GDPR compliant in 10 minutes
Free plan available · No credit card required
Common implementation mistakes
Mistake 1: default state not defined. Without a default state, Google tags default to 'granted' in some configurations. Always set all four parameters to 'denied' before GTM.
Mistake 2: ad_user_data and ad_personalization signals missing. These two parameters are specific to v2. Without them, Google treats you as still on v1 and blocks audiences.
Mistake 3: Advanced mode with a Basic-mode CMP. If the CMP blocks Google tag loading before consent, Advanced modelling signals cannot be sent. Verify that Google tags load in ping mode.
Mistake 4: Consent Mode active but non-compliant banner. Consent Mode v2 is not a substitute for GDPR compliance. The banner must still offer simple refusal, per-category granularity and proof of consent storage.
Consent Mode v2 implementation checklist
- Verify that the CMP is Google Consent Mode v2 certified.
- Set the default state (denied for all 4 parameters) before GTM in the <head>.
- Configure all 4 signals: analytics_storage, ad_storage, ad_user_data, ad_personalization.
- Verify that the CMP calls gtag('consent', 'update') after the user's choice.
- Test in Advanced mode: GA4 and Google Ads tags must load in ping mode before consent.
- Validate via Google Tag Assistant that signals are correctly received.
- Check in GA4 (Admin > Data stream settings > Consent Mode) that the mode is active.
- Check in Google Ads (Account settings > Consent) that modelling is enabled.
Google Consent Mode v2 has become essential for any European site using Google Ads or GA4. Correct implementation via a certified CMP and GTM takes about an hour. Without it, you are operating blind on your advertising conversions. Scan your site at /en/scan to verify that consent signals are correctly configured.