Consent Mode v2 Checker
Check whether a store sends Google's Consent Mode v2 signals before its Google tags fire, and get a ready-to-paste default snippet if it doesn't.
What Consent Mode v2 requires
Before any Google tag (gtag.js or Google Tag Manager) loads, a page needs to call gtag('consent', 'default', {...}), setting a default consent state for four (or more) categories. Once a visitor makes a choice, gtag('consent', 'update', {...}) updates it.
Consent Mode v2 added two required parameters on top of the original two: ad_user_data and ad_personalization, specifically to strengthen enforcement of Google's EU user consent policy. All four (ad_storage, analytics_storage, ad_user_data, ad_personalization) should be present in the default call.
If something's missing
- No default call at all, or a common consent management platform (CMP): install one (Cookiebot, OneTrust, Complianz, CookieYes and others all support Consent Mode v2 out of the box) rather than hand-rolling the gtag calls.
- A default call exists but loads after the Google tag: move it earlier in the page's
<head>, before the gtag.js or GTM script tag. - Missing ad_user_data or ad_personalization specifically: this is usually an old (v1) Consent Mode snippet that predates the update. Add the two missing parameters, or update the CMP plugin generating it.
Questions people ask
Does this click my cookie banner to test it live?
No, it only reads the page's raw HTML, the same as Google's own tag-loading logic sees it first. The live "update" call from a banner interaction runs from JavaScript and won't show up in static HTML even when it's set up correctly, so test that part yourself in your browser's Network tab.
Do I need Consent Mode if I don't target the EEA or UK?
Consent Mode itself is Google's mechanism; whether you're legally required to gate tags behind consent depends on your own applicable privacy law, not on this tool. This isn't legal advice.
I have a cookie banner plugin, why does this say no CMP was detected?
This only recognizes a handful of common platforms by their public script signatures. A custom-built banner, or a less common plugin, won't be recognized even if it's working correctly.
What if my Google tag only loads after a click (like a chat widget)?
This checks whatever's in the page's initial HTML. A tag that only loads later, from another script, won't be seen here; check that flow manually.
Related tools
Last reviewed 30 September 2026.
