Severity: HighOwner: CMP adminTime to fix: 1-2 h
Google Consent Mode not detected
Implement Consent Mode defaults and updates so Google tags receive an explicit consent state instead of running without any signal.
Covers: consent_mode_not_detected, consent_mode_missing
Why this matters
When Google tags run without a detected Consent Mode state, analytics and ads behavior can drift from the banner choice and create weak evidence of compliance.
How to verify manually
- Load the site in a clean session and inspect whether Google Consent Mode defaults appear before Google tags initialize.
- Check DevTools, GTM preview, or consent debug output for granted or denied consent states on first page load.
- Confirm whether the banner updates Google consent state after Accept and Reject actions.
Typical root causes
- Consent Mode was never enabled in GTM or custom gtag code.
- Consent defaults are set after GA4 or Ads tags already initialize.
- CMP events update UI state but do not forward consent changes to Google tags.
GTM fix
- Add Consent Initialization logic with denied defaults before GA4, Ads, or Floodlight tags run.
- Ensure GA4 and Ads tags require consent checks instead of assuming granted state.
- Validate consent updates in GTM preview on both Accept and Reject flows.
WordPress fix
- Enable Consent Mode support in your CMP plugin or GA4 integration.
- Remove duplicate analytics plugins that bypass the CMP-managed consent state.
- Retest after clearing cache and disabling page-builder injected tracking snippets.
Generic fix
- Initialize Google tags only after a denied-by-default consent state is defined.
- Send explicit consent updates on banner actions rather than relying on implicit defaults.
- Keep marketing and analytics integrations behind the same consent state source of truth.
How to confirm the fix worked
- Verify Consent Mode defaults are present on first load before any optional tags fire.
- Verify Reject keeps Google storage states denied.
- Run a fresh scan and confirm the missing-consent-mode finding clears.
Next step
Re-scan after deployment to confirm that the runtime behavior changed, not just the banner copy.