Cookies · Google tags · Consent Mode

Google Consent Mode v2: Basic vs Advanced, and How to Check It Actually Works

Consent Mode is how Google's tags learn whether a visitor said yes. Set up well, it keeps Google Analytics and Ads in line with the visitor's choice. Set up badly, it's a line of code that changes nothing. Here is how to tell the difference.

SafeLaunch Research 3 min read

The short answer

Google Consent Mode v2 passes the visitor's choice to Google tags through four signals: ad_storage, analytics_storage, ad_user_data and ad_personalization. Set every signal to denied by default before any Google tag loads, update them only when the visitor accepts, and test in a real browser that no Google Analytics or Ads cookies are set before a choice or after Reject.

Key takeaways

  • Consent Mode v2 has four main signals: ad_storage, analytics_storage, ad_user_data and ad_personalization.
  • The default must be set to denied before any Google tag runs. A default set after the tag loads is too late.
  • Basic mode doesn't load Google tags until consent. Advanced mode loads them with denied signals and sends cookieless pings.
  • Consent Mode doesn't show a banner or collect consent. It needs a consent banner or platform that updates it.
  • SafeLaunch checks for denied defaults in your code and, on paid audits, confirms in a real browser that Google cookies aren't set before a choice or after Reject.
On this page
  1. 1. What are the Consent Mode v2 signals?
  2. 2. Basic or advanced Consent Mode?
  3. 3. What should the default snippet look like?
  4. 4. Common Consent Mode mistakes

01

What are the Consent Mode v2 signals?

Consent Mode v2 signals
SignalControls
ad_storageStorage, such as cookies, related to advertising
analytics_storageStorage, such as cookies, related to analytics
ad_user_dataWhether user data can be sent to Google for advertising
ad_personalizationWhether data can be used for personalised advertising, such as remarketing
Consent Mode v2 signals

02

Basic or advanced Consent Mode?

Advanced mode

  • Google tags load on every page view
  • With denied signals, they send cookieless pings
  • Google models conversions from those pings
  • Some regulators and lawyers question whether pings before consent are allowed in the EU

Basic mode

  • Google tags don't load until the visitor accepts
  • Nothing is sent to Google before a choice or after Reject
  • Less modelling data for Ads
  • The simplest position to defend under the ePrivacy Directive

SafeLaunch's own site uses basic mode: every signal defaults to denied, gtag.js isn't downloaded until the visitor clicks Accept, Reject and the Global Privacy Control signal keep it off, and advertising signals stay denied even after Accept.

03

What should the default snippet look like?

Place this in the page head before any Google tag, so the default is set first:

Consent Mode v2 defaults (in <head>, before any Google tag)
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('consent', 'default', {
    ad_storage: 'denied',
    analytics_storage: 'denied',
    ad_user_data: 'denied',
    ad_personalization: 'denied'
  });
</script>

Then, when the visitor accepts analytics, call gtag('consent', 'update', { analytics_storage: 'granted' }), and only then load or enable the tag in basic mode. Grant advertising signals only if the visitor accepts advertising.

04

Common Consent Mode mistakes

  • The default is set after gtag.js loads, so the first hit goes out with no consent state.
  • A second, hard-coded Google tag in the page head ignores the consent setup entirely.
  • The banner never calls update, so signals stay denied after Accept, or the code sets granted on load.
  • Other trackers aren't covered. Consent Mode controls Google tags only; Meta, TikTok, Hotjar and others need their own gating.

The only reliable test is behavioural. A SafeLaunch paid audit opens your site in clean browser sessions, before any choice, after Reject and after Accept, and records every Google request and cookie. See the real-browser test, or start a free scan.

One free fix in your inbox each week

A new copy-paste prompt for Lovable, Cursor or Claude Code every week, with the rule behind it and how to check it worked. No spam, unsubscribe in one click.

By signing up you agree to get this weekly email. We send it with Kit, and you can unsubscribe at any time. What we share with Kit is in our privacy notice.

FAQ

Frequently asked questions.

Google requires Consent Mode v2 signals for using its advertising measurement and personalisation features with users in the European Economic Area. Separately, the law requires consent before non-essential cookies in the EU and UK; Consent Mode is a way to pass that consent to Google's tags.

No. It passes the visitor's choice to Google tags. You still need a banner or consent tool, a cookie notice, a privacy notice that names Google, and gating for every non-Google tracker.

With signals denied, Google tags in advanced mode still send requests without cookies so Google can model conversions. Whether those requests need consent under the ePrivacy Directive is debated; basic mode avoids sending them.

Sources and further reading

This article is general information, not legal advice. SafeLaunch is automated software, not a law firm; a report records what was checked on one version and is not a certificate of compliance. Read the disclaimer.

From the founder

SafeLaunch is built by Raghav R Handa, a lawyer-turned-builder in New Delhi. He writes about this topic in plain English:

Free scan · no card

See what SafeLaunch finds on your product.

Paste a link and get your score, the most serious problems and what already passes, in about a minute.

Keep reading