← All posts
TrackingPublished on June 28, 2026

Consent Mode v2 without nuking your data

Set up Consent Mode v2 the right way: GDPR compliance AND conversions intact.

Consent Mode v2 has become unavoidable if you want to keep measuring and stay compliant. But misconfigured, it can cost you a huge share of your data. Here’s how to set it up without bleeding your measurement.

With strict GDPR enforcement and Google’s requirements (notably for remarketing and audiences), “just block the tags until there’s consent” no longer cuts it. Consent Mode lets Google model the conversions lost when a user declines — provided everything is wired correctly.

Without Consent Mode v2, two risks: your audiences and remarketing degrade for lack of signals, and you lose all visibility into non-consenting users. With it, you recover a modelled estimate of that traffic.

Basic vs Advanced

  • Basic: tags don’t load until consent is granted. No modelling, or very limited.
  • Advanced: tags load and send anonymous, cookieless pings on refusal. Google can then model the missing conversions. It’s the mode that preserves the most data — but it demands a rigorous setup.

In almost every case where modelling matters, advanced is the mode you want.

Default values, first

This is the heart of it: Google must receive a default consent state before any measurement tag loads. That default says “until the user chooses, assume nothing is granted.”

gtag('consent', 'default', {
  ad_storage: 'denied',
  ad_user_data: 'denied',
  ad_personalization: 'denied',
  analytics_storage: 'denied',
  wait_for_update: 500
});

Then, when the user chooses in the CMP, you send an update:

gtag('consent', 'update', {
  ad_storage: 'granted',
  analytics_storage: 'granted'
});

The wait_for_update gives the CMP time to respond before tags decide what to do.

Conversion modelling

In advanced mode, Google uses the anonymous signals + its models to estimate conversions from non-consenting users. In practice, on well-configured accounts, you recover a significant share of the “lost” conversions. But modelling needs volume (a daily event threshold) and clean wiring to kick in — on a small site, it may never trigger.

Common mistakes

  • Firing tags before Consent Mode init → consent states ignored.
  • Forgetting to set the default values before the CMP loads.
  • Mixing CMP and tags without wait_for_update.
  • Not testing both paths (accept / decline) in preview.

How do you check it works?

  1. In GTM Preview, inspect the consent state on load (everything denied) then after acceptance (the right fields granted).
  2. Google’s Tag Assistant confirms the default → update sequence.
  3. In GA4, watch for modelled conversions appearing (they show up with a slight delay, and only if volume is sufficient).
  1. A certified TCF / Consent Mode CMP (Didomi, Sirdata, abconsent…) that pushes the signals.
  2. gtag('consent', 'default', …) loaded first, before any other tag.
  3. Advanced mode if volume allows.
  4. GTM Preview check: both consent scenarios, and correct consent state.
  5. Confirm in GA4 / Ads that modelling activates.

Done right, Consent Mode v2 isn’t a loss: it’s the best trade-off between compliance and keeping your data.