Consent Mode v2 became mandatory for EU advertisers using Google Ads in March 2024. If you haven’t implemented it, your Google Ads campaigns are already running blind — or close to it.
What Is Consent Mode v2?
Consent Mode is Google’s mechanism for adjusting how Google tags behave based on a user’s consent choices. Version 2 added two new parameters:
ad_user_data— controls whether GA4 sends user data to Google for advertising purposesad_personalization— controls whether data can be used for personalised ads
These sit alongside the original analytics_storage and ad_storage parameters.
Why It Matters
Without Consent Mode v2, Google’s smart bidding and audience tools are working with incomplete data. For Google Ads specifically, conversion modelling (the process where Google fills in the gaps for users who declined cookies) requires Consent Mode to be properly implemented.
Get it wrong and your reported conversions may be inflated, deflated, or simply unreliable — and your bidding strategy is making decisions based on bad numbers.
Basic vs Advanced Mode
There are two flavours:
Basic Mode — tags don’t fire at all until the user consents. Simple, conservative, but you lose all data on non-consenting users including the modelled data Google would otherwise provide.
Advanced Mode — tags fire immediately in a “cookieless” state. If the user accepts, full measurement kicks in. If they decline, Google still receives a cookieless ping that allows conversion modelling. This is almost always the right choice.
How to Implement It
The correct implementation depends on your CMP (Consent Management Platform). Most modern CMPs — CookieYes, Cookiebot, OneTrust — have native Consent Mode v2 support.
The key is making sure the consent signal reaches Google before any Google tag fires. This means your CMP’s Consent Mode integration needs to run in the <head> before GTM.
// Default state — set before GTM loads
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'wait_for_update': 500
});
Then your CMP updates these when the user makes their choice.
Common Mistakes
- GTM loading before the consent default is set — the most common issue. Results in a brief window where tags fire without consent.
- Only implementing Basic Mode — you’re leaving modelled data on the table.
- Not testing with the Google Tag Assistant — always verify the consent signals are being sent correctly.
- Forgetting
wait_for_update— without this, tags may fire before the CMP has loaded and sent the user’s stored preference.
If you need help auditing your Consent Mode setup, book a free 15-minute call and I’ll take a look.