Skip to main content
Back to Guides
Basics12 min read

What Is Google Consent Mode v2?

Consent Mode v2 lets your site respect user consent while maintaining measurement. Learn the new signals (ad_user_data, ad_personalization) and how CookieBeam integrates via GTM.

Google Consent Mode is a framework that adapts how Google tags behave based on the consent choices of your users. Version 2 expands the original signals with two additional controls to better align with EU regulatory requirements.

Consent Signals

SignalPurpose
ad_storageAdvertising cookies/storage
analytics_storageAnalytics cookies/storage
ad_user_dataWhether user data can be sent for ads purposes
ad_personalizationWhether personalized ads are allowed

Why It Matters

For users in the EEA/UK, Google requires valid consent for personalized ads and measurement. Consent Mode v2 lets you keep Google Ads/Analytics working in a privacy-aware way by sending the appropriate consent state to Google tags.

CookieBeam Integration

  • Sets Consent Mode defaults early

    Avoid firing tags before consent

  • Updates all four signals

    ad_storage, analytics_storage, ad_user_data, ad_personalization after user action

  • Flexible installation

    Works with a single script or via the CookieBeam template in the GTM Template Gallery

Basic Mode vs Advanced Mode: Key Differences

Google Consent Mode v2 can be implemented in two distinct configurations: Basic Mode and Advanced Mode. Understanding the difference is essential because they produce very different outcomes for your measurement and advertising data.

Basic Mode

In Basic Mode, all Google tags are completely blocked from firing until the user has actively given consent. Nothing is sent to Google before the consent decision — not even anonymous signals. This approach is straightforward to implement and requires minimal configuration beyond setting the default consent state to denied and ensuring your tag triggers are conditional on consent being granted.

The trade-off is significant: because no data reaches Google during the pre-consent period, Google has no anonymous signals to work with. This means conversion modeling is not available in Basic Mode. If a large share of your users decline consent, those conversions are simply invisible to Google Ads and GA4, with no statistical recovery possible.

Advanced Mode

In Advanced Mode, Google tags fire immediately on page load but operate in a restricted, cookieless state. When a user has not yet consented — or actively declines — Google's tags send anonymous cookieless pings rather than full measurement events. These pings contain no cookies, no persistent user identifiers, and no personal data. They are statistically equivalent to a standard web server access log entry.

Google feeds these cookieless pings into its conversion modeling algorithm, which uses machine learning to estimate the conversions that would have been observed had all users consented. Google's published average recovery rate is up to 65% of otherwise-invisible conversions, though actual recovery varies by conversion volume and vertical.

The critical implementation requirement for Advanced Mode is timing: the gtag('consent', 'default', {...}) call must execute before the Google tag script loads. This means it must be placed in a synchronous <script> block in the HTML <head>, not loaded asynchronously. If the default declaration fires after the Google tag has already loaded, Advanced Mode falls back to Basic Mode behaviour. CookieBeam's integration handles this automatically.

Basic vs Advanced Consent Mode

AspectBasic ModeAdvanced Mode
Tag firing on page loadBlocked until consent givenFires immediately in restricted state
Data sent before consentNoneAnonymous cookieless pings only
Personal data on declineNoneNone (no cookies, no identifiers)
Conversion modelingNot availableAvailable — up to 65% recovery
Implementation complexitySimpleRequires early default declaration
Recommended forSites preferring maximum cautionMost websites — better ad performance

How CookieBeam Implements All Four Consent Signals

CookieBeam manages the full lifecycle of all four Consent Mode v2 signals automatically, from the moment a user first lands on your site to every subsequent return visit. Here is how that lifecycle works in practice.

When a first-time visitor arrives, the CookieBeam script — loaded in the <head> before any other third-party scripts — immediately sets the default consent state. All four signals (ad_storage, analytics_storage, ad_user_data, and ad_personalization) are defaulted to denied for users in the EEA and UK, in compliance with Google's EU User Consent Policy and GDPR. For users outside these regions, the default can be configured in the CookieBeam dashboard.

With the default state in place, Google's tags are now able to fire (in Advanced Mode) or remain blocked (in Basic Mode) according to that default. The user then sees the CookieBeam consent banner and makes their choice.

On consent interaction, CookieBeam fires a gtag('consent', 'update', {...}) call with the precise signal values that correspond to the categories the user accepted or declined. For example, if the user accepts analytics but declines advertising, analytics_storage is set to granted while ad_storage, ad_user_data, and ad_personalization remain denied. Google's tags receive this update and immediately adjust their behaviour — switching from cookieless pings to full measurement for analytics, while continuing to send only anonymous pings for advertising.

The consent decision is stored in a first-party cookie on the user's browser. On every subsequent page load, CookieBeam reads this stored state and fires the consent update before tags can operate in their default denied state. This means returning visitors never experience a gap where tags fire without the correct consent state applied — a common source of data discrepancies in manual implementations.

How to Verify Consent Mode v2 is Working

1

Use GTM Preview Mode

Open Google Tag Manager, click Preview, and enter your website URL. In the preview panel, look for 'consent' events in the Tag Assistant panel. You should see a 'consent default' event firing before any tags load, followed by a 'consent update' event after you interact with the CookieBeam banner. The consent state column will show 'denied' before interaction and the appropriate mix of 'granted'/'denied' after. If no consent default event appears, or if it fires after other tags, your default declaration is not placed early enough in the page head.

2

Enable the Consent Mode Debug View

Add the query parameter ?gcm_debug=1 to any page URL on your site and open the browser's developer console (F12 → Console). Google's consent mode debug output will appear, showing the current state of all six consent signals in real time as they change. This is the fastest way to verify signal values without needing GTM access. Look for log lines beginning with [Consent] — these will confirm each signal's current value and update when you interact with the banner.

3

Check GA4 Admin Consent Status

In Google Analytics 4, navigate to Admin → Data Collection and Modification → Data Collection. Scroll to the Consent Mode section. GA4 will show whether Consent Mode is detected as active for your property, and will display the proportion of sessions where consent was granted, denied, or unset. It can take 24–48 hours for this status to update after a new CookieBeam installation, so check back the following day if the status shows as not detected immediately after setup.

4

Review the GA4 Consent Overview Report

In GA4 Reports, go to Acquisition → Consent Overview (you may need to add it via the Library). This report shows consent rates over time for analytics_storage and ad_storage. A healthy EU consent rate is typically 55–75%. Rates below 40% suggest your banner may have UX or positioning issues — consider reviewing your banner copy, button contrast, and whether the decline option is appropriately presented. Rates above 85% for EEA users may indicate the banner is not correctly targeting the right user regions.

Conversion Modeling: How Consent Mode Recovers Lost Data

One of the most commercially significant capabilities of Consent Mode v2 Advanced Mode is conversion modeling — Google's machine-learning approach to estimating conversions that would have been recorded if all users had consented to tracking.

How Modeled Conversions Work

Google builds its conversion model from the population of users who did consent. By analysing the patterns between cookieless pings (sent by non-consenting users) and full conversion events (observed for consenting users with similar behaviour), Google constructs a statistical model that can estimate the likely conversion outcomes for the non-consenting segment. These estimates are called modeled conversions.

Where to See Modeled Conversions in Google Ads

In Google Ads, navigate to Campaigns → Columns → Modify columns → Conversions, then add the Modeled conversions column. This will show you the volume of conversions that have been statistically recovered by Google's modeling, broken out separately from directly observed conversions.

The 65% Recovery Rate

Google's published average across advertisers using Advanced Mode is recovery of up to 65% of conversions that would otherwise be invisible. This figure is an average — actual recovery depends heavily on your monthly conversion volume. Sites with fewer than 50 conversions per month have insufficient signal for reliable modeling; high-volume advertisers with thousands of monthly conversions see the greatest benefit and closest-to-average recovery rates.

Smart Bidding Integration

Modeled conversions feed directly into Google's Smart Bidding algorithms — including Target CPA and Target ROAS. This is commercially critical: without modeled conversions, Smart Bidding makes decisions on an incomplete data set, often resulting in under-bidding or misallocated budget. With Consent Mode v2 Advanced Mode active, Smart Bidding continues to optimise effectively even when a substantial share of your users decline consent.

Common Mistake: Default Consent Set to 'Granted' for EEA Users

A surprisingly common misconfiguration is accidentally granting consent to EEA users in the default declaration — either through a missing region restriction or an incorrect region array. This typically occurs when developers copy a default consent snippet intended for non-EEA regions and apply it globally, or when a region code typo means the EEA restriction is never matched.

Always verify that your default declaration explicitly sets a denied state for EEA and UK regions. The safest approach is to default all signals to denied globally, then add granted overrides for specific non-EEA regions (for example, US, CA, AU) if your business requires pre-granted consent outside the EEA. CookieBeam handles this region detection automatically using the visitor's IP geolocation, but if you have any custom gtag code on your pages, verify in GTM Preview mode that no manual default is overriding CookieBeam's declaration.

Installing Consent Mode v2 Without Google Tag Manager

Google Tag Manager is by far the most common integration path for Consent Mode v2, but it is not a requirement. If your site uses the gtag.js library directly — common on platforms like Shopify, Squarespace, or custom-built sites — you can implement Consent Mode v2 without GTM.

The Direct gtag.js Approach

The key requirement is identical to the GTM approach: the default consent declaration must fire before the Google tag script loads. In a direct gtag.js setup, this means placing a synchronous inline script block in the HTML <head> above the async gtag script tag. This inline block initialises the window.dataLayer array (if not already present) and calls the consent default. Because it is synchronous and inline, it is guaranteed to execute before the browser fetches and runs the async gtag script that follows it.

The CookieBeam script tag then follows both of these — it reads the stored consent state (if any) and fires the appropriate consent update on load, or waits for user interaction with the banner on a first visit.

CookieBeam's Direct gtag Mode

CookieBeam provides a direct gtag integration mode in the dashboard under Integrations → Google Consent Mode → Direct gtag setup. This screen generates the exact two script tags you need — the synchronous inline default block and the CookieBeam banner script tag — pre-configured for your property. Implementation requires no custom coding: copy the two snippet blocks and paste them into your page template's <head> section in the order shown.

Frequently Asked Questions

Is Google Consent Mode v2 mandatory?

Consent Mode v2 is mandatory for all Google Ads advertisers targeting users in the EEA or UK, under Google's EU User Consent Policy, which took effect in March 2024. It is also strongly recommended for Google Analytics 4 users with EU/EEA traffic, as without it a growing share of conversions will be unobservable. Outside the EEA and UK, implementing Consent Mode is best practice but not enforced by Google policy. Note: some Google products — including AdSense, Ad Manager, and AdMob — additionally require use of a Google-certified CMP (part of the IAB Europe TCF) for EEA traffic. CookieBeam is not IAB TCF-certified and does not fulfil this specific requirement for those products.

Does Consent Mode mean Google tracks users who declined cookies?

No. When a user declines consent and Consent Mode is active in Advanced Mode, Google's tags fire in a restricted cookieless state — no cookies are set, no persistent identifiers are used, and no personal data is transmitted. The anonymous cookieless pings sent in this state contain only aggregate, non-identifiable signals and are functionally equivalent to standard web server access log entries. EU data protection authorities have reviewed Google's Advanced Mode cookieless pings and confirmed that they do not constitute personal data processing under GDPR, and therefore do not require prior consent. Users who decline are not tracked, profiled, or identified in any way.

Can I implement Consent Mode v2 without Google Tag Manager?

Yes. Google Tag Manager is optional. You can implement Consent Mode v2 directly using the gtag.js library by placing a synchronous inline script block in your HTML head that sets the default consent state before the async gtag script tag loads. The synchronous placement is critical — it guarantees the default fires before Google's tag can operate. CookieBeam's direct gtag integration mode, available in the dashboard under Integrations → Google Consent Mode → Direct gtag setup, provides the exact script snippets needed and requires no custom coding beyond pasting two script tags into your page template in the correct order.

How do I verify Consent Mode v2 is working after installing CookieBeam?

Use three verification methods in combination: (1) Add ?gcm_debug=1 to any page URL and check the browser console for real-time signal readouts as you interact with the banner; (2) Use GTM Preview mode and inspect the consent events in the Tag Assistant panel — you should see a 'consent default' event before any other tag fires; (3) Check GA4 Admin → Data Collection → Consent mode status, which confirms whether GA4 has detected Consent Mode as active for your property. CookieBeam's dashboard also includes a Consent Mode health check under Integrations → Google Consent Mode → Test connection, which validates that all four signals are being correctly declared and updated.

What is the difference between ad_user_data and ad_personalization signals?

These are the two new signals introduced in Consent Mode v2, added to the two that existed in v1 (ad_storage and analytics_storage). ad_user_data controls whether user data — such as device identifiers or hashed email addresses used for audience matching — can be sent to Google for advertising measurement purposes. ad_personalization controls whether that data can then be used for personalised ad targeting, including remarketing lists and similar audiences. A user can consent to ad_user_data (enabling measurement attribution) while declining ad_personalization (blocking personalised targeting), providing granular control over how their data is used. CookieBeam maps both of these signals correctly to your configured consent categories automatically, with no additional setup required.

What Is Google Consent Mode v2? | CookieBeam | CookieBeam