Consent Mode v2 checklist
Consent Mode v2 uses four signals — ad_storage, ad_user_data, ad_personalization and analytics_storage — and a banner that only sets the two legacy ones leaves the new pair undefined, which Google treats as unset rather than granted. That's the configuration failure. The bigger one is order: a default consent command that runs after the tag it was meant to gate has already lost, and it looks completely correct in every settings screen. The only proof is a network capture under each state.
Free30 minutesNo obligation
Consent Mode v2 · what breaks
Where teams get this wrong — Consent Mode v2
- 01
Setting only ad_storage and analytics_storage
The v2 signals are left undefined, which is not the same as granted.
- 02
The default running after the tags it gates
The most common fault, and invisible from any configuration screen.
- 03
Trusting the banner's own dashboard
It reports its state, not what left the browser. Only a capture shows the second thing.
Consent Mode v2 · the fix
What a correct implementation looks like — Consent Mode v2
All four signals set explicitly
None left undefined.
Default fires before any measurement tag
In the same document, not merely earlier in a file.
Every state tested by capture
Undecided, accept, reject, partial.
Regional behaviour configured deliberately
If you serve both EEA and US traffic.
Consent Mode v2 · architecture
The four signals and what each governs — Consent Mode v2
Google's documentation defines the current behaviour of each and it evolves. Verify before relying on any of this for a build.
- 1
ad_storage
Storage for advertising purposes. The legacy signal most banners already set.
- 2
ad_user_data
Whether user data may be sent to Google for advertising. Added in v2 and frequently left undefined.
- 3
ad_personalization
Whether data may be used for personalized advertising. Also added in v2.
- 4
analytics_storage
Storage for analytics. The other legacy signal.
- 5
Default versus update
Default sets the pre-choice state and must run first. Update fires when the visitor chooses.
- 6
Basic versus advanced mode
Whether tags load before consent at all. A legal decision, covered separately.
Consent Mode v2 · diagnose
Common mistakes and how to validate each — Consent Mode v2
Ordered by how often we find them. Each one has a specific check rather than a general instruction to be careful.
- 01
Only two signals set
Read the default command on a live page. If ad_user_data and ad_personalization are absent, that's the finding.
- 02
Default fires too late
Check what executes first in the document. A default after the tag has already lost.
- 03
Conversion tags in the wrong consent category
A conversion tag filed under marketing is blocked by anyone who accepted analytics only.
- 04
Denial never tested
Deny consent and capture the traffic. Configuration is not evidence.
- 05
Conversion drop much larger than the denial rate
That gap means consented visitors are also being blocked, which is fixable.
Consent Mode v2 · prove
How to prove your implementation is right — Consent Mode v2
Against your own records and a live payload, not against a preview screen.
Source of truth
outbound network requests captured under each consent state
- All four signals confirmed set on a live page.
- Default confirmed executing before any measurement tag.
- Denial verified by capture — nothing with identifiers leaves.
- Each state tested individually, including partial and undecided.
- Checked on a live conversion, not in preview mode.
- Reconciled over a fully closed window, matched per record.
- Re-checked 30 days later.
Consent Mode v2 · free audit
What we check in the free audit
- Only two signals set
- Default fires too late
- Conversion tags in the wrong consent category
- Denial never tested
- Conversion drop much larger than the denial rate
Checked against
outbound network requests captured under each consent state
Free30 minutesNo obligation
Consent Mode v2 · when not to buy
What this reference deliberately leaves out — Consent Mode v2
Stated openly, because a reference that's silent about its own gaps is the dangerous kind.
- Which consent mode is legally appropriate for you is your counsel's decision. We implement; we don't advise on that.
- Consent Management Platform specifics differ per vendor and aren't covered. The execution-order rule applies to all of them.
- Google's Consent Mode behaviour changes. Verify signal names and behaviour against current documentation before building.
- Vendor documentation is the authority, not this page. Where the two disagree, the vendor is right and we'd like to know so we can correct it.
- Parameter names and behaviour change. Anything here is accurate as we last verified it; verify against the current documentation before you rely on it for a build.
Consent Mode v2 · what we deliver
The checklist — Consent Mode v2
All four signals present in the default command
Read the live page, not the container configuration.
Default executes before any tag it gates
Check execution order in the document.
Denial verified by network capture
Nothing carrying identifiers should leave.
Partial consent tested
Analytics granted, advertising denied.
Undecided state defined
Visitors who never choose are a third state, and many setups never define it.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies your existing browser-side setup against this reference, on a live conversion.
- Implementation checked against the spec
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, built to this specification.
- First-party server container on your own subdomain
- Events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, documented to this standard.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring so the next break surfaces in days
FAQ
Consent Mode v2 questions, answered
ad_storage, ad_user_data, ad_personalization and analytics_storage. A banner setting only the first and last leaves the v2 pair undefined, which Google treats conservatively.
Partly your denial rate, which is correct. If the drop is much larger than that, consented visitors are also being blocked — usually an execution-order or category-assignment fault.
Deny consent and capture the network traffic. If requests still leave carrying identifiers, it isn't working, whatever the banner's dashboard reports.
No, it's a third state. Many implementations never define what happens to visitors who close the banner without choosing.
Free · 30 min
Verify your consent setup by capture
Free30 minutesNo obligation
