> How to check Google Consent Mode v2 in minutes: console, Tag Assistant, gcs and gcd parameters, cookies and Google Ads diagnostics. Catch silent failures.
>
> Canonical: https://www.flowconsent.com/en/blog/check-google-consent-mode-v2-working

[Marketing tools](https://www.flowconsent.com/en/blog?category=tools)

# How to check Google Consent Mode v2 is working: 6 tests

By Roland Vekemans · Published 13 October 2026 · 8 min read

In short

To check that Google Consent Mode v2 is working, you need to prove four things: a default consent state is set before any Google tag fires, all four signals are present (`ad_storage`, `analytics_storage`, `ad_user_data`, `ad_personalization`), the state switches to `granted` or stays `denied` after the visitor's choice, and no Google cookie is written while consent is denied. Six tests cover this: the browser console, Tag Assistant, the `gcs` and `gcd` parameters in network requests, the cookie storage, the Google Ads and GA4 status screens, and a run through every consent scenario. Each test takes a few minutes and needs no paid tool.

Consent Mode v2 fails quietly. The banner shows up, the visitor clicks, the site looks fine, and yet Google may be receiving the wrong signal, or no signal at all. You usually find out weeks later, when conversions drop in Google Ads or GA4 stops modeling. This guide shows how to check if consent mode is enabled and working, step by step. If you have not implemented it yet, start with our [Google Consent Mode v2 implementation guide](https://www.flowconsent.com/en/blog/google-consent-mode-v2-implementation-guide), then come back here to test it.

## How to check Google Consent Mode v2: what a working setup looks like

Before testing, know what you are looking for. A correct implementation meets five conditions:

1. **A default is set first.** A `gtag('consent', 'default', {...})` command runs before any Google tag loads (GA4, Google Ads, Floodlight). If a tag fires before the default, it runs as if consent were granted.
2. **All four v2 signals are declared.** Consent Mode v1 only had `ad_storage` and `analytics_storage`. Version 2 adds `ad_user_data` and `ad_personalization`, which Google requires to keep audiences and conversion measurement for EEA traffic.
3. **The default is** **`denied`** **for visitors who must consent.** For EU and UK visitors, all four signals start as `denied`.
4. **An update follows the choice.** When the visitor accepts or rejects, the CMP sends `gtag('consent', 'update', {...})` with the matching values.
5. **The stored choice is sent again on every page.** A returning visitor who accepted yesterday must not be treated as denied today.

The tests below check each condition in turn.

## Test 1: check if consent mode is enabled in the browser console

This is the fastest check, and it works on any site.

1. Open the site in a private window so that no previous choice is stored.
2. Open the developer tools (F12, or right-click then Inspect) and go to the **Console** tab.
3. Type `dataLayer` and press Enter.

Expand the entries. One of the first ones should be an arguments object containing `consent`, `default` and the four signals set to `denied`. It must appear before the entries that load your tags (`js`, `config`). Then click "Accept all" in the banner, type `dataLayer` again and look for a new `consent`, `update` entry with the signals set to `granted`.

If you see no `consent` entry at all, Consent Mode is not enabled. If the `config` entry for your GA4 or Google Ads ID comes before the `default`, the tag ran without consent restrictions. FlowConsent's banner checks for exactly this race at startup and logs a console error naming the tag IDs involved.

## Test 2: test Google Consent Mode with Tag Assistant

Tag Assistant (tagassistant.google.com) is Google's own debugger and the most reliable way to test Google Consent Mode. If you use Google Tag Manager, clicking **Preview** in your container opens it for you.

1. Enter your site URL and connect.
2. In the left column, select the first event (often "Consent" or "Consent Initialization").
3. Open the **Consent** tab. It shows each signal with three columns: the on-page default, the on-page update and the current state.

Before you click the banner, the default column must show `denied` for the four signals and the update column must be empty. Click "Accept all" on the site, then select the new event in Tag Assistant: the update column should now show `granted`. Repeat with "Reject all" in a fresh session: the update stays `denied`.

Tag Assistant also flags common problems with a warning, for example a tag that read consent before a default was set. In GTM, you can additionally turn on **Consent Overview** in the container settings to see which tags have built-in consent checks and which ones need an additional consent requirement. Our [Google Tag Manager and Consent Mode v2 guide](https://www.flowconsent.com/en/blog/google-tag-manager-consent-mode-guide) covers that configuration.

## Test 3: read the gcs and gcd parameters in network requests

Every request a Google tag sends carries the consent state in two URL parameters. Reading them shows what Google actually received, which is what matters.

1. Open the **Network** tab of the developer tools and reload the page.
2. Filter on `collect` (GA4 requests) or on `gcs=` (any Google tag).
3. Click a request and look at its query parameters.

### The gcs parameter

`gcs` encodes the two storage signals. It starts with `G1`, followed by one digit for `ad_storage` then one for `analytics_storage` (1 for granted, 0 for denied):

- `G100`: both denied. Expected before any choice and after a refusal.
- `G111`: both granted. Expected only after the visitor accepts.
- `G110`: advertising storage granted, analytics denied.
- `G101`: analytics storage granted, advertising denied.

If you see `G111` on the very first request, before anyone touched the banner, your default is missing or set to `granted`. That is the most serious failure, because Google records consent that was never given.

### The gcd parameter

`gcd` is longer (for example `13p3p3p3p5`) and covers the four v2 signals, in this order: `ad_storage`, `analytics_storage`, `ad_user_data`, `ad_personalization`. Google does not document it officially, but the letters have been analyzed by the measurement community. The ones you will meet most often:

- `l`: signal not set. Seeing it for `ad_user_data` or `ad_personalization` means you are still on a v1 setup.
- `p`: denied by default, no update yet.
- `q`: denied by default and denied by the update.
- `r`: denied by default, then granted by the update. This is the ideal pattern after an acceptance.
- `t`: granted by default, no update.
- `v`: granted by default and by the update.

A `t` or `v` for EU visitors means the default was `granted`, which defeats the point of asking.

### Basic or advanced mode?

What you see in the network tab also depends on the mode you chose. In basic mode, Google tags do not load at all before consent: no `collect` request should appear until the visitor accepts. In advanced mode, tags load and send cookieless pings with `gcs=G100` while consent is denied. Both are valid, but the result of the test is different. Our article on [basic vs advanced Consent Mode](https://www.flowconsent.com/en/blog/consent-mode-basic-vs-advanced-which-to-choose) explains how to choose.

## Test 4: check the cookies before and after the choice

Consent Mode signals are only half of the story. The other half is that nothing is stored on the device while consent is denied.

1. In a private window, open the developer tools and go to **Application** (Chrome) or **Storage** (Firefox), then **Cookies**.
2. Load the site without touching the banner. You should see no `_ga`, `_ga_<ID>` (GA4) or `_gcl_au` (Google Ads conversion linker) cookie.
3. Click "Reject all" and reload: still no Google cookies.
4. In a new private window, click "Accept all": the cookies appear.

If `_ga` is present before any choice, a tag is running outside Consent Mode, often a second copy of GA4 added by a plugin or by the site builder's native integration. Want to see every cookie your site sets before consent, not only Google's? Check it in 30 seconds with the [free cookie scanner](https://www.flowconsent.com/en/scan).

## Test 5: check the consent mode status in Google Ads and GA4

The browser tests prove what a single visit sends. The platform screens show what Google receives across all your traffic.

- **Google Ads:** open your conversion actions, then the **Diagnostics** tab. Google shows whether consent mode is detected on your tags and flags a lack of consent signals for EEA traffic. Changes can take several days to appear there, so do not expect an instant update after a fix.
- **GA4:** go to **Admin**, then **Data streams**, and open your web stream. The **Consent settings** section tells you whether consent signals for measurement and for ads personalization are active.

If the browser tests pass but these screens report missing signals, the problem is usually limited to some pages or some templates (a landing page without the snippet, a checkout on another domain). The impact of missing signals on bidding and audiences is detailed in our article on [Consent Mode v2 and Google Ads](https://www.flowconsent.com/en/blog/consent-mode-v2-google-ads-campaign-impact).

## Test 6: run every consent scenario

One acceptance on the home page is not a test plan. Run each scenario in a fresh private window and repeat Tests 2 to 4:

- **First visit, no choice:** default `denied`, no Google cookies, `gcs=G100` or no request (basic mode).
- **Accept all:** update to `granted`, cookies written, `gcs=G111`.
- **Reject all:** update stays `denied`, no cookies.
- **Partial choice:** accept statistics only, then check that `analytics_storage` is `granted` and the three advertising signals stay `denied`.
- **Returning visitor:** accept, close the tab, come back to another page. The stored choice must be applied immediately, without a burst of denied requests first.
- **Withdrawal:** reopen the cookie settings, withdraw consent and check that the next requests go back to `G100`.
- **Region:** if your default uses the `region` parameter to apply `denied` only in the EEA, test from an EEA connection (or a VPN). A test from outside the region will show `granted` and tell you nothing.

Also test at least one product page, the checkout or thank-you page (where conversions fire) and the mobile version.

## The most common failures and what they mean

- **No** **`consent default`** **in the dataLayer:** Consent Mode is not enabled. Check that your CMP has the option turned on, or that the default is set in GTM with the Consent Initialization trigger.
- **The** **`config`** **comes before the** **`default`****:** a tag is hard-coded above the CMP snippet. Move the CMP snippet up or remove the duplicate tag.
- **`l`** **for two signals in** **`gcd`****:** v1 setup. Update your CMP or template so it sends `ad_user_data` and `ad_personalization`.
- **The state stays** **`denied`** **after acceptance:** the CMP does not send the update, or sends it with the wrong signal names.
- **`granted`** **before any choice for EU visitors:** wrong default. This is a compliance problem, not just a measurement one.
- **Meta, LinkedIn or Hotjar still fire before consent:** these tags do not read Google's signals. They must be blocked by the CMP or given an additional consent requirement in GTM.

## How FlowConsent handles Consent Mode v2 checks

FlowConsent is built to pass these tests by default. The integration snippet starts with an inline stub that sets the four signals to `denied` before any Google tag, with `wait_for_update` so a returning visitor's stored choice is applied before the first hits. The banner sends the update on every choice and on every page. If a Google tag is queued before the defaults, the banner logs a console error naming it, and the installation assistant checks the whole chain on your live page. The compliance scan also recognizes cookieless `gcs=G100` pings as compliant and flags any hit that claims consent was granted after a refusal. It is free up to 25,000 sessions per month. Details are in the [Google Consent Mode documentation](https://www.flowconsent.com/en/doc/google-consent-mode).

[Back to the blog](https://www.flowconsent.com/en/blog)

Share this article · [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.flowconsent.com%2Fen%2Fblog%2Fcheck-google-consent-mode-v2-working) · [X](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.flowconsent.com%2Fen%2Fblog%2Fcheck-google-consent-mode-v2-working)

Questions

## Common questions on this topic.

Can't find your question? Write to us, we answer fast.

[Write to us](https://www.flowconsent.com/en/demo)

### How do I check if consent mode is enabled on my site?

Open the site in a private window, open the browser console and type dataLayer. If Consent Mode is enabled, one of the first entries contains consent, default and the four signals set to denied, before any config entry for GA4 or Google Ads. After you accept the banner, a consent update entry with granted values should appear. No consent entry at all means it is not enabled.

### What does gcs=G100 mean?

The gcs parameter carries the state of the two storage signals in every Google request. G100 means ad\_storage and analytics\_storage are both denied. It is the expected value before the visitor makes a choice and after a refusal. In advanced mode, Google uses these cookieless pings for conversion modeling. G111 means both are granted, and should only appear after the visitor accepts.

### Why does Tag Assistant show granted before I click the banner?

Either no default is set, so Google treats consent as granted, or the default is explicitly set to granted. It can also happen when a Google tag is hard-coded above your CMP snippet and fires before the default. A third cause is a region setting: if denied applies only in the EEA and you test from elsewhere, granted is expected. Test from an EEA connection.

### Can I test Consent Mode without Google Tag Manager?

Yes. Tag Assistant works on any site at tagassistant.google.com, whether your tags are installed with gtag.js, a CMS plugin or GTM. The browser console, the network tab with the gcs and gcd parameters, and the cookie storage are also independent of GTM. Only the Consent Overview, which lists the consent settings of each tag, is specific to Google Tag Manager.

### Does Consent Mode v2 replace a cookie banner?

No. Consent Mode only passes the visitor's choice to Google tags and adapts their behavior. The choice itself must still be collected by a cookie banner or consent management platform, with accept and reject options of equal weight. Consent Mode also does nothing for non-Google tags such as Meta Pixel, LinkedIn or Hotjar, which the banner must block until consent is given.

Read next

## Keep reading.

[All articles](https://www.flowconsent.com/en/blog)

[Marketing tools · 22 March 2026](https://www.flowconsent.com/en/blog/google-tag-manager-consent-mode-guide)

### [Google Tag Manager and Consent Mode v2: integration guide](https://www.flowconsent.com/en/blog/google-tag-manager-consent-mode-guide)

[How to implement Consent Mode v2 in Google Tag Manager. Basic vs advanced mode, tag configuration, common mistakes and complete checklist.](https://www.flowconsent.com/en/blog/google-tag-manager-consent-mode-guide)

[Read the article ](https://www.flowconsent.com/en/blog/google-tag-manager-consent-mode-guide)·

[Marketing tools · 27 March 2026](https://www.flowconsent.com/en/blog/consent-mode-v2-google-ads-campaign-impact)

### [Consent Mode v2 and Google Ads: impact on your campaigns](https://www.flowconsent.com/en/blog/consent-mode-v2-google-ads-campaign-impact)

[Consent Mode v2 changes how Google Ads measures conversions in Europe. Basic vs advanced mode, modelled conversions, ROAS: what it means for your campaigns.](https://www.flowconsent.com/en/blog/consent-mode-v2-google-ads-campaign-impact)

[Read the article ](https://www.flowconsent.com/en/blog/consent-mode-v2-google-ads-campaign-impact)·

[Marketing tools · 29 May 2026](https://www.flowconsent.com/en/blog/google-consent-mode-v2-implementation-guide)

### [Google Consent Mode v2: the complete guide to understanding and implementing it](https://www.flowconsent.com/en/blog/google-consent-mode-v2-implementation-guide)

[The reference guide to Google Consent Mode v2: why it is mandatory, its four parameters, basic vs advanced, a step-by-step setup with GTM and on the main platforms, and the errors to fix.](https://www.flowconsent.com/en/blog/google-consent-mode-v2-implementation-guide)

[Read the article](https://www.flowconsent.com/en/blog/google-consent-mode-v2-implementation-guide)

## Make your site compliant today.

Free up to 25,000 sessions a month. No credit card, no commitment.

[Create my banner](https://app.flowconsent.com/auth/sign-up?utm_source=flowconsent.com\&utm_medium=referral\&utm_campaign=general) · [Scan my site](https://www.flowconsent.com/en/scan)
