Monitor your first website free, no card needed. Explore SENRIKO

Consent Mode v2 checker

Free Google Consent Mode v2 Checker

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.

example.com/pricingExample
  • ad_storageDenied, then granted
  • ad_user_dataDenied, then granted
  • ad_personalizationNot set
  • Default before the tagsYes

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.

What it looks for

What the Consent Mode v2 checker reads

Each card is one part of Consent Mode the check reads, with the name it goes by in the page or on the request.

  • ad_user_data, ad_personalization

    The two v2 signals

    Consent Mode v2 added ad_user_data and ad_personalization to ad_storage and analytics_storage. A page that sets only the first two runs v1.

  • gtag('consent', 'default', …)

    The default

    What the page tells Google before anybody chooses. It has to come before the first tag reads consent.

  • gtag('consent', 'update', …)

    The update

    What the banner tells Google after the click. We check that Accept all grants and Reject all denies.

  • wasSetLate

    A default set too late

    Google's tags flag it themselves when a default arrives after a tag already read consent. We read that flag.

  • gcs=G100&gcd=13p3p3p3p5

    Signals on the requests

    gcs and gcd on the requests to Google carry the state. We decode gcd as a second source beside the page's own state, and look for requests that carry neither.

  • setDefaultConsentState

    GTM templates too

    A consent template in Google Tag Manager sets the same state as gtag.js, and we read it the same way.

Reading the answer

Four values, and where each one was read

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.

Granted
The page told Google this storage or use is allowed.
Denied
The page told Google it is not allowed. Google tags may still send requests without cookies.
Not set
The page never set this signal. For ad_user_data and ad_personalization that is the mark of Consent Mode v1.
Unknown
We could not read it: no Google tag, a banner we could not press, or a state kept where we cannot see.

Where the values come from, strongest first

  1. Page stateThe consent state Google's tags keep in the page while it runs. It is the same whether gtag.js or a GTM template set it.
  2. RequestsThe gcd parameter on the requests to Google, decoded. Used when the page kept no state we could read.
Troubleshooting

Why Consent Mode v2 is not working: six common causes

Most broken Consent Mode setups fail in one of these ways. Each card says which line of the result shows it.

  • 01

    Only the two v1 signals are set

    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.

  • 02

    The default arrives after the tags

    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.

  • 03

    Accept all updates nothing

    The banner closes and Google never hears about the choice. The result checks that at least one signal turns to granted after Accept all.

  • 04

    Reject all still grants storage

    A misconfigured banner can send granted from both buttons. The result checks that ad_storage and analytics_storage stay denied after Reject all.

  • 05

    wait_for_update runs out

    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.

  • 06

    Some requests carry no consent signals

    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.

By hand

How to check Google Consent Mode v2 by hand

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.

  1. Step 1

    Find the default

    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', …)
  2. Step 2

    Read gcs on the requests

    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=G100
  3. Step 3

    Accept, then look for the update

    Press Accept all. A consent update entry should appear in dataLayer, and the next requests should carry G111.

    gcs=G111
  4. Step 4

    Repeat with Reject all

    In 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: denied
Compared

Consent Mode checker, Tag Assistant or the Cookie Consent Checker: when to use which

Tag Assistant is the way to check by hand. The two SENRIKO tools share the same three visits and read them differently.

Needs a page address

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.

Needs your own browser

Google Tag Assistant

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.

Needs a page address

Cookie Consent Checker

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.

Questions

Consent Mode v2 checker: common questions

How do I check if Google Consent Mode v2 is working?
Paste the page address above. The result shows each of the four signals before a choice, after Accept all and after Reject all, whether the default was set before the tags, and whether Google's requests carried the signals.
What are the four Consent Mode v2 parameters?
ad_storage covers cookies for advertising and analytics_storage covers cookies for analytics. ad_user_data is consent to send user data to Google for advertising, and ad_personalization is consent to personalised advertising such as remarketing.
What makes it v2 rather than v1?
The two signals v2 added: ad_user_data and ad_personalization. A page that sets only ad_storage and analytics_storage runs v1, and the result says which ones are missing.
What is the difference between basic and advanced Consent Mode?
In basic mode Google's tags do not load until a visitor consents. In advanced mode they load at once with the default and send cookieless pings while consent is denied. The result does not name the mode. When the untouched visit sends requests to Google with consent denied, its timeline shows the first of them, and that is advanced mode at work.
Google received requests after Reject all. Is that a problem?
Not by itself. In Advanced Consent Mode Google tags keep sending requests without cookies when consent is denied. The result shows what the signals said on those requests, and says nothing about whether that is allowed where you are.
My consent is set in Google Tag Manager. Can you see it?
Yes. A GTM consent template sets the same state inside the page as gtag.js does, and that state is what we read. Where it cannot be read, the result says unknown.
What does a default set too late mean?
A tag read consent before the page had told Google the default, so for a moment it ran on its own assumption. Google's tags record this themselves, and the check reports what they recorded.
Is Consent Mode v2 required?
For visitors in the European Economic Area, Google has asked for the two v2 signals since March 2024 before it uses their data for ad personalisation and measurement. Whether your site needs a banner at all is a legal question for your adviser.
The other tools

The other free tools

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.

Limits

What this cannot tell you

  • 01

    Three visits from Germany. A site that sets different defaults per region can behave differently for visitors elsewhere.

  • 02

    We press Accept all and Reject all when we can find them. When we cannot, that column says unknown rather than guessing.

  • 03

    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.

  • 04

    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