Skip to main content
Consent Mode v2Reference

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

  1. 01

    Setting only ad_storage and analytics_storage

    The v2 signals are left undefined, which is not the same as granted.

  2. 02

    The default running after the tags it gates

    The most common fault, and invisible from any configuration screen.

  3. 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. 1

    ad_storage

    Storage for advertising purposes. The legacy signal most banners already set.

  2. 2

    ad_user_data

    Whether user data may be sent to Google for advertising. Added in v2 and frequently left undefined.

  3. 3

    ad_personalization

    Whether data may be used for personalized advertising. Also added in v2.

  4. 4

    analytics_storage

    Storage for analytics. The other legacy signal.

  5. 5

    Default versus update

    Default sets the pre-choice state and must run first. Update fires when the visitor chooses.

  6. 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.

  1. 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.

  2. 02

    Default fires too late

    Check what executes first in the document. A default after the tag has already lost.

  3. 03

    Conversion tags in the wrong consent category

    A conversion tag filed under marketing is blocked by anyone who accepted analytics only.

  4. 04

    Denial never tested

    Deny consent and capture the traffic. Configuration is not evidence.

  5. 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

Get my free conversion tracking audit

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
Have mine checked

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
Have it built properly

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
Get the full stack

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.

Free · 30 min

Verify your consent setup by capture

Free30 minutesNo obligation