Fireshift / Guides

Is Google Consent Mode working? A 5-minute check

By the Fireshift team · Updated 2026-11-05

Short answer

Open Tag Assistant on your site, don't touch the banner, and read the Consent tab: there should be an On-page Default for every consent type before any Google tag fires, and an On-page Update only after you click. Then click accept or reject and check that the update matches your click. On 5 Nov 2026 we read the public setup of 1,727 sites: 48.5% show a Consent Mode signal, and 21.0% of the 1,261 sites that load an ad pixel show neither a consent tool nor Consent Mode. A signal means the setup exists. It doesn't prove the tags wait.

How many sites have Consent Mode set up?

On 5 Nov 2026 we fetched the homepage, /pricing, /signup and /demo of 2,332 domains and read every public GTM and Google tag container they load. 1,727 were reachable and distinct (full study). We counted a Consent Mode signal when the page or a container has a gtag('consent', 'default', …) call, a Consent Initialization trigger, or a consent template that writes consent state.

Signal (5 Nov 2026)B2B SaaSEcommerceAgenciesAll
Consent tool (CMP) loaded62.0% of 1,20158.8% of 25542.8% of 27158.5% of 1,727
Consent Mode signal52.3% of 1,20139.6% of 25539.9% of 27148.5% of 1,727
Ad pixel with no consent tool and no Consent Mode18.2% of 90817.7% of 15836.9% of 19521.0% of 1,261
Google Ads sites where at least one tag has a GTM consent check50.0% of 68468.5% of 7335.7% of 12949.4% of 886

Two things stand out. Agencies' own sites are the least set up: 36.9% of those with an ad pixel show no consent setup at all. And sites outside the Tranco top 1M lag the most: 34.3% of 216 pixel sites with no consent signal, against 15.3% of 131 in the top 10k. The most common consent tools were OneTrust (358 sites), Cookiebot (205), CookieYes (160) and the HubSpot banner (108).

Consent tools and Consent Mode are separate. A banner can load and still never tell Google tags what the visitor chose. 1,011 sites load a consent tool, but only 837 show a Consent Mode signal.

How do I check Consent Mode in Tag Assistant?

This is the check Google documents (Google: debug consent mode).

  1. Clear cookies for your site, or open a private window.
  2. Open tagassistant.google.com, add your domain and connect. Don't click the banner.
  3. In the event list, click Consent (or the first event), then open the Consent tab.
  4. Read the On-page Default column. Every type you use (ad_storage, analytics_storage, ad_user_data, ad_personalization) should have a value here, set before the first Google tag fires. Empty means no default.
  5. Click Reject in the banner. A new event should appear, with On-page Update showing denied.
  6. Repeat in a fresh window and click Accept. The update should show granted.
  7. Open the Google Ads and GA4 tags in the list and check when they fired relative to the default.

Test from the region your banner treats strictly. Many banners grant everything by default outside the EU and UK, so a test from the US can look like "no wait" while working as configured.

How do I read gcs in DevTools?

Every Google tag hit carries the consent state in its URL. It is faster than Tag Assistant once you know where to look.

  1. Private window, DevTools open, Network tab, Preserve log on. Filter on gcs=.
  2. Load the page. Don't touch the banner.
  3. Click a request to google-analytics.com, googleadservices.com or doubleclick.net and read gcs in the URL.
gcsad_storageanalytics_storage
G100denieddenied
G110granteddenied
G101deniedgranted
G111grantedgranted

No gcs at all means no consent state reached that tag. Google doesn't document gcs on its developer pages. The table is how practitioners read it, and it matched what we saw on 5 Nov.

What we saw on 5 Nov 2026, loading three consent vendors' own homepages in headless Chromium from a US address, without clicking anything: two sent a first GA4 hit with gcs=G100, then hits with gcs=G111 a few seconds later. That is a denied default followed by an automatic grant, which banners do for regions where they don't ask first. The third sent Google Ads hits with no gcs. From the EU, the same pages may behave differently. That is why the region you test from matters.

There is a second parameter, gcd, which carries all four consent types and whether each came from a default or an update. Google hasn't published its format, so read gcs and use Tag Assistant for the other two types.

Why is my Google Ads tag blocked by the CMP, or my consent rate 0%?

These come up every week in the Google Tag Manager and Google Ads communities. The usual causes:

  • A default with no update. The default sets everything to denied, but the banner never sends gtag('consent', 'update', …) after a click. Google sees "denied" for every visitor. Tag Assistant shows a default and no update after you accept.
  • A second default. Two scripts set a default: the consent tool's template and a hand-written snippet, or a theme or plugin. The later one wins. One community poster found a second default that set every type to granted.
  • The default comes too late. The default must be set before any Google tag fires. In GTM, that means the Consent Initialization trigger, not All Pages. If a tag fires first, it runs with no consent state.
  • Basic Consent Mode, working as designed. With basic mode, Google tags don't load until the visitor agrees, so nothing is sent for people who reject or ignore the banner (Google: consent mode overview). A tag "blocked by CMP" before a click is correct here. It is only a bug if it stays blocked after accept.
  • Only two of the four types. A setup from before 2024 often sets ad_storage and analytics_storage only. ad_user_data and ad_personalization are missing, and Google Ads features for EEA users depend on them.
  • Tags outside Consent Mode. Consent Mode controls Google tags. Meta, LinkedIn and TikTok pixels need their own consent condition. See Meta Pixel firing before cookie consent.

How to fix it

  1. Find every place consent is set. Paste your GTM ID into our free consent mode checker: it lists the defaults the container sets and the tags with no consent check. Then search the page source for 'consent', and in GTM look at tags on the Consent Initialization trigger and at Custom HTML tags. Keep one default.
  2. Set the default first. Use your consent tool's GTM template on the Consent Initialization trigger, with all four types, denied for the regions where you ask first.
  3. Wire the update. The banner must send an update on accept and on reject. Most consent tool templates do this when the Google Consent Mode option is on.
  4. Gate the other pixels. In GTM, open each non-Google tag, Advanced settings, Consent settings, and require ad_storage, or fire it from the banner's accept event.
  5. Retest three ways in fresh windows: accept, reject, ignore. Use Tag Assistant or the gcs filter above.

This is a tracking check, not legal advice. Which regions need a denied default is a call for your privacy counsel.

What we can't see from outside

  • Whether tags wait. The study is a static read of the setup. A signal means Consent Mode is configured somewhere. It doesn't prove the default comes first or that the banner sends an update. That needs a browser visit per site and region, which the study did not run.
  • Server-side and app-injected tags. Consent set on a server container, injected by a consent tool at run time, or loaded by a Shopify app pixel isn't in the public container. The real Consent Mode rates are likely higher, most of all for ecommerce.
  • Your Google Ads account. The consent rate Google Ads shows, and whether a conversion is primary or secondary, live in the account.
  • The sample. Built from lists, not random, and it leans toward well-known companies.

Data: docs/research/study-2026-11.json, scanned 5 Nov 2026 (tools/research/study2026/). The gcs example: headless Chromium, three homepages, no clicks, US address, 5 Nov 2026. How we scan: method. What our free scan flags for consent: consent checks.

FAQ

What does gcs=G100 mean?

Both ad_storage and analytics_storage are denied on that hit. G111 means both are granted, G110 ads only, G101 analytics only. Google doesn't document the parameter, so confirm in Tag Assistant's Consent tab.

Is a Google Ads tag blocked by the CMP before a click a bug?

Not with basic Consent Mode: tags shouldn't load until the visitor agrees. It is a bug if the tag stays blocked after accept, which usually means the banner never sends a consent update.

How many sites have Google Consent Mode set up?

48.5% of 1,727 sites showed a Consent Mode signal in our 5 Nov 2026 scan: 52.3% of B2B SaaS, 39.6% of ecommerce and 39.9% of agency sites. 21.0% of the 1,261 sites with an ad pixel showed no consent tool and no Consent Mode.

Does Consent Mode cover the Meta Pixel?

No. It controls Google tags only. Other pixels need a consent condition in GTM or a trigger that fires after accept.

Can Fireshift tell whether my tags wait for consent?

Not from the free scan. It reads your public containers and can't see timing. Whether tags wait needs a live browser visit, which we run in the Fix Sprint, and the answer depends on the visitor's region.

Run all nine checks on your site, free.

Fireshift reads what your site tells Google Ads, GA4 and Meta from the outside. No install, about a minute.

Get my Leak Score

See a sample reportOr have us fix it: Fix Sprint, €1,500