Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

Consent Mode Debugging: 9 Problems and How to Fix Them (2026)

Intermediate

How do I debug Consent Mode V2 problems?

Debug Consent Mode V2 issues in three tools: GTM Preview Mode (Consent State tab shows current consent parameter values), Chrome DevTools (Network tab → filter collect → inspect gcd parameter), and the GA4 DebugView (Admin → DebugView, shows events with consent metadata).

The gcd parameter is your primary diagnostic signal: gcd=11t = all consent granted, gcd=11l = denied with Advanced mode active, gcd=11p = denied with Basic mode (no data). If gcd is absent from GA4 hits entirely, Consent Mode is not initialised. The nine problems below cover ~95% of Consent Mode failures encountered in production implementations.

The 9 consent mode problems

Problem 1 — `gcd` parameter missing from GA4 hits

Symptom: GA4 network requests show no gcd parameter.

Cause: The consent default tag is not firing, or is firing after the GA4 tag.

Diagnosis:

  1. Open GTM Preview Mode on your site
  2. Look at the tag firing order on the first page view event
  3. The consent initialization tag should be the FIRST tag that fires, triggered by "Consent Initialization - All Pages"
  4. If the GA4 Configuration tag fires before the consent tag, Consent Mode is not active for that hit

Fix:

  • Ensure the consent default tag uses the "Consent Initialization - All Pages" trigger type (available under Trigger Type → Other → Consent Initialization)
  • Do NOT use "All Pages" or "Page View" trigger for the consent default — these fire after GA4 tags
  • The "Consent Initialization" trigger is specifically designed to fire before other tags

Problem 2 — `gcd=11t` on all hits regardless of user consent choice

Symptom: The gcd parameter always shows 11t (all granted) even for users who rejected consent.

Cause: The consent default is set to granted instead of denied, or the CMP is not firing the update tag correctly and defaults persist as granted.

Diagnosis:

  • Check your consent initialization code: does it set all parameters to denied by default?
  • Check GTM Preview Mode → Consent State tab: what is the state immediately after page load (before any user interaction)?

Fix:

If the state shows granted immediately on page load, your initialization is wrong. If it shows denied but hits still show gcd=11t, the GA4 tag is firing before the initialization code (see Problem 1).

Problem 3 — The CMP loads but consent state never updates after acceptance

Symptom: User clicks "Accept All" on the cookie banner, but subsequent GA4 hits still show gcd=11l or gcd=11p (denied state) instead of gcd=11t.

Cause: The CMP update trigger in GTM is not firing after consent is granted. This is the most common cause of Consent Mode malfunction.

Diagnosis:

  1. In GTM Preview Mode, accept the cookie banner
  2. Does a consent update event appear in the GTM event timeline?
  3. Does the Consent State tab update after acceptance?

Fix:

  • For CMP GTM templates (Cookiebot, OneTrust, etc.): ensure the template is installed correctly and configured with your CMP ID. The template handles the update event automatically.
  • For custom CMP implementations: verify the CMP fires a gtag('consent', 'update', {...}) call in its acceptance callback. If the CMP fires a custom dataLayer event instead, create a GTM trigger on that event and a custom tag that fires gtag('consent', 'update', {...}).
  • Verify the update fires in the browser console: window.dataLayer should contain a consent event after acceptance.

Problem 4 — Consent state updates correctly but GA4 still shows no data for non-consenting users

Symptom: Consent Mode appears to work (correct gcd values), but GA4 shows significantly lower traffic than expected and no modelled conversion data appears in Google Ads.

Cause: This is usually not a technical failure — it's the expected behaviour. GA4 does not record sessions from non-consenting users. What you're expecting (modelled conversions) appears in Google Ads reports, not directly as sessions in GA4.

Diagnosis: Check Google Ads → Conversions → your GA4-imported conversion → look for the "Modelled conversions" column. Modelled conversions appearing here confirm Consent Mode is working correctly. If modelled conversions do not appear in Google Ads after 7–14 days, the volume of consented conversions may be too low for Google to build a reliable model (minimum: approximately 50 consented conversions per month).

Problem 5 — `wait_for_update` timeout too short

Symptom: The CMP loads slowly (over 500ms), causing GA4 tags to fire before the CMP has updated consent state.

Need to validate whether consent timing is distorting your GA4 data?

Cause: The default wait_for_update: 500 (500ms) is insufficient for slow CMPs or slow network conditions.

Diagnosis:

  • In Chrome DevTools, check how long the CMP script takes to load (Network tab → find the CMP script → check its load time)
  • If CMP load time consistently exceeds 500ms, increase wait_for_update

Fix:

Trade-off: Longer wait_for_update delays GA4 tag firing for all users, including those with consent previously granted (returning consenters). On fast CMPs, 500ms is fine. On slow connections or large CMP scripts, increase to 1000–2000ms.

Problem 6 — Cookie re-consent being ignored on return visits

Symptom: Users who previously accepted consent see the cookie banner again on return visits AND their consent from the previous visit is not being honoured.

Cause: The CMP cookie that stores consent preference is being blocked or deleted before the CMP reads it — possibly by a browser privacy setting, an ITP/ETP intervention, or an incorrect cookie domain configuration.

Diagnosis:

  • Check the CMP's first-party consent cookie (e.g., CookieConsent for Cookiebot) in Chrome DevTools → Application → Cookies
  • Does the cookie persist across sessions?
  • Is the cookie set on the correct domain (including subdomains if your site uses them)?

Fix: Ensure the CMP consent cookie domain matches your site domain. For sites with subdomains, set the CMP domain to .yourdomain.com (with leading dot for cross-subdomain sharing). Check your CMP configuration for domain settings.

Problem 7 — Different consent state on different page templates

Symptom: Consent Mode works correctly on most pages but shows incorrect gcd values on specific page templates (e.g., checkout page, blog posts).

Cause: The GTM container is not firing on those page templates, or the CMP script is blocked by a Content Security Policy (CSP) on specific templates.

Diagnosis:

  • Open DevTools on the affected page template
  • Does the GTM container script appear in Network requests?
  • Does the CMP script appear?
  • Check Console for CSP violation errors

Fix: Ensure the GTM container snippet is present in the <head> of all page templates. Update your CSP to permit the CMP's script domain.

Problem 8 — `ad_user_data` and `ad_personalization` missing (V1 implementation still active)

Symptom: GTM Preview Mode Consent State shows only analytics_storage and ad_storage — the two V1 parameters — without ad_user_data and ad_personalization.

Cause: The consent initialization code was written for Consent Mode V1 and has not been updated to V2. Or the CMP template in GTM is an old version that predates V2 parameter support.

Fix: Update the consent initialization code to include all four parameters (see Problem 2 fix above). Update your CMP GTM template to the latest version — check the Community Template Gallery for updates to Cookiebot, OneTrust, or Usercentrics templates.

Impact of leaving V2 parameters missing: Google Ads conversion modelling for EU/UK traffic may not fully activate. The Google Ads Help Center documentation states V2 parameters are required for modelled conversion filling.

Problem 9 — Consent Mode working in staging but broken in production

Symptom: GTM Preview and staging validation pass, but production shows incorrect consent behaviour.

Cause: GTM Preview Mode uses the staging/preview container. Production may be running a published container version that predates your Consent Mode changes, or the CMP configuration differs between environments.

Diagnosis:

  • Check which GTM container version is published to production
  • Compare the production container's tags against the preview container
  • Verify the CMP is loading the same configuration in production as in staging

Fix: Publish the latest GTM container version that includes your Consent Mode changes. Test in production using GTM's live debugging (GTM Preview on the production URL).

Quick diagnostic checklist

Run through this in order before deep-diving into any specific problem:

  1. Is gcd present in GA4 network requests? (No → Problem 1)
  2. Does gcd default to denied on page load? (No → Problem 2)
  3. Does gcd update to granted after accepting consent? (No → Problem 3)
  4. Are all four V2 parameters present in consent state? (No → Problem 8)
  5. Is modelled conversion data appearing in Google Ads after 14+ days? (No → check volume, may be Problem 4)

FAQ: Consent Mode Debugging: 9 Problems and How to Fix Them

Can consent mode debugging: 9 problems and how to fix them be caused by consent timing instead of a tag bug?

Yes. Many consent-related issues come from when the signal arrives, not whether the setting exists in the interface. Browser-level validation matters more than screenshots of the CMP setup.

Should I test this only in GA4 reports?

No. Start in the browser first, then confirm the reporting impact in GA4. Otherwise you may confuse modeled-data shifts with broken implementation.

What is the fastest way to prevent this from happening again?

Create a repeatable QA step for banner changes, region logic, and container releases so consent behavior is validated before it reaches production users.

Validate Consent Mode Debugging: 9 Problems and How to Fix Them before it becomes a compliance and reporting problem

Run a free audit to check consent timing, browser behavior, and downstream GA4 impact in one workflow.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share