Privacy & consent
Google Consent Mode v2 Explained (and How to Set It Up in GTM)
Consent Mode v2 changes how Google's tags behave based on whether a visitor has agreed to analytics and ads cookies, and since 2024 it's effectively required to use Google's advertising features in the EEA and UK. The good news: the concept is simple once you stop thinking of consent as just "block the tag." Here's what it is and how to set it up in Google Tag Manager.
Not legal advice
What is Consent Mode v2?
Consent Mode v2 (definition)
Consent Mode is Google's framework for adjusting how Google tags behave based on a user's consent choices, rather than simply blocking them. Tags read consent signals and change what they do, sending full data when granted, and limited cookieless "pings" when denied. The "v2" added two advertising signals.
The key mental shift: Consent Mode doesn't just stop tags, it changes how they behave. Under denial, Google tags can still send anonymous, cookieless signals, and Google uses conversion modeling to estimate the activity it can no longer observe directly. That's how you keep some measurement while honoring a "no."
The four consent signals
Consent Mode v2 is built on four signals your tags read:
analytics_storage, analytics cookies (GA4 measurement).ad_storage, advertising cookies.ad_user_data, whether user data may be sent to Google for ads (new in v2).ad_personalization, whether data may be used for personalized ads / remarketing (new in v2).
Each is either granted or denied. The two ad_* data signals are what "v2" added and what Google now requires for EEA/UK advertising.
Defaults and updates: the whole model
Consent Mode works in two beats. You set defaults before anything loads (usually everything denied for regulated regions), then your CMP pushes an update once the user chooses.
Order is everything
How to set up Consent Mode v2 in GTM
The cleanest path uses a certified CMP that integrates with GTM. The shape is always the same:
- Set denied defaults first. Most certified CMP templates inject the default command on an Initialization - All Pages trigger, which is guaranteed to run before other tags. If you do it manually, it looks like the code below.
- Let the CMP push the update. When the user accepts or rejects, the CMP calls
gtag('consent', 'update', {...})with the new states. - Mark tags' consent settings. Google tags (GA4, Google Ads) are consent-aware automatically. For non-Google tags, set Additional consent checks in the tag's Consent Settings so they wait for the right signal.
- Verify in Preview. Use the Consent tab in Tag Assistant to see each tag's consent state before and after the user chooses.
// Conceptual default, your CMP template normally does this for you,
// on Initialization (All Pages) so it runs before everything else.
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
wait_for_update: 500
});
// Later, when the user accepts, pushed by the CMP:
gtag('consent', 'update', {
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted',
analytics_storage: 'granted'
});Practice this on a real container
Consent timing is hard to picture until you watch tags hold and then fire. Practice gating tags on consent (defaults, the update, and the Consent tab) on your own container in Tag Assistant.
Practice Consent Mode →Basic vs. advanced Consent Mode
Basic
- Google tags are fully blocked until consent is granted
- No cookieless pings before the choice
- Less data, simplest to reason about
Advanced
- Tags load and send cookieless pings under denial
- Enables conversion modeling to recover lost data
- More data, but more to configure and verify
Advanced mode generally recovers more measurement because Google has cookieless signals to model from. Basic mode collects nothing until consent, simpler, but you lose the denied-traffic estimates.
Common Consent Mode mistakes
- No default before tags fire. If GA4 fires before the denied default, cookies are already set. The default must be first.
- Forgetting the two new
ad_*signals. "v1" setups that only setad_storageandanalytics_storagearen't v2-compliant. - The CMP never pushes the update. Then tags stay held forever and your data flatlines, verify the update actually fires.
- Sending PII regardless of consent. Consent Mode governs Google's storage signals; it doesn't make it okay to push raw emails or phone numbers into analytics.
Now go practice it
Reading sticks when you do it. These hands-on lessons load your own GTM container and let you debug in Tag Assistant.
Frequently asked questions
What is Google Consent Mode v2?
Consent Mode v2 is Google's framework for adjusting how Google tags behave based on a user's consent choices, rather than just blocking them. Tags read consent signals and send full data when granted or limited cookieless pings when denied. Version 2 added two advertising signals, ad_user_data and ad_personalization, and is effectively required to use Google's advertising features in the EEA and UK.
What are the four Consent Mode signals?
analytics_storage (analytics cookies), ad_storage (advertising cookies), ad_user_data (whether user data may be sent to Google for ads), and ad_personalization (whether data may be used for personalized ads). Each is set to 'granted' or 'denied'. The two ad_* signals are new in v2.
How do I set up Consent Mode v2 in Google Tag Manager?
Set denied defaults on an Initialization (All Pages) trigger so they run before any tags, usually via a certified CMP template. When the user chooses, the CMP pushes a consent 'update'. Google tags are consent-aware automatically; for non-Google tags, configure Additional consent checks. Verify each tag's state in the Consent tab of Tag Assistant.
What is the difference between basic and advanced Consent Mode?
In basic mode, Google tags are fully blocked until consent is granted, so nothing is sent beforehand. In advanced mode, tags load and send anonymous cookieless pings even under denial, which lets Google use conversion modeling to estimate unobserved activity. Advanced recovers more data but takes more configuration.
Is Consent Mode v2 mandatory?
To use Google's advertising and personalization features for users in the EEA and UK, Google requires Consent Mode v2 signals (including ad_user_data and ad_personalization). Whether and how you must collect consent depends on your jurisdiction, confirm specifics with your privacy or legal team.
Related posts
Privacy & consent
Consent Mode v2: Basic vs Advanced (and Regional Defaults)
Basic and advanced Consent Mode behave very differently under a reject, and the choice affects how much data you recover. The comparison, plus the regional defaults most setups get wrong.
Read →Privacy & consent
Is Google Tag Manager Safe? The Custom HTML Security Question
Can someone do damage through GTM? Honestly, yes, if you're careless. GTM can inject JavaScript on your site. The real risks, and how to run it safely.
Read →Fundamentals
What Is the dataLayer in Google Tag Manager? A Plain-English Guide
The dataLayer is the bridge between your website and your tags. Here's what it actually is, why it exists, and how to push and read values without the jargon.
Read →About the author

Analytics & Tag Management Consultant
Nathan Gage got his start in marketing through Google Tag Manager. Seeing how tracking customer behavior could turn raw clicks into insight you can actually act on is what pulled him into the field. Since then he has worked both full time and as a consultant with 15 marketing agencies, supporting brands that spend anywhere from a thousand dollars a month to over a million. Along the way he built a multi-touch attribution app, and he created The Happy Tagger so anyone can practice GTM, GA4 and server-side tracking on a real container instead of a production site.