TL;DR, Quick Answer
6 min readGoogle Consent Mode v2 is the November 2023 update that added two advertising parameters, ad_user_data and ad_personalization, next to the existing ad_storage and analytics_storage signals. It is a Google product requirement carried by Google's EU user consent policy, not a rule written into the GDPR. When the two parameters are missing, Google treats the consent value as not consented, and Customer Match lists cannot use that data for EEA users.
What did Google Consent Mode v2 change?
In November 2023, Google Consent Mode v2 added two advertising parameters, ad_user_data and ad_personalization, alongside the ad_storage and analytics_storage signals that Google tags already read. Google's tag platform documentation states it plainly: "Consent mode was updated in November, 2023 and now contains two additional parameters" (Manage consent mode). The mechanics underneath, the default and update commands and the modeling Google runs on the results, are covered in a practical guide to consent mode. This page stays on what version 2 put on top of that.
What do ad_user_data and ad_personalization control?
The two parameters split one old question into two. Google's gtag reference defines ad_user_data as "Sets consent for sending user data to Google for advertising purposes" and ad_personalization as "Sets consent for personalized advertising" (gtag.js reference). One governs transmission, the other governs use. A visitor can agree to have data reach Google for conversion measurement and still refuse to be targeted with it, and version 2 gives that distinction a wire format.
Seven consent types exist across the API. Google's descriptions, quoted from its own pages:
| Parameter | Google's description | Added |
|---|---|---|
ad_storage | "Enables storage, such as cookies (web) or device identifiers (apps), related to advertising." | v1 |
analytics_storage | "Enables storage, such as cookies (web) or device identifiers (apps), related to analytics." | v1 |
ad_user_data | "Sets consent for sending user data to Google for advertising purposes." | v2 |
ad_personalization | "Sets consent for personalized advertising." | v2 |
functionality_storage | "Enables storage that supports the functionality of the website or app." | v1 |
personalization_storage | "Enables storage related to personalization, for example, video recommendations." | v1 |
security_storage | "Enables storage related to security such as authentication functionality, fraud prevention." | v1 |
Every one of these accepts exactly two values, granted or denied. Nothing else parses.
Is Google Consent Mode v2 required by the GDPR?
No, and the conflation is the most common error in writing on this subject. Google Consent Mode v2 is a requirement Google places on advertisers who want to keep using its products, carried by the EU user consent policy, which applies to "end users in the European Economic Area, the UK and Switzerland" and obliges advertisers to obtain consent for "the use of cookies or other local storage where legally required" and for "the collection, sharing, and use of personal data for personalization of ads" (EU user consent policy). The GDPR and the ePrivacy Directive impose the underlying legal duties. Neither names a JavaScript parameter.
The practical consequence: an implementation that sends granted for everything satisfies Google's plumbing and still breaks the law if no valid consent was collected. What makes consent valid in the first place sits upstream of any API, and is covered in what counts as tracking consent and in the GDPR consent requirements for web analytics. Wire up the signals after the legal question is settled, not instead of it.

Basic or advanced: which implementation do you choose?
Google documents two implementations of consent mode, and version 2 inherits both. In basic consent mode, the site will "prevent Google tags from loading until a user interacts with a consent banner", and "no data is sent before a user consents". In advanced consent mode, "Google tags load when a user opens the website or app" with defaults set to denied, and "when consent is denied, consent state and cookieless pings are sent. When consent is granted, cookies are written" (Google Ads Help).
The difference shows up in Google's modeling. The same help page describes basic mode as producing a "General model (less detailed modeling)" and advanced mode as producing an "Advertiser-specific model (more detailed modeling)". Advanced mode buys better conversion modeling by transmitting a cookieless ping from visitors who said no, which is a data protection decision a legal team should make rather than a growth team. Whichever you pick, the consent banner has to fire the update call and not merely repaint itself.
What breaks in Google's advertising products when the signals are absent?
Missing is not neutral. Google's Customer Match documentation states: "If these consents are missing, then the consent value is determined as not consented", and "Data from unconsented EEA users will not be processed and cannot be used for ad personalization using Customer Match" (About Customer Match and the EU user consent policy). The same page carries the dated requirement: "Starting in March 2024, for Customer Match lists to be used in EEA, both consent fields of ConsentStatus type must be set to 'GRANTED' to indicate that you have received the required user consent."
Which tags read the signals at all is also documented. Google lists the products whose tags "contain built-in consent checks" as Google Analytics, Google Ads, Floodlight and Conversion Linker (Consent mode in Google Analytics). A tag outside that list does not respond to a gtag('consent', ...) call, so blocking it is your job.

How do the default and update commands carry the new parameters?
The default command runs before any Google tag fires, and the update command runs when the visitor answers. Google's documented shape:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
});Two options matter for correctness. Google documents wait_for_update with "a millisecond value to control how long to wait before data is sent", for consent platforms that resolve asynchronously, and a region key set "according to ISO 3166-2" in the default command, where "the one with a more specific region will take effect". Getting default to run after gtag.js has already sent a page view is the failure that quietly voids the whole setup, and the same ordering trap is dissected in the Google Analytics cookie consent guide.
What has Google not documented?
Google has published no penalty schedule for consent mode, no fine, and no account suspension policy tied to the two parameters. The only hard date in Google's own pages for this update is the March 2024 Customer Match requirement quoted above; treat any other enforcement date circulating in blog posts as unsourced until Google publishes it. The documented consequence is functional rather than punitive: unconsented EEA data is not processed for personalization, and the audience or measurement feature that depended on it degrades.
Flowsery
Start FREE Trial
Real-time dashboard
Goal tracking
Cookie-free tracking
There is a way out of the whole apparatus, which is to not send advertising signals to Google at all. Cookieless analytics removes the parameters from the question, and Flowsery's privacy-first analytics is cookie-free and EU-hosted, so there is no ad_storage decision to model around. Teams running Google Ads still need consent mode for the ads side, since one measurement tool cannot answer for another vendor's tags.
Frequently Asked Questions
Is Google Consent Mode v2 mandatory?
It is mandatory for advertisers who want Google's advertising and measurement features to keep working with EEA, UK and Switzerland traffic, under Google's EU user consent policy. It is not mandatory under the GDPR, which regulates the consent itself rather than how you transmit it to a vendor. A site that runs no Google advertising tags has no consent mode obligation from Google.
What happens if I only send ad_storage and analytics_storage?
Google's Customer Match documentation states that when the consent fields are missing, "the consent value is determined as not consented". The v1 parameters do not stand in for the v2 ones. Personalization features that depend on ad_user_data and ad_personalization treat that traffic as refused.
Can ad_user_data be granted while ad_personalization is denied?
Yes, and that combination is the point of splitting them. It means data may reach Google for advertising purposes while personalized advertising is refused. A consent banner with separate purpose toggles should map to that pair rather than collapsing both to one checkbox.
Does basic consent mode still count as Consent Mode v2?
Yes. Basic and advanced are implementation choices, and both carry the four advertising and analytics parameters. Basic mode blocks Google tags until the visitor interacts with the banner, so the parameters arrive only in the update call.
Which regions does Google's requirement cover?
Google's EU user consent policy names "end users in the European Economic Area, the UK and Switzerland". The Customer Match consent requirement quoted by Google references the EEA. Google's documentation does not extend the requirement to other regions.
Does consent mode restore the data that visitors refused?
No. Consent mode feeds Google's conversion modeling, which produces estimates rather than observations, and Google labels the two implementations as feeding a general model or an advertiser-specific model. The modeling caveats, and how they show up in reporting, are covered in the consent mode guide.
What is the difference between the v1 and v2 signals in consent mode?
The v1 signals are ad_storage and analytics_storage. Version 2 kept both and added ad_user_data and ad_personalization in November 2023, splitting the old single consent decision into separate signals for sending data to Google and for using it in personalized ads.
Which Google tags actually check the consent mode signals?
Google names Google Analytics, Google Ads, Floodlight and Conversion Linker as the products whose tags contain built-in consent checks. A tag outside that list ignores a gtag('consent', ...) call and keeps firing unless something else blocks it.
What does wait_for_update do in consent mode?
It is a parameter Google documents for the default command, set to a millisecond value that tells gtag.js how long to hold requests before sending them. It exists for consent management platforms that resolve asynchronously, so tags do not fire on the initial page load before the platform has reported a decision.
Can the region parameter set different defaults for different countries?
The default command accepts a region key using ISO 3166-2 codes, and Google applies whichever matching region is more specific. A site can set one default for the EEA and a separate one for everywhere else within the same default call.
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
Flowsery
Revenue-first analytics for your website
Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.
Real-time dashboard
Goal tracking
Cookie-free tracking
Related Glossary Terms


Google Lists Seven Separate Causes of not set in GA4
Google's docs give not set in GA4 a different cause per dimension, from a missing session_start to an empty content_group. Here is each cause and its fix.
What Server Side Tracking Fixes, and What It Leaves Untouched
Learn what server side tracking moves to your own server, which Safari cookie caps it escapes, how to deduplicate events, and why consent obligations stay.


What the Numbers Say About Average Bounce Rate by Industry
Nine tracked industries return a documented average bounce rate by industry ranging from 35.76% to 48.38%, sourced from Databox data dated September 2024.


Working Through the Average Order Value Formula Step by Step
The average order value formula divides revenue by orders, and a single discount code or return policy can quietly distort every number a team reports.


How B2B and B2C Sites Compare on Average Session Duration Benchmarks
Databox's own data puts average session duration benchmarks at 77.61 seconds for B2B sites and 92.33 seconds for B2C sites, split by industry and device too.


What Average Session Duration Actually Measures
In classic analytics, average session duration gives zero recorded time to the very last pageview of every session, which quietly drags the average down.
Related Articles


Why Beforeunload vs Pagehide Decides If Analytics Survive
Comparing beforeunload vs pagehide shows why mobile skips beforeunload, blocks the back-forward cache, and why pagehide with sendBeacon flushes data reliably.


What Behavioral Analytics Tracks That Pageviews Miss
Unlike a raw pageview count, behavioral analytics records what a visitor actually does on a page, as a stream of named events tied to that specific visitor.


How Browser Fingerprinting Identifies You Without a Cookie
A combination of canvas rendering, installed fonts, screen size and timezone is what browser fingerprinting turns into an identifier that survives deletion.

