Google Consent Mode v2 Checker Verify All 4 Signals
Being configured is not the same as working. We verify all four Consent Mode v2 signals across three separate browser sessions - no interaction, Accept All, and Reject All - to confirm your signals update correctly at every stage.
The 4 Consent Mode v2 signals explained
All four signals must default to "denied" for EU visitors and update correctly when consent is given or refused.
ad_storage
Controls whether cookies used for advertising can be stored and read. Must be denied by default for EU visitors until consent is given.
analytics_storage
Controls whether cookies used for analytics (including GA4) can be stored. Must default to denied for EU visitors.
ad_user_data
New in v2 - controls whether user data can be sent to Google for advertising purposes. Required for Google Ads in the EU.
ad_personalization
New in v2 - controls whether data can be used for personalized advertising. Required for remarketing in the EU.
What we verify across 3 scenarios
Each scenario runs in a fresh, isolated browser session - no shared state between them.
| Check | What we verify |
|---|---|
| Default state (S1 - no interaction) | All 4 signals must default to "denied" before the banner is shown and before any user interaction |
| After Accept All (S2) | All 4 signals must update to "granted" after the user clicks Accept All - and update before any Google tags fire |
| After Reject All (S3) | All 4 signals must stay "denied" or return to "denied" after Reject All - analytics and ad tags should not fire |
| Signal timing (all scenarios) | The consent signal fires before Google tags initialize, not after - otherwise tags run unconsented for the interval between load and consent |
| No Google tag firing in S1 | No GA4, Google Ads, or GTM advertising tags send data during the pre-consent phase when all signals are denied |
Common Consent Mode failures we detect
These four issues appear repeatedly on sites that believe their Consent Mode is correctly set up.
Missing v2 signals
Only ad_storage and analytics_storage are present (Consent Mode v1). The newer ad_user_data and ad_personalization signals are missing - this is non-compliant for EU Google Ads since March 2024.
Default state not set before GTM loads
The consent default is set after the Google tag has already initialized. Tags run unconsented for the window between page load and consent initialization.
Signals not updating after interaction
The consent signal fires on page load but does not update when the user accepts or rejects. Google tags never transition from denied to granted.
Wrong initialization order
gtag("consent", "default") is called after gtag("js", new Date()) or after the first gtag("config") call. The initialization order matters.
Related: Pre-Consent Tracking Checker · GPC Signal Checker · How the full audit works
Verify your Consent Mode v2 setup
Cookie Compliance Checker is launching soon. Join the waitlist for early access and be among the first to scan your site.