← Run an audit
Home / Checks / 3 of 11
critical severity

Consent Mode v2 signals are configured

Consent Mode v2 became required for advertising into the EEA. Without the signals, Google models the conversions you lose to consent refusals, and remarketing audiences shrink sharply.

Why this matters

Consent Mode v2 became required for advertising into the EEA. Without the signals, Google models the conversions you lose to consent refusals, and remarketing audiences shrink sharply.

How this tool detects it

The tool looks for the four signals Consent Mode v2 requires: ad_storage, analytics_storage, ad_user_data and ad_personalization.

All four present means the check passes. One to three means consent signals exist but are incomplete, and the report names exactly which ones it found. Only analytics_storage and ad_storage belong to v1; ad_user_data and ad_personalization were added in v2. Only when none of the four appear does the tool report that no consent configuration was found at all.

It also looks for the signature of a known consent management platform — OneTrust, Cookiebot, Iubenda and similar. That tells you whether consent signals could be firing without a CMP behind them.

Where this check can mislead you

Static analysis has limits. These are the cases where this particular check will report a result that does not match reality — worth knowing before you act on it.

Examples

CorrectCorrect: all four v2 signals, set before the tags
<script>
gtag('consent', 'default', {
  'ad_storage': 'granted',
  'analytics_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted'
});
gtag('js', new Date());
gtag('config', 'G-1A2B3C4D5E');
</script>

The consent default must be declared before gtag('js'), or tags fire without being able to read the state.

WrongWrong: v1 signals only — ad_user_data and ad_personalization are missing
<script>
gtag('consent', 'default', {
  'analytics_storage': 'granted',
  'ad_storage': 'granted'
});
</script>

When advertising into the EEA this limits personalisation and visibly shrinks the remarketing audience pool.

How to fix it

  1. Establish which CMP you use. If none, start with a mainstream one — most send the v2 signals automatically.
  2. In GTM, add a Consent Mode configuration (if you use GTM): set the default state to denied, then let the banner interaction change it to granted.
  3. If you hard-code gtag, make sure the gtag('consent', …) call appears before every tag.
  4. Scan with this tool and confirm all four signals are detected.
  5. In GTM Preview, accept consent and confirm each tag shows "requires additional consent".
  6. Fire a pageview in GA4 DebugView and confirm the outgoing request carries consent parameters.

Verify it worked

After making changes, confirm delivery rather than assuming. These steps require your Google login, which is exactly why this tool stops short of them.

Related checks

One thing static analysis cannot tell you: this page reads published code, so it shows what is installed, never what actually fires. To confirm delivery, use GTM Preview and GA4 DebugView — both require your Google login.

Check whether your site has this problem — no login required.