This Consent Mode v2 checker
Three visits from Germany in one run: untouched, after Accept all and after Reject all. It reads the consent state Google's tags keep, decodes gcd on the requests and says whether the default came in time.
Monitor your first website free, no card needed. Explore SENRIKO
See the four Consent Mode signals a page sets, before a choice, after Accept all and after Reject all.
Paste a page address. We open it three times in a real browser from Germany: untouched, after Accept all and after Reject all. Each time we read the consent state Google's own tags keep in the page, and the signals Google's requests carry.
No Google login needed. The result shows ad_storage, analytics_storage, ad_user_data and ad_personalization in each state, whether the default came before the tags, and a timeline of each visit.
We open the page three times in a real browser from Germany and answer its cookie banner twice, once with Accept all and once with Reject all. The site's analytics may count those visits. We send no form.
The default denies everything before a choice and Accept all grants it. ad_personalization is never set, so the page runs only part of v2.
Every signal in every state has one of four values. Not set means the page never gave it one; unknown means we could not see it.
Most broken Consent Mode setups fail in one of these ways. Each card says which line of the result shows it.
Older banner setups often send ad_storage and analytics_storage and nothing else. The result marks ad_user_data and ad_personalization as not set and calls the setup v1 only.
If the banner script loads after Google's tags, they read consent before any default exists. Google's tags record that themselves, and the result reports it.
The banner closes and Google never hears about the choice. The result checks that at least one signal turns to granted after Accept all.
A misconfigured banner can send granted from both buttons. The result checks that ad_storage and analytics_storage stay denied after Reject all.
If the banner answers after the wait time, Google's tags have already run on the default. A robot answers far slower than a person, so the result does not judge this; it says so when the tags never stopped waiting, and Tag Assistant shows the rest.
A Google tag outside Consent Mode, such as an old snippet in the theme, sends requests without gcs or gcd. The result says when Google received requests with no consent parameters.
You need a fresh private window for each state. The checker above makes all three visits from Germany in one run and decodes the signals for you.
Open the page in a private window and leave the banner alone. In the Console, type dataLayer and look for a consent default entry that names all four signals.
gtag('consent', 'default', …)In Network, filter by collect. The gcs parameter is G1 followed by one digit for ad_storage and one for analytics_storage: G100 means both denied, G111 both granted.
gcs=G100Press Accept all. A consent update entry should appear in dataLayer, and the next requests should carry G111.
gcs=G111In a new private window, press Reject all. Both storage signals should stay denied. Tag Assistant's Consent tab shows the default and the update for each event.
ad_storage: deniedTag Assistant is the way to check by hand. The two SENRIKO tools share the same three visits and read them differently.
Three visits from Germany in one run: untouched, after Accept all and after Reject all. It reads the consent state Google's tags keep, decodes gcd on the requests and says whether the default came in time.
Its Consent tab shows the default and the update for each event while you click through the site. It is thorough, and you repeat it by hand for every state in a fresh window.
The same three visits, read for data instead of signals: which tags from Google, Meta and other vendors sent data before a choice, after Accept all and after Reject all.
Check a page in one tool and open the result in another without waiting again. The four tag tools share one visit, and the two consent tools share three.
A quick read of one page's HTML for GA4, GTM, Google Ads and the Meta Pixel. No browser.
Which GA4 streams a page has, and whether the browser sent them anything.
Which GTM containers a page has, whether they load, and what the published container holds.
Whether a page has a Google Ads tag, a configured conversion, and a conversion request.
Which Meta pixels a page has, whether Meta knows them, and which events the browser sent.
Three visits: untouched, after Accept all and after Reject all, and which tags sent data in each.
Three visits from Germany. A site that sets different defaults per region can behave differently for visitors elsewhere.
We press Accept all and Reject all when we can find them. When we cannot, that column says unknown rather than guessing.
Where neither the page's consent state nor Google's requests show a signal, it stays unknown. Google Tag Assistant can check it by hand.
It is not a legal certificate and not an audit. It reports what the page and Google's tags did.
Verify my domain and test a real conversionCheck another page