TrueCount

Why does Google Tag Manager show a 0% consent rate in some regions, and how do I fix it?

Short answer

As of October 2026, Google names a clear cause of a 0% consent rate in some regions: the site sets consent to denied by default for every visitor, while the consent banner appears only in some countries, so visitors elsewhere never get a chance to grant consent. Google Ads and GA4 then get at most cookieless pings from those regions, which weakens remarketing, click attribution and Smart Bidding. The fix is to scope the denied default to the same regions where the banner shows, with the region parameter of the consent default command or the regional settings of your consent platform.

Consent mode is Google's way for a website to tell Google tags whether a visitor allowed advertising and analytics cookies; each consent type, such as ad_storage, is either granted or denied. "0% consent rate detected in some regions" is a Tag Diagnostics alert, which Google also surfaces through Google Tag Manager. It appears when Google detects that a site is "always sending ad_user_data denied signals in non-EEA regions", which may mean a consent setup meant for the European Economic Area (EEA) was applied globally, and warns that it can break remarketing outside the EEA.

Google's troubleshooting page explains the pattern. Visitors from some regions get a default consent state of denied but never see a consent banner, because the banner is limited to certain countries while the denied default is not. The result, in Google's words, is "a consent rate of 0 for those visitors".

So the number is not a reporting bug: nobody in those regions granted consent, because nobody asked them.

Why do visitors outside the banner countries stay at "denied"?

Consent mode works in two steps: the page sets a default consent state before any interaction, then sends an update when the visitor answers the banner. No banner means no update, so the default stays.

Google calls it best practice to scope default consent to the regions where you show banners, to avoid "any loss of measurement where there are no consent banners". The tool is the region parameter, a list of ISO 3166-2 codes such as ES or US-AK. A default command without a region parameter applies to every visitor not covered by a region-specific command, and when a region and a subregion both have defaults, the more specific one wins.

Where does the global denied default hide?

The trap is two settings in different places. The banner's country list sits in the consent management platform (CMP), the service that shows the banner. A global denied default can sit in theme code, a plugin, a GTM template row with an empty region field, or the "Set consent mode override" in the Google tag settings, which replaces the defaults in your website code with denied for the regions chosen there.

In an October 9, 2026 thread on the Google Tag Manager community, a user running CookieYes on several setups wrote that the regional setting "is set to include only the specific countries" and that CookieYes support confirmed the settings, yet the notice stayed. Google's own CookieYes and OneTrust setup pages give a code sample for CMPs added in page code, to adapt "according to your requirements". The CookieYes one warns "DO NOT COPY/PASTE WITHOUT MODIFYING REGION LIST", but both set denied "for all other regions" too: edit only the country list, and it is still a global denied default. Both samples also write the key as regions, while Google's developer guide names it region.

In advanced consent mode, Google tags load for every visitor, and while consent is denied they send only cookieless pings. In basic consent mode, tags stay blocked until the visitor answers the banner; a visitor who never answers sends nothing at all, not even the consent status.

With ad_storage denied, Google tags neither write nor read advertising cookies. With ad_personalization denied, remarketing in Google Ads, Display & Video 360 and Search Ads 360 does not receive data. Google still collects the full page URL with the ad-click ID, but no advertising cookie keeps that ID for the visit or the next one, so a later purchase is harder to tie to the click (our reading).

Google models missing conversions from the pings only above a data collection threshold, so modeling is not a guaranteed refill.

How do I check my site in five minutes?

  1. Tag Diagnostics. Open the Google tag settings and, under "Tag quality", select View diagnostics; look for "0% consent rate detected in some regions".
  2. Simulate a visitor from outside the banner zone. Google suggests simulating a visitor from the region with the low rate: if the default is set, no update is set and no banner appears, you have this problem.
  3. Read the consent states in Tag Assistant. Start a Tag Assistant session, select the earliest Consent event and open the Consent tab: the On-page Default column shows the default, and the On-page Update column shows what the banner changed. Outside the banner zone, Update will be empty.
  4. Compare the two lists. Write down the countries where your CMP shows the banner, then compare them with the region values in every consent default on the page and in the consent mode override, if it is on.

The console snippet below lists gtag consent commands in order. Template defaults may not show up in it; Tag Assistant also covers Tag Manager consent templates, so if the two disagree, trust Tag Assistant.

js
// Paste into the browser console (F12 → Console) on any page of your site.
// Lists every gtag('consent', ...) command found in the dataLayer, in order.
(window.dataLayer || [])
  .filter(e => e && e[0] === 'consent')
  .forEach((e, i) => console.log(i + 1, e[1], JSON.stringify(e[2])));
// A 'default' line with "denied" values and no "region" key applies to every country.

How do I fix it in Google Tag Manager?

In Google Tag Manager, Google recommends a CMP template tag for consent defaults. Fire it on the Consent Initialization - All Pages trigger, which runs before all other tags. Google warns against calling the gtag consent command from a Custom HTML tag.

Google's sample template has a default settings table with a Region column: "leave blank to have consent apply to all regions". A fixed setup looks like this:

Region field Consent types Default
Your banner countries, for example the EEA, GB and CH ad_storage, ad_user_data, ad_personalization, analytics_storage denied
Blank (everyone else) the same four granted, or denied with a banner there too, per your legal advice

Remove any other global denied default from theme code or plugins: a default without a region covers every visitor no regional row matches. In the CookieYes CMP template, the row with "Regions" left blank under "Default Consent Mode settings" is the global default; the OneTrust CMP template has a global default plus "Add Region-specific default". Give banner and defaults one country list. If your pages also carry gtag('config') lines next to GTM, read our gtag.config guide.

How do I fix it with gtag.js?

On sites that use the Google tag (gtag.js) without Tag Manager, the default command goes on every page before any command that sends data, such as config or event. If your CMP loads asynchronously, wait_for_update gives it time, in milliseconds, to send the update before tags fire.

js
// Runs on every page, ABOVE the gtag.js snippet.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// 1) Countries where your banner shows. Example list only:
//    copy the exact country list from your CMP settings.
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied',
  'region': ['AT', 'BE', 'DE', 'ES', 'FR', 'IT', 'NL', 'GB', 'CH'],
  'wait_for_update': 500
});

// 2) Everyone else. Use 'granted' only if your legal advice allows it;
//    otherwise show the banner in these countries too.
gtag('consent', 'default', {
  'ad_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted',
  'analytics_storage': 'granted'
});

The banner then sends gtag('consent', 'update', ...) when the visitor chooses. Test both branches in Tag Assistant: once from a banner country, once from outside the list.

How do I fix it on Shopify?

On Shopify, consent should flow through the Customer Privacy API, the browser API that applies consent decisions to pixels, audiences and checkout. Shopify's default depends on the store's privacy settings: in regions configured to require consent, non-essential purposes are not allowed until the visitor consents, and in other regions all processing purposes are allowed by default. The Shopify cookie banner passes choices to the API automatically; with a third-party banner app, ask its developer where the banner is shown, and make sure the app records choices with setTrackingConsent.

A custom pixel reads the starting state from init.customerPrivacy and listens for visitorConsentCollected, currently the only event that customerPrivacy.subscribe() accepts; both carry the same analyticsProcessingAllowed and marketingAllowed flags. If a custom pixel sets its own global denied default instead, it recreates the 0% problem. Below, our mapping of Shopify permissions to Google consent types, for a custom pixel that already loads the Google tag:

js
// Shopify custom pixel. Our mapping: marketing → ads types, analytics → analytics.
const toGoogle = (p) => ({
  ad_storage: p.marketingAllowed ? 'granted' : 'denied',
  ad_user_data: p.marketingAllowed ? 'granted' : 'denied',
  ad_personalization: p.marketingAllowed ? 'granted' : 'denied',
  analytics_storage: p.analyticsProcessingAllowed ? 'granted' : 'denied'
});
gtag('consent', 'default', toGoogle(init.customerPrivacy));
api.customerPrivacy.subscribe('visitorConsentCollected', (event) => {
  gtag('consent', 'update', toGoogle(event.customerPrivacy));
});

Who decides what visitors outside the banner countries get?

Not Google, and not your tracking specialist. Google says its consent examples are not definitive and that you are responsible for making sure consent mode matches your organization's policy. Shopify, too, advises consulting legal counsel.

That leaves two consistent options, and both remove the 0%:

  • Banner where the default is denied. If your lawyer says a country needs consent, show the banner there too, so visitors can grant it.
  • No banner where the default is granted. If your lawyer says a country does not need prior consent, set its default to granted, as in the second command above.

What breaks measurement is the third option: denied by default with no banner. Google's fix reads, word for word: "Align the consent banner and consent default command to target the same regions".

Google's OneTrust setup page puts the question region by region: "Confirm whether the banner should be opt-in or opt-out in each region you configure". This article explains how the tags behave; it is not legal advice.

Smart Bidding, the Google Ads strategies such as Target CPA and Target ROAS that bid for conversions or conversion value in every auction, requires conversion tracking. When a whole region sends only cookieless pings, Google Ads sees fewer conversions there than really happen. Our reading: bids then lean toward regions where tracking happens to work, not where your buyers are.

Remarketing is the second cost: with ad_personalization denied, visitors do not reach remarketing in Google Ads. After a fix, Google says the Tag Diagnostics status updates to show the improved tag quality. Compare conversions and audience sizes from those regions before and after the fix.

You can estimate the lost conversions in the calculator, or send your store address for a free outside check: the consent states show up in the Google tag's own requests, so no passwords are needed. If the check confirms the mismatch, our consent fix costs $350–500. More on this topic: consent and privacy.

FAQ

Only if you did not intend it. If your legal advice is to ask for consent in those countries, show the banner there too. If not, a denied default with no banner simply discards measurement, the case Google's Consent Mode troubleshooting page describes.

No. Advanced consent mode sends cookieless pings while consent is denied, so Google Ads and GA4 still get some signal, but the consent rate stays at 0 for visitors who never see a banner. Only matching the default regions to the banner regions changes that.

Can I test from another country without a VPN?

Google's debugging guide suggests setting your visitor location in the browser and repeating the Tag Assistant checks for each region. If your consent tool ignores the simulated location, a VPN to a country outside your banner list is a more direct test.

Sources (16)
  1. [1]

    Tag Assistant Help, Consent Mode troubleshooting for Google Ads (accessed October 15, 2026)

  2. [2]

    Google for Developers, Set up consent mode on websites (October 13, 2026)

  3. [3]

    Google for Developers, Consent mode overview (July 30, 2026)

  4. [4]

    Google Ads Help, About consent mode (accessed October 15, 2026)

  5. [5]

    Google for Developers, Troubleshoot consent mode with Tag Assistant (October 13, 2026)

  6. [6]

    Google Tag Manager Help, Tag Manager consent mode support (accessed October 15, 2026)

  7. [7]

    Google for Developers, Create a consent mode template (July 30, 2026)

  8. [8]

    Shopify.dev, Customer Privacy API (accessed October 15, 2026)

  9. [9]

    Shopify.dev, Pixel Privacy (accessed October 15, 2026)

  10. [10]

    Google Ads Help, About Smart Bidding (accessed October 15, 2026)

  11. [11]

    Google Tag Manager Community (user report), Using a CMP (CookieYes) for multiple implementations: 0% consent rate for one setup (October 9, 2026)

  12. [12]

    Google Tag Manager Help, Troubleshoot tag issues with Tag Diagnostics (accessed October 16, 2026)

  13. [13]

    Google Tag Manager Help, Configure your Google tag settings (accessed October 16, 2026)

  14. [14]

    Google Tag Manager Help, Set up CookieYes to obtain user consent (accessed October 16, 2026)

  15. [15]

    Google Tag Manager Help, Set up OneTrust to obtain user consent (accessed October 16, 2026)

  16. [16]

    Shopify.dev, init (accessed October 16, 2026)

Andrii Duhin

About the author

Andrii Duhin

Independent conversion-tracking specialist

Sets up and fixes conversion tracking for online stores in the US, Europe and Israel: Meta Pixel and Conversions API, GA4, Google Ads, GTM and server-side GTM, Consent Mode. Before that, four years running paid ads on Meta, Google and TikTok, with about $550k in budgets.

Get the next change by email

A short email when a change can break your numbers: what changed, who it affects and what to check in 5 minutes.

Max 2 emails a month, sometimes with an offer from us. Unsubscribe anytime. Privacy