Blog · Consent Mode
Google cut EEA conversion tracking for Consent Mode misses. A CMP banner is not ad_user_data.
Google began disabling personalized ads, remarketing, and conversion tracking on EEA properties that failed the EU User Consent Policy. The advertiser emails named July 21, 2025. A CMP banner is not ad_user_data.
That is not a global kill switch on every Google Ads account. Google's EU User Consent Policy audit page says reviewers contact the partner first, give a timeframe, and then take action on the account or site in scope if the partner does not engage. The action they name is suspension of audience features (ad personalization and remarketing) and conversion measurement for advertisers. Publishers get a different path: Limited Ad or programmatic limited ads. Do not tell finance that Google turned off Ads worldwide on a Monday.
The miss that keeps showing up in HAR files is simpler. Legal shipped a cookie banner. Engineering left gtag('consent') on ad_storage and analytics_storage, or never called it at all. Consent Mode v2 needs four types: ad_storage, analytics_storage, ad_user_data, and ad_personalization. A modal that never writes those four signals is how Ads Manager goes dark on EEA traffic while the banner screenshot still looks compliant.
The emails named July 21. The help center names the hop
PPC News Feed published the May 22, 2025 notice that advertisers were seeing: Action Required, compliance with Google's EU User Consent Policy, a July 21, 2025 date, and a list of attached site(s) or app(s). The email said Google would disable personalized and non-personalized ads, remarketing, and conversion tracking if the listed properties stayed out of policy. Treat that date as corroboration of when noticed accounts were told the cut would land. It is not a published Google Ads Help article that says every EEA advertiser lost conversion tracking at midnight.
The official EEA consent mode article is still the contract. Advertisers must adhere to the EU User Consent Policy to use ad personalization and measurement when tags or SDKs send data to Google. That includes Google Analytics data used in Google Ads, Search Ads 360, or Display and Video 360. You collect consent for use of personal data from end users based in the EEA, and you share consent signals with Google for those use cases. A banner that never talks to gtag is not sharing a signal.
The EU User Consent Policy itself is older than this summer. Google dates it to 2015. The audit page says it reflects GDPR, the ePrivacy Directive, and equivalent UK laws, and that it applies to end users in the EEA, the UK, and Switzerland. The July enforcement emails were about properties Google had already reviewed. If you did not get the letter, do not assume you are fine, and do not assume you are already dark. Conversion diagnostics and Tag Assistant are the check, not a LinkedIn screenshot of someone else's account.
Four types, not two, and not a CMP logo
Consent Mode v1 was ad_storage and analytics_storage. Those still exist. They are not enough. The Tag Platform setup guide says consent mode was updated in November 2023 with two additional parameters, and that existing consent mode users need to upgrade to v2. The EEA help article names the same pair: ad_user_data and ad_personalization.
The consent mode reference is blunt about what each type does. ad_storage enables storage related to advertising. analytics_storage enables storage related to analytics, for example visit duration. ad_user_data sets consent for sending user data related to advertising to Google. That type is required for measurement use cases such as enhanced conversions and tag-based conversion tracking. ad_personalization sets consent for personalized advertising. Both ad_user_data and ad_personalization need to be granted to enable personalized advertising in Google advertising platforms.
Denied is not silent. If ad_personalization is denied, remarketing in Google Ads, Display and Video 360, and Search Ads 360 does not receive data, and personalized advertising with Google's advertising products is off. If ad_user_data is denied, personal data for online advertising is disabled, including user_id and hashed first-party data for enhanced conversions. Click-id keyed conversion export into Ads is limited. Conversion pings go out as cookieless pings. If ad_storage is denied, no new advertising cookies are written, existing first-party advertising cookies are not read, and requests go through a different domain so old third-party cookies are not sent in headers. That is a working tag with a policy-shaped hole, not a 404.
The call people still ship
The setup guide wants a default on every page before any command that sends measurement, then an update as soon as the user interacts with the banner. Consent mode does not save the choice for you. Persist it yourself and send the same update on the next page. For EEA and UK traffic, the audit troubleshooting page tells advertisers using advanced consent mode to default ad_storage to denied for those regions.
A Google-certified CMP can push the v2 types if you actually enabled consent mode in the banner settings and you are on the latest integration. Google's own EEA article says that. It also says that if you maintain your own banner, you implement consent mode v2 yourself. A certified logo in the footer is not gtag('consent', 'update', { ad_user_data: 'granted' }).
Basic versus advanced is a separate product choice, not a synonym for v2. Basic blocks Google tags until the user interacts. If they refuse, no data goes to Google at all, not even the consent state, and Ads conversion modeling falls back to a general model. Advanced loads the tags with defaults, sends cookieless pings while denied, then upgrades the payload when granted. That can feed an advertiser-specific model. Legal picks the mode. Engineering still has to send four types either way.
IAB TCF is a different hop. For EEA traffic, Google's audit page says advertisers must send signals that reflect end-user preferences via consent mode or TCF. Floodlight still wants gdpr and gdpr_consent. Consent Mode does not write those query parameters. A granted ad_storage is not a TC String. Do not paste a TC String into a gtag consent object. Do not expect the CMP's TCF string to populate ad_user_data unless you mapped the purposes into the four types.
The default people left in production
Consent Mode v1 defaults. EEA measurement still needs ad_user_data and ad_personalization.
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied'
});
That object is a legal gtag consent default. It is also how a property fails the v2 upgrade. The two storage keys can be denied for EEA, which is what the audit page wants for ad_storage, and Google still cannot see whether the user allowed advertising user data or personalization. The gcd parameter on the collect request encodes the consent types. Tag Assistant will show you whether the v2 keys exist. A green CMP overlay will not.
If you already run consent mode and you do not do personalized advertising such as remarketing, Google's EEA article says you do not need to take action. If you need personalization, a certified CMP is supposed to update, and a custom banner must implement v2. If you have a banner and you never implemented consent mode, you implement it. If you block the Google tag from loading until the user clicks, Google cannot verify the choice, and the same article says that may lead to loss in data. After you ship the four types, conversion diagnostics is where the status shows up, with a delay that can be 48 hours and in some cases longer.
Names that do not translate
- A CMP banner screenshot is not ad_user_data or ad_personalization.
- ad_storage denied is not the same as ad_user_data denied. Storage and sending user data are different types.
- allow_ad_personalization_signals is not a substitute for implementing ad_personalization. If they conflict, personalization is disabled.
- TCF gdpr_consent is not a Consent Mode update. Floodlight still wants the IAB pair on the pixel URL.
- Basic consent mode is not v2. v2 is the two extra types on top of the storage keys.
- A 200 from googletagmanager.com is not consent mode implemented in conversion diagnostics.
- UK and Switzerland sit on the EU User Consent Policy audit page. The EEA help article is titled for EEA traffic. Do not mix the two scopes in a ticket.
What actually goes dark
The enforcement path is account and site specific. Google's audit page says the first step is contact, then a reasonable timeframe, then action on the accounts in scope. Those actions can include disabling ad personalization and remarketing, and conversion measurement. The May emails that named July 21 used the same list: personalized ads, non-personalized ads, remarketing, conversion tracking. If you got the letter and you did not send the four signals, that is the week Ads Manager lost the EEA join. If you did not get the letter, you still have an implementation problem whenever EEA users hit a property that never updates Consent Mode.
Do not confuse cookieless pings with a healthy conversion pipeline. When ad_user_data is denied, enhanced conversions and user-provided data do not flow. If ad_storage is denied, _gcl_* cookies are not the join they were last year. Modeling can fill some gaps once you meet Google's published click thresholds, but modeling is not a substitute for a missing v2 parameter. Conversion diagnostics will not show Consent mode is implemented if the types never left the page.
App traffic has its own SDK floor. The EEA article talks about tags for websites and SDKs for apps. The audit page wants screenshots of the first-layer CMP for Play Store apps sent to euucp-escalations@google.com after you fix it. Do not paste a web gtag default into a Firebase ticket and call it done. The four types still have to exist in the SDK consent API your version actually ships.
To keep using applicable tags/SDKs for measurement, and for ad personalization, and remarketing features, you must collect consent for use of personal data from end users based in the EEA and share consent signals with Google for these use cases.
Google Ads Help: Updates to consent mode for traffic in the EEA
What to do
Open Tag Assistant on an EEA VPN or a geo-spoofed test profile. Confirm the default fires before config, and that the update includes ad_user_data and ad_personalization, not only the two storage keys. Refuse the banner and accept the banner. The collect URLs should not be the same request. Then wait for conversion diagnostics. Consent mode is implemented is the status you want. Modeling active is a later threshold, not the first proof.
If you got an EU User Consent Policy audit email, fix the listed properties and tell Google through the form or euucp-escalations@google.com. The audit checklist is not only Consent Mode. It also wants a banner that mentions ads personalization on the first layer, a link to Google's Business Data Responsibility Site at business.safety.google/privacy/, and no advertising cookies before consent for EEA and UK. A v2 gtag call with a banner that never names ads personalization can still fail the policy review.
The contract page for the four types is the Consent Mode setup guide. This post is the market fact: noticed EEA properties started losing personalization, remarketing, and conversion tracking around July 21, 2025, and a banner without ad_user_data is still a miss. Pixellint is not affiliated with Google. Passing a linter means the artifact matches the published envelope. It does not mean Google Ads attributed the conversion, and it does not mean the account passed an EU User Consent Policy audit.
Checklist
- Send ad_storage, analytics_storage, ad_user_data, and ad_personalization. Default denied for EEA and UK, then update on choice.
- Do not treat a CMP screenshot as the signal. Read Tag Assistant and the gcd parameter.
- If you need remarketing or personalized ads, both ad_user_data and ad_personalization must be granted.
- Keep TCF on Floodlight as gdpr and gdpr_consent. That hop is not Consent Mode.
- Check conversion diagnostics after 48 hours. A 200 from the Google tag is not the status flag.
- If Google named sites in an audit email, reply on those properties. Enforcement is account and site specific after notice.
Sources
Contract pages
The dated argument is above. These pages are the field lists.