Google Consent Mode V2 is what Google started requiring from EEA and UK advertisers in March 2024, and 18 months later, a significant number of businesses still don't have it implemented correctly. The cost is rarely obvious on day one. Your Google Ads dashboard still reports numbers. GA4 still logs events. What quietly breaks is conversion attribution, remarketing list refresh, and audience-based bidding, all the signals Google Ads needs to actually work.
If you're using Google Ads or GA4 and you serve traffic from the European Economic Area or UK, this guide covers what Consent Mode V2 actually is, the difference between Basic and Advanced modes (the choice most teams get wrong), and the exact GTM implementation steps. Based on Consent Mode V2 deployments I've done for European e-commerce, SaaS, and lead-gen businesses since the March 2024 enforcement date.
If you haven't set up the cookie banner side yet, start with my Cookiebot on WordPress install guide first, the CMP and Consent Mode V2 work together and skipping one breaks the other.
Key Takeaways
Consent Mode V2 is mandatory for any Google Ads, GA4, or remarketing traffic from EEA + UK since March 6, 2024. Without it, personalized ads data in Google Ads starts drying up.
The four signals are ad_storage, analytics_storage, ad_user_data, and ad_personalization. The last two were new in V2 and specifically required for Google Ads compliance under DMA and GDPR.
Basic Consent Mode blocks Google tags entirely until consent. Advanced Consent Mode fires cookieless pings even without consent, recovering ~65% of attribution data that would otherwise be lost.
Most teams default to Basic and lose 30-40% of conversion tracking. Advanced is the right default unless your legal team explicitly blocks it.
Implementation via GTM takes 2-3 hours once your CMP is configured. Most errors come from tag firing order (Google tags loading before consent state is set) or from Basic/Advanced misconfiguration.
What Google Consent Mode V2 Actually Is
Consent Mode is a Google-specific layer that sits between your cookie banner and your Google tags (Analytics, Ads, Tag Manager). When a user accepts or denies consent, your CMP writes consent state to window.dataLayer, and Google tags read that state to decide what to do.
V2 added two signals on top of the original V1 signals, introduced alongside the Digital Markets Act (DMA) enforcement in March 2024:
| Signal | Since | What it controls |
|---|---|---|
| ad_storage | V1 | Whether Google Ads can set cookies for ad targeting |
| analytics_storage | V1 | Whether GA4 can set cookies for measurement |
| ad_user_data | V2 | Whether Google Ads can receive user data for ad purposes |
| ad_personalization | V2 | Whether data can be used for personalized ads/remarketing |
The two V2 signals are what made Consent Mode V2 a hard requirement and not just a recommendation. Without them, Google Ads has no legal basis under DMA to build remarketing audiences or run personalized campaigns for EEA traffic.
Why Google Made V2 Mandatory
Three forces converged in early 2024:
1. The Digital Markets Act (DMA). The EU's DMA requires gatekeeper platforms (including Google) to obtain explicit consent before using personal data for advertising. The two new V2 signals are Google's technical implementation of DMA compliance.
2. GDPR enforcement tightening. Data Protection Authorities across EU countries started fining Google Ads advertisers (not just Google itself) for running personalized campaigns without provable consent. V2 gives advertisers an auditable signal chain.
3. Google's own data models breaking. Without consent signals, Google's ML-based bidding and audience modeling was running on increasingly unreliable data. V2 is also Google's self-interest move, it wants clean signals back.
If you don't implement V2 for EEA/UK traffic: Google Ads will deliver campaigns, but personalized ad features (Customer Match, Similar Audiences, Smart Bidding with audience signals) degrade or stop working entirely. GA4 continues to log events but audience export to Ads fails for non-consented users.
Basic vs Advanced Consent Mode, The Decision That Most Teams Get Wrong
This is the single biggest choice in Consent Mode V2, and most teams pick Basic without realizing it.
Basic Consent Mode
- Google tags don't load or fire until consent is granted.
- If the user denies consent, no data reaches Google, not even a cookieless ping.
- Simpler to implement. Legal teams love it because it's the "safest" option.
- Data loss: if 40% of users deny consent, you lose 40% of attribution data entirely.
Advanced Consent Mode
- Google tags load immediately but respect the consent state.
- If consent is denied, tags fire "cookieless pings", anonymized signals Google uses for statistical modeling.
- Google's conversion modeling fills gaps using those pings, recovering roughly 65% of the conversions that would be lost in Basic mode (Google's own published figures).
- Slightly more complex to set up, because tags have to load first.
Most teams default to Basic because their agency or CMP documentation says "block all scripts until consent". That's the right instinct for third-party scripts but the wrong choice for Google tags under Consent Mode V2. Google tags are specifically designed to respect consent after loading.
When Kasia, marketing director at a Polish D2C brand, audited her Consent Mode setup in July 2025, she found her agency had implemented Basic mode six months earlier. Her Google Ads dashboard showed 1,400 monthly conversions, but her CRM showed 2,100 actual orders. The 33% gap was mostly non-consented traffic that Basic mode made invisible. We switched to Advanced mode in one afternoon. Within two weeks, her attributed conversions climbed by 28% and Smart Bidding started optimizing on a much richer data set. No legal changes, no CMP changes, just the Consent Mode configuration switch.
Want to check whether your Consent Mode V2 is Basic or Advanced (and whether that's the right choice for your business)? Run the free GTM audit, it flags Consent Mode configuration problems alongside tag management issues.
How to Implement Consent Mode V2 with Google Tag Manager
This is the exact sequence I use on every Consent Mode V2 deployment. Takes 2-3 hours if your CMP already sets consent state correctly.
Step 1: Verify your CMP emits V2 signals
Your consent banner must write all four signals to window.dataLayer in the correct format. In Chrome DevTools, after the page loads, type:
dataLayer.filter(e => e[0] === 'consent')
You should see something like:
['consent', 'default', {ad_storage: 'denied', analytics_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', wait_for_update: 500}]
If ad_user_data or ad_personalization are missing, your CMP is still on V1 signals. Update your CMP settings or switch to one that supports V2 (Cookiebot, Cookie Banner Pro, Usercentrics, OneTrust all support V2).
Step 2: Set up Consent Initialization trigger in GTM
In Google Tag Manager, go to Triggers. There's a built-in trigger type called "Consent Initialization, All Pages". This trigger fires before all other triggers on every page. All your Google tags should have this as their trigger type, or use the built-in consent settings per tag.
Step 3: Enable consent checking on all Google tags
For every Google Analytics 4 event tag, Google Ads conversion tag, and Google Ads remarketing tag:
- Open the tag in GTM.
- Scroll to Advanced Settings > Consent Settings.
- Select "Require additional consent for tag to fire".
- Check the relevant boxes:
- GA4 event tags:
analytics_storage - Google Ads conversion tags:
ad_storage+ad_user_data - Google Ads remarketing tags:
ad_storage+ad_user_data+ad_personalization
Step 4: Configure Consent Mode mode (Basic vs Advanced)
In GTM's Admin > Container Settings, find "Additional settings for Google Consent Mode". Enable:
- Advanced mode: Keep tags unblocked, respect signals. This is what you want 95% of the time.
- Basic mode: Block tags entirely until signals are granted. Use only if legal explicitly requires it.
Step 5: Set up the default consent state
Before any Google tag fires, you need a consent default push to dataLayer. Most CMPs handle this automatically, but verify. The default state for EEA/UK should be "denied" for all four signals until the user interacts with the banner.
Step 6: Add regions for proper signal routing
In the same consent default push, specify region:
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
region: ['EEA', 'GB'],
wait_for_update: 500
});
For non-EEA/non-UK traffic, you can set a separate default with all signals granted, reducing friction for users outside the regulation.
Step 7: Publish and test
Push the GTM container to Preview mode. Open your site. Watch the consent sequence:
- Page loads, Google tags load but hold (Advanced) or don't load (Basic).
- Consent banner shows.
- User clicks Accept. CMP pushes
consent updatetodataLayerwith all signals = granted. - Google tags see the update, fire normally.
If this sequence breaks at step 3, your CMP isn't pushing the update correctly. If it breaks at step 4, your GTM container isn't reading the signals.
Testing Your Consent Mode V2 Implementation
Three tools, in order of how deep you need to go:
Google Tag Assistant (Chrome extension)
Free. Open it on your site, click Enable, reload the page. Tag Assistant shows every Google tag that fires and the consent state at fire time. The "Consent" column tells you which signals were granted.
DevTools Network tab
Filter by google-analytics.com and googletagmanager.com. Look at the request URLs. For Consent Mode V2 pings, you'll see gcs parameter values:
gcs=G100= all consent deniedgcs=G110= ad_storage denied, analytics_storage grantedgcs=G111= all consent granted
If you see gcs=G100 pings firing (cookieless pings from denied users), Advanced Mode is working. If you see no pings at all from denied users, you're in Basic mode.
GA4 DebugView
In GA4 Admin > DebugView, load your site with ?debug_mode=true in the URL. Watch events flow in real time and check the user_properties for consent state. This is the end-to-end validation.
Common Mistakes (and How to Fix Them)
Mistake 1: Google tags fire before Consent Initialization trigger. Your GA4 or Ads tag has "All Pages" as trigger instead of "Consent Initialization". Fix: change trigger type.
Mistake 2: CMP loads too slowly. If your Cookiebot or Cookie Banner Pro script takes 300ms+ to initialize, Google tags fire before the consent default push. Fix: load the CMP script as the first script in , before GTM.
Mistake 3: Wrong region parameter. Some implementations set region: 'EU' instead of region: ['EEA', 'GB']. The signals route wrong. Fix: use the correct ISO country list.
Mistake 4: Missing wait_for_update. Without it, Google tags fire with default (denied) signals before the CMP writes the actual signals. Fix: add wait_for_update: 500 (milliseconds) to the default consent push.
When Marek, a performance marketing lead at a European SaaS, set up Consent Mode V2 for his Google Ads campaigns in May 2025, his implementation looked correct in GTM. But his Smart Bidding ROAS dropped by 40% over two weeks. The culprit: his CMP wasn't pushing ad_user_data signal even when users accepted. Google Ads was receiving partial consent data, which the algorithm interpreted as a weaker signal than no data at all. We fixed the CMP config (a dropdown in the admin panel he'd missed), Smart Bidding recovered in 5 days.
Thinking about whether your Consent Mode V2 setup is actually correct? See my GTM services for Consent Mode audits and implementation help.
What Happens If You Don't Implement Consent Mode V2
You won't get a fine from Google for not implementing V2. What happens is slower and harder to notice:
- Google Ads personalized features degrade. Customer Match uploads start failing for EEA users. Similar Audiences stops refreshing. Smart Bidding optimizes on weaker signals.
- Remarketing list shrinkage. Your remarketing audiences based on website visitors slowly lose non-consented users. Over 6 months, a 50,000-user remarketing list can drop to 20,000.
- Conversion modeling gap. GA4 still counts events but can't feed conversion data to Ads for users who denied consent. Attribution becomes partial.
- DPA risk. Your own local Data Protection Authority can audit and fine you (the advertiser, not Google) for running personalized campaigns on non-consented traffic. Real fines started appearing in France and Germany in late 2024.
If you're running over 5,000 EUR/month in Google Ads budget to EEA/UK, Consent Mode V2 pays for itself in 4-6 weeks through recovered attribution and correctly-functioning Smart Bidding.
Frequently Asked Questions
Is Google Consent Mode V2 mandatory?
Yes, for any advertiser using Google Ads or GA4 with personalized features for traffic from the European Economic Area (EEA) or United Kingdom, since March 6, 2024. Non-EEA/UK traffic isn't required but implementing V2 globally is recommended for consistency.
What's the difference between V1 and V2 Consent Mode?
V1 had two signals (ad_storage, analytics_storage). V2 added two more (ad_user_data, ad_personalization) to satisfy Digital Markets Act requirements for personalized advertising consent. V1 alone is no longer sufficient for EEA/UK traffic.
Do I need Consent Mode V2 if I don't run Google Ads?
Partially. If you only use GA4 without Google Ads, ad_user_data and ad_personalization matter less, but analytics_storage is still required. You can implement a minimal V2 setup with only the analytics signal correctly set.
What's the difference between Basic and Advanced Consent Mode?
Basic blocks Google tags entirely until consent is granted. Advanced loads tags immediately but respects consent state, sending cookieless pings for denied users. Advanced recovers ~65% of attribution data that Basic loses. Pick Advanced unless legal explicitly blocks it.
Which CMPs support Consent Mode V2 correctly?
Cookiebot, Cookie Banner Pro, Usercentrics, OneTrust, Iubenda, and CookieScript all support V2. Verify by checking that your CMP writes all four signals to window.dataLayer. Older CMP versions may only emit V1 signals, update to current.
How long does Consent Mode V2 implementation take?
Two to three hours if your CMP already supports V2 signals and you're using Google Tag Manager. Add one to two hours for testing and edge case validation. Full implementation with a new CMP setup is half a day to a day.
Conclusion
Consent Mode V2 isn't optional for EEA and UK traffic, and Basic mode is almost certainly leaving money on the table for any serious Google Ads advertiser. The Advanced mode + correct signal routing combination recovers attribution data, keeps Smart Bidding healthy, and satisfies the Digital Markets Act requirement in one setup.
Start with the six GTM steps above. Test with Tag Assistant and Network tab. If your Google Ads dashboard and CRM show a gap bigger than 15%, Consent Mode V2 is probably why. Fix it, and watch the gap close within three weeks.
Want a specialist to verify your Consent Mode V2 setup and fix what's broken? Get in touch for a scoped assessment. I'll review your CMP, your GTM container, and the actual signal flow, and give you a clear list of what to change. No generic reports, no upsell. Just the fixes that move the numbers.
Is your Consent Mode V2 leaking data?
I audit Consent Mode setups and fix the misconfigurations that drain Google Ads attribution. Honest assessment, no upsell.
See my servicesNeed help? Get in touch
Have a question about your analytics setup? Fill out the form, I usually reply within 24 hours.