Conversion Tracking · Troubleshooting
What is Google Consent Mode and how does it work?
Google Consent Mode is an API that tells Google tags whether a user granted consent for ads and analytics. Tags read those signals and either fire normally, send cookieless pings, or stay silent. It governs tag behavior based on consent. It does not collect the consent itself.
What Google Consent Mode actually is
Google Consent Mode is a JavaScript API that sits between your cookie banner and your Google tags. Your consent management platform (CMP) tells Consent Mode what the user agreed to. Consent Mode then tells every Google tag on the page how to behave. That is the whole job.
It is easy to confuse the two halves. The CMP collects the choice. Consent Mode reads that choice and adjusts tag behavior. If you only install one half, you get a banner that looks compliant but tags that still ignore consent, or tags that go silent because no signal ever reaches them.
Consent Mode controls four signals:
ad_storage: whether advertising cookies can be setanalytics_storage: whether analytics cookies can be setad_user_data: whether user data can be sent to Google for adsad_personalization: whether data can be used for personalized ads and remarketing
The last two were added for Consent Mode v2, which Google made mandatory in March 2024 for anyone serving EEA and UK traffic through Google Ads. Without v2 signals, remarketing and audience lists stop populating from European traffic.
Default state, then update
Consent Mode runs in two steps. First you set a default state before any tag fires. For EEA traffic the safe default is denied across all four signals. Then, once the user interacts with the banner, your CMP calls an update to flip the relevant signals to granted or leave them denied.
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
wait_for_update: 500
});
The wait_for_update value tells Google tags how long to hold before assuming denial. That window matters. If a tag fires before the default loads, it runs with no consent context, and you get the worst of both worlds: a hit that may breach consent and a signal Google cannot model from.
Basic mode vs advanced mode
This is the distinction most setups get wrong, and it changes what data you actually keep.
In basic mode, Google tags do not load at all until the user grants consent. If consent is denied, nothing fires. No pings, no modeling input. You lose all visibility into denied-consent users.
In advanced mode, tags load on every page but adjust behavior based on consent. When consent is denied, tags send cookieless pings: no identifiers, no cookies, just an anonymous signal that an event happened. Google uses those pings as input for conversion modeling, which estimates the conversions you cannot directly observe.
Advanced mode is what most advertisers want, because it feeds the modeling that fills the gap left by denied consent. Basic mode is simpler and more conservative, but you forfeit the modeled conversions. Pick deliberately. A lot of accounts land in basic mode by accident because the CMP blocked the tags from loading, and the owner never realizes modeling was on the table.
Conversion modeling
When consent is denied and you are in advanced mode, Google fills the reporting gap with modeled conversions. It uses the cookieless pings plus aggregate, observed behavior to estimate conversions from users it could not track individually. Google requires a traffic threshold before modeling kicks in. Small accounts may not hit the volume needed, so the modeled numbers can stay flat even with advanced mode configured correctly.
Modeled conversions show up inside your Google Ads conversion columns. They are estimates, not raw counts, so reconciling them against a server-side source or your backend will never be exact. That is expected behavior, not a bug.
Where Consent Mode quietly breaks
Most Consent Mode problems are not error messages. They are silent gaps you only find when conversions drop or audiences stop growing. The patterns I see repeat:
No default state set. Tags fire before the consent default loads, so the update never has anything to override. Check that the default block runs first in the data layer, above your GTM container or gtag snippet.
CMP and Consent Mode not wired together. The banner records a choice but never pushes an update call. Consent stays at the default forever. In GTM, confirm the CMP template is firing the consent update, not just writing a cookie.
v1 signals only. A setup built before 2024 sends ad_storage and analytics_storage but not ad_user_data or ad_personalization. European remarketing audiences slowly drain. Audit the tag for all four signals.
Basic mode by accident. The CMP is set to block Google tags entirely, so advanced mode and its modeling never run. If your conversion volume from European traffic looks like a cliff rather than a slope, check whether tags are being blocked rather than adjusted.
Consent checks layered on top in GTM. Some accounts use a CMP, native Consent Mode, and a GTM trigger condition that also gates the tag. Three layers, each capable of blocking, and a tag that fires far less than anyone expects. Simplify to one source of truth.
How to verify it works
Open Google Tag Assistant or the browser console and watch the consent state. You want to see the default event fire first with denied values, then an update event after you interact with the banner, with the signals you granted flipping to granted. In GTM preview mode, the Consent tab shows each tag’s required consent and whether it was met at fire time.
If the default fires, the update fires, all four v2 signals are present, and your tags read them, Consent Mode is doing its job. If conversions still look wrong after that, the problem is downstream in your tag configuration or attribution, not in Consent Mode itself. Consent Mode governs the gate. It does not fix what happens once the tag is through it.
Related questions
-
What conversion value should I send to Google and Meta, and how do I keep them reconciling?
How to pick the conversion value you send to Google Ads and Meta so the two platforms reconcile with each other and with the numbers in Shopify or your CRM.
Read the answer
-
What are enhanced conversions in Google Ads and how do I set them up correctly?
How enhanced conversions work in Google Ads, the two types (Leads and Web), setup paths via GTM or the API, and the consent and hashing rules that decide match rates.
Read the answer
-
Why don't my GA4 and Meta conversion numbers match?
GA4 and Meta count conversions differently: attribution windows, modeling, and dedup. Here is how to read the gap and when it signals a real tracking problem.
Read the answer
Want this diagnosed in your account?
Same diagnosis,
run on your account.
Thirty minutes on the phone. I look at your spend, your tracking, and your search-term reports before the call. You walk out with a clear list of what is leaking and what to fix first.