If you use Google Analytics, Google Ads, or any Google tag on a website with EU or UK visitors, Consent Mode v2 is mandatory. Missing it means losing conversion tracking, remarketing audiences, and personalised ad capability — permanently, for affected users.
Updated June 2026
15 min read
Includes June 2026 deadline update
Key deadlines
Mar 2024
v2 mandatory — DMA compliance deadline. All EEA/UK accounts must implement all four consent parameters.
Jul 21 2025
Enforcement began — Non-compliant accounts lost personalised ads, remarketing, and conversion tracking for EEA/UK traffic.
Jun 15 2026
Google Signals retired — ad_storage becomes the sole governing parameter for advertising data in linked GA4 accounts.
67%
of implementations have issues
90%
conversion loss reported in one misconfigured account
Overview
What is Google Consent Mode v2?
Google Consent Mode is an API that acts as a bridge between your website's cookie consent banner and your Google tags (GA4, Google Ads, Floodlight). When a visitor accepts or declines cookies, your consent management platform communicates that decision to Google via four consent signal parameters — and Google's tags adjust their behaviour accordingly.
Version 2 was released in November 2023 and added two new parameters — ad_user_data and ad_personalization — required under the EU's Digital Markets Act. These two parameters, combined with the existing analytics_storage and ad_storage, must all be present for a v2-compliant implementation.
💡
Consent Mode is a Google requirement — not a GDPR product
The direct legal driver for Consent Mode v2 is the EU's Digital Markets Act (DMA), not GDPR — though GDPR still independently requires consent for tracking. Google was designated as a DMA gatekeeper in late 2023, triggering the March 2024 deadline. Think of GDPR as requiring you to obtain consent, and Consent Mode v2 as Google's mechanism for receiving proof of that consent.
The signals
The four consent parameters — what each one controls
All four parameters must be present in your implementation. A banner that only sets analytics_storage and ad_storage is a v1 implementation — it will pass v1 checks but fail v2 compliance, silently.
analytics_storage
Analytics measurement
Controls whether Google Analytics cookies can be set. When denied, GA4 cannot identify or track individual user sessions — measurement relies on modelling instead.
ad_storage
Advertising cookies
Controls whether Google Ads cookies can be stored. Required for conversion tracking, remarketing audience building, and Google Ads measurement. From June 15, 2026, this is the sole governing parameter for advertising data in linked GA4 accounts.
ad_user_data NEW in v2
User data for ads
Controls whether user data can be sent to Google for ad measurement — including enhanced conversions and tag-based conversion tracking. Required for enhanced conversions to function. A v1 setup missing this parameter breaks enhanced conversions silently.
ad_personalization NEW in v2
Personalised advertising
Controls whether user data can be used for personalised ads and remarketing. When denied, Google can still show ads — but not personalised ones. This parameter is what allows compliant remarketing to continue for consenting users.
⚠️
Having a consent banner is not enough
The banner must actually communicate consent states to Google's tags via all four parameters — and the defaults must fire before any Google tag loads on the page. In a documented April 2026 case, a business lost 90% of measured conversions overnight because their banner collected user preferences but did not transmit signals to Google's tag infrastructure. After fixing the implementation, only 40% of the attribution data was recoverable through modelling.
Implementation choice
Basic mode vs Advanced mode — which should you use?
This is the most consequential decision in your Consent Mode setup — and the one most commonly misunderstood. Both modes are GDPR-compliant. The difference is how much data you recover when users decline, and how accurately you can measure conversions.
Basic mode
Tags blocked until consent
○ All Google tags are blocked until the visitor interacts with the banner
○ No data sent to Google before consent is given — not even anonymously
○ If user declines: zero data from that session, no modelling possible
○ Simpler to implement — easier to verify is working
✕ Forfeits all modelled conversion data for users who decline
Best for: Compliance-first sites not running Google Ads campaigns in the EEA
Advanced mode
Cookieless pings while denied
✓ Tags load immediately in a restricted state with defaults set to denied
✓ Sends anonymous cookieless pings while consent is denied — no personal data
✓ Tags switch to full tracking mode once consent is granted
○ More complex — timing of defaults is critical to get right
Best for: Any business running Google Ads in EEA/UK at meaningful volume
💡
Advanced mode is still privacy-respecting
The cookieless pings Advanced mode sends while consent is denied are fully anonymised — no cookies set, no personal data transmitted, no individual identification. For businesses running paid Google Ads in Europe, defaulting to Basic mode means voluntarily forfeiting every modelled conversion that Advanced mode could have recovered. That is a revenue decision dressed as a privacy one.
Setup
How to implement Google Consent Mode v2 correctly
The order of operations matters critically here. The most common implementation error — responsible for the majority of the 67% of broken setups — is firing the consent default after Google tags have already loaded. This creates a race condition that makes the consent signal meaningless.
1
Install a Google-certified CMP
The most reliable path is using a Google-certified Consent Management Platform. A certified CMP handles all four parameter signals automatically, fires defaults before any tag loads, and sends the consent update after visitor interaction — in the correct order. ConsentPixel — Privacy · Verified is built to handle Consent Mode v2 configuration automatically on setup.
2
Fire consent defaults before any Google tag
The consent default command must execute before any Google tag initialises. In Google Tag Manager, this means the consent initialisation must happen in the Consent Initialization trigger — not a standard Page View trigger. If you are implementing without GTM, the dataLayer push must be the first script in your page head.
3
Set defaults to denied for all four parameters
Your consent default must set all four parameters to denied for EEA/UK regions before any visitor interaction. The pattern below is the correct two-phase approach — default first, update after interaction:
// Phase 1: Default — fires BEFORE any Google tag loadswindow.dataLayer = window.dataLayer || [];
functiongtag() { dataLayer.push(arguments); }
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied',
'ad_user_data': 'denied', // v2 — required'ad_personalization': 'denied', // v2 — required'wait_for_update': 2000// wait 2s for CMP to load
});
// Phase 2: Update — fires AFTER visitor interacts with banner// Sent by your CMP when visitor accepts/declinesgtag('consent', 'update', {
'analytics_storage': 'granted', // or 'denied''ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted'
});
4
Verify all four parameters are transmitting correctly
Use Google Tag Assistant to check your implementation. More importantly, open Chrome DevTools → Network tab, decline consent on your banner, and inspect the gcs and gcd parameters on outgoing Google requests — they should reflect denial. A v1-only setup looks fine on the surface and fails v2 compliance silently.
Troubleshooting
The 7 most common implementation errors
67% of Consent Mode setups have issues. Most are invisible until enforcement kicks in or data suddenly disappears. These are the failure patterns to check first.
Error
Severity
What happens
Fix
Consent default fires after Google tags load
CRITICAL
Race condition — consent signal is meaningless. Tags already fired before the denied state was communicated.
Move consent default to fire before GTM container or use Consent Initialization trigger
Add ad_user_data and ad_personalization to both default and update commands
Banner collects preference but doesn't send update
CRITICAL
User gives consent; Google never hears it. Tags stay in denied state forever. Caused the 90% conversion loss documented in April 2026.
Verify CMP sends gtag('consent','update',...) after banner interaction
Same default applied globally (no region filtering)
WARNING
US and other non-EEA traffic unnecessarily restricted, reducing analytics data for markets where consent is not legally required.
Use region: ['EEA', 'GB'] parameter to scope defaults to EEA/UK only
No wait_for_update timeout
WARNING
On slow connections or with heavy pages, the CMP may not load before Google tags fire — effectively bypassing consent.
Add wait_for_update: 2000 to the consent default command
Consent not persisted across sessions
WARNING
Returning visitors see the consent banner again on every visit. Signals reset on each page load.
Ensure CMP stores consent decision in a first-party cookie and reads it on page load to pre-set signals before banner shows
Tag Assistant shows compliant but Network tab shows granted by default
CRITICAL
Implementation appears correct in Tag Assistant but is granting consent before visitor interaction — a GDPR violation and DMA non-compliance.
Always verify with DevTools Network tab: decline consent and check gcs parameter reflects denial state
Free tool
Check if your Consent Mode v2 is configured correctly
Our free scanner checks your homepage for Google Consent Mode v2 configuration issues — including whether all four parameters are being set, whether they fire before Google tags load, and whether Google Analytics is collecting data before consent is given.
Free Consent Mode v2 Scanner
Enter your website URL. We check for Consent Mode configuration, pre-consent tracking, and all four parameter signals. 30 seconds, free.
🛡 We scan your homepage only. No data stored. Results in 30 seconds.
Compliance checklist
Google Consent Mode v2 checklist 2026
Click each item to mark as done. Use this to verify your implementation is complete.
All four parameters present: analytics_storage, ad_storage, ad_user_data, ad_personalization
Consent defaults set to denied before any Google tag or GTM container loads
wait_for_update timeout added to consent default (2000ms recommended)
Consent update command fires after visitor interacts with banner — not just on page load
Region filtering applied — EEA/UK defaults separate from global defaults
Consent decision persisted in first-party cookie — returning visitors not shown banner unnecessarily
Basic or Advanced mode chosen and implemented consistently
Verified in DevTools Network tab — gcs and gcd parameters reflect denied state when consent declined
Google Tag Assistant confirms all four parameters are transmitting
June 15, 2026 update reviewed — Google Signals retirement and ad_storage sole governing parameter understood
Using a Google-certified CMP to handle signal transmission automatically
Common questions
Google Consent Mode v2 — frequently asked questions
Yes. Google made Consent Mode v2 mandatory in March 2024 for all businesses using Google Ads or Google Analytics with EEA and UK traffic. Google began enforcing compliance on July 21, 2025 — non-compliant accounts lost access to personalised advertising, remarketing, and conversion tracking. A second hard deadline of June 15, 2026 brings additional changes: Google Signals is retired and ad_storage becomes the sole governing parameter for advertising data.
In Basic mode, all Google tags are blocked until the visitor interacts with the consent banner — no data sent to Google before consent, not even anonymously. In Advanced mode, tags load immediately in a restricted state and send anonymous cookieless pings while consent is denied. These pings feed Google's conversion modelling, recovering estimated attribution data for users who declined. Advanced is recommended for any business running Google Ads in the EEA at meaningful volume.
analytics_storage controls GA4 measurement cookies. ad_storage controls Google Ads cookies for conversion tracking and remarketing. ad_user_data (new in v2) controls whether user data is sent to Google for ad measurement including enhanced conversions. ad_personalization (new in v2) controls whether data is used for personalised ads. All four must be present in both the default and update commands for a v2-compliant implementation.
Without v2, your Google Ads account loses conversion tracking, remarketing audiences stop building, and personalised advertising is disabled for EEA and UK users. One documented case from April 2026 shows a business that lost 90% of measured conversions overnight due to a misconfigured consent setup. After fixing the implementation, only 40% of the attribution data was recoverable through modelling — the rest was permanently lost.
From June 15, 2026, Google Signals no longer governs advertising data in Google Analytics accounts linked to Google Ads. The ad_storage consent parameter becomes the sole governing parameter for how advertising data flows between GA4 and Google Ads. Businesses that relied on Google Signals as a data control backstop must update their consent configuration to depend entirely on Consent Mode v2 signals.
Google strongly recommends using a certified CMP partner. A certified CMP handles all four signal parameters automatically, fires defaults before any tags load, and sends the consent update after visitor interaction — all in the correct order. 67% of self-configured setups have issues, most commonly setting the consent default after Google tags have already loaded, which creates a race condition that makes the consent signal meaningless.
ConsentPixel — Privacy · Verified automatically handles all four consent parameters, fires defaults before any Google tag loads, and sends consent updates correctly — no GTM configuration required.