Basic vs Advanced Consent Mode: which one you actually want
Consent Mode v2 comes in two flavours — Basic and Advanced — and the choice materially changes how much data you recover from users who decline. Most guides skip the trade-off. Here it is.
Basic Consent Mode blocks Google tags from loading until a user consents. Advanced Consent Mode loads the tags immediately but holds them in a restricted state, sending cookieless pings until consent arrives. The difference matters commercially: Advanced gives Google the signal density needed for conversion modelling, which typically recovers a meaningful share of the conversions you would otherwise lose entirely. Basic gives you nothing to model from.
How each one behaves
Basic
Google tags do not load at all until the user grants consent. If they decline, no tag ever runs and no request is ever made.
- Nothing is sent for non-consenting users. Not a pageview, not a ping.
- No modelling is possible, because Google has no signal to model from.
- Conceptually simplest — the tag either exists or it does not.
Advanced
Google tags load immediately, in a default state of denied. They send cookieless pings — no identifiers, no cookies — carrying minimal information. When consent is granted, they switch to full behaviour.
- Cookieless pings are sent for non-consenting users.
- Conversion modelling becomes possible, because Google can observe consented and non-consented traffic patterns and estimate the gap.
- More configuration, and more to get wrong.
| Basic | Advanced | |
|---|---|---|
| Tags before consent | Not loaded | Loaded, restricted |
| Data before consent | None | Cookieless pings |
| Conversion modelling | Not available | Available |
| Typical measured conversions | Lower | Higher |
| Implementation complexity | Lower | Moderate |
Why Advanced usually wins
The recovery comes from modelling. With enough consented traffic as a training signal, Google estimates the conversions that occurred among non-consented users and reports them. With Basic, those conversions are simply absent — not estimated, not reported, gone.
The size of the effect depends on your consent rate and your volume. Sites with low consent rates in EEA markets have the most to gain, because that is where the unobserved segment is largest. Sites with very low overall volume may not reach the thresholds modelling requires at all.
There is also a data-quality argument: Advanced gives you a continuous, comparable series. Basic produces a series where non-consented traffic is invisible, so period-over-period comparisons silently mix consent-rate changes with real performance changes.
The privacy objection, addressed honestly
Advanced does send something for users who have not consented. Cookieless pings contain no identifiers and set no cookies — they carry information such as page and timestamp, plus the consent state itself.
Whether that is acceptable in your jurisdiction and under your privacy posture is a question for your legal advisers rather than for a blog post. Some organisations conclude that no request should be made at all without consent, which is a coherent position and points to Basic. Most conclude that a cookieless, identifier-free ping is proportionate. It is a decision to take deliberately and document, not to default into.
Implementing Advanced correctly
The critical detail is ordering. The default consent state must be set before any Google tag loads, in the document head:
<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',
wait_for_update: 500
});
</script>
<!-- consent platform, then GTM / gtag, after this block -->
Then, when the user chooses:
gtag('consent', 'update', {
ad_storage: 'granted',
analytics_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
Three details that decide whether it works:
- All four signals. ad_user_data and ad_personalization are the v2 additions and the ones most often missing from implementations built before 2024. Without them, EEA advertising features degrade regardless of the other two.
- wait_for_update gives the consent platform a moment to restore a stored choice before tags act on the default. Too low and returning users get treated as new non-consenters.
- Region-specific defaults are possible — denied for EEA and UK, granted elsewhere — using the region parameter. Reasonable, and worth being deliberate about rather than applying blanket denial globally.
The failure mode nobody catches
The two directions fail differently, and only one is visible:
Tags firing before consent shows up as healthy-looking data. Nobody investigates a number that is fine.
Consent updates never arriving shows up as EU traffic that appears not to convert. This gets misdiagnosed as a market problem, sometimes for months, and it is extremely common — a banner that writes its own cookie but never calls the consent update leaves every tag permanently denied.
Test both paths explicitly. Verifying Consent Mode covers the browser-level checks, and the fastest single indicator is the gcs parameter on GA4 requests: G100 for denied, G111 for granted.
Choosing
Choose Advanced if you advertise in the EEA or UK, you have enough volume for modelling to engage, and your legal position permits cookieless pings before consent.
Choose Basic if your privacy posture or legal advice requires no requests before consent, or your EEA volume is negligible enough that modelling would never engage anyway.
Most commercial sites serving European traffic land on Advanced. The important thing is that it is a decision with a rationale attached, because someone will eventually ask why.
FAQ
Does Advanced Consent Mode send data without consent?
It sends cookieless pings — no identifiers, no cookies — for users who have not consented. Whether that is acceptable is a legal and policy question specific to your organisation.
Will Advanced Consent Mode recover all my lost conversions?
No. Modelling estimates a portion of the gap and requires sufficient volume to engage at all. It typically recovers a meaningful share, not everything.
Which consent signals does Consent Mode v2 require?
Four: ad_storage, analytics_storage, ad_user_data, and ad_personalization. The last two are the v2 additions and are the most commonly missing.
Can I use region-specific consent defaults?
Yes — deny by default for EEA and UK regions while granting elsewhere. Do it deliberately, and document the reasoning.
How do I know which mode I have implemented?
Load your site with a fresh profile and watch the network panel. Requests to Google before any consent choice means Advanced; no requests at all until you accept means Basic.
Check whether your site emits Consent Mode v2 signals at all — the free tracking audit inspects consent calls and banner presence on any URL.
See where your tracking stands
Run the same 13-check audit referenced in this post against any URL. No signup, results in seconds.