Skip to main content
Back to Guides
Compliance13 min read

Google Consent Mode v2: Complete Implementation Guide

Learn how to implement Google Consent Mode v2 on your website. Configure ad_personalization and ad_user_data signals to maintain ad performance while fully respecting user privacy choices under GDPR.

What Is Google Consent Mode v2?

Google Consent Mode v2 is a framework that lets your website communicate user consent choices directly to Google's advertising and analytics tags. When a user declines cookies, Consent Mode tells Google's scripts to operate in a restricted, cookieless mode — rather than simply blocking them entirely.

Launched in March 2024, v2 added two new required consent signals: ad_personalization and ad_user_data. Without these signals, Google Ads campaigns targeting EU users may lose access to conversion modeling and audience features — directly impacting your ad ROI.

Mandatory for EU Ad Campaigns

As of March 2024, Google requires Consent Mode v2 for all advertisers using Google Ads or Google Analytics 4 in the European Economic Area (EEA). Failure to implement it correctly will reduce your conversion visibility and hurt remarketing performance.

The Six Consent Signals

Consent Mode v2 uses six boolean signals to communicate user choices to Google tags. Each must be set to either granted or denied.

Google Consent Mode v2 Signals
SignalControlsNew in v2
analytics_storageGA4 measurement cookies and session dataNo
ad_storageGoogle Ads conversion and remarketing cookiesNo
ad_personalizationRemarketing and personalized advertisingYes
ad_user_dataSending user data to Google for ad targetingYes
functionality_storageCookies needed for site functionalityNo
security_storageSecurity-related cookies (e.g. bot detection)No

Basic vs Advanced Consent Mode

Google offers two implementation modes with very different implications for your data quality:

Basic vs Advanced Consent Mode

FeatureBasic ModeAdvanced Mode
Tags fire before consentNo — tags blocked until consentYes — tags fire immediately in restricted mode
Conversion modelingLimited (no pre-consent data)Full (cookieless pings collected)
Bounce rate dataLost for non-consenting usersPartially recovered via modeling
Implementation complexitySimpleModerate — requires gtag default before tags
Recommended for EU sitesMinimum viableStrongly recommended

Advanced Mode Recovers Up to 65% of Lost Conversions

Google reports that advertisers using Advanced Consent Mode recover on average 65% of conversions that would otherwise be lost due to cookie refusals. This is achieved through modeled conversions based on anonymized, aggregated signals from consenting users.

Implementation: Step-by-Step

Follow these steps to correctly implement Google Consent Mode v2 using CookieBeam.

Google Consent Mode v2 Setup

1

Add the gtag.js snippet with default consent state

Place the Google tag with a default consent state before any other scripts in your <head>. All signals must default to denied for EU users to ensure GDPR compliance.

2

Install CookieBeam on your site

Add the CookieBeam embed code to your site. CookieBeam will automatically detect user consent and update the Consent Mode signals when the user interacts with the banner.

3

Enable Consent Mode v2 in CookieBeam settings

In your CookieBeam dashboard, navigate to Integrations → Google Consent Mode and toggle on v2 mode. This activates the ad_personalization and ad_user_data signal updates.

4

Verify signals in Google Tag Manager

Use GTM's Preview mode to confirm that gtag('consent', 'update', ...) is fired correctly after user consent. Check the Variables tab for consent state values.

5

Test with Google's Consent Mode debugger

Add ?gcm_debug=1 to your URL and open the browser console. Google's debug output shows the current consent state for all six signals in real time.

Code Implementation

Here is the correct code order for Advanced Consent Mode v2. The default consent declaration must come before the Google tag library loads.

index.html
consent-update.js

Consent Mode v2 Compliance Checklist

  • Default all signals to 'denied' before gtag.js loads

    Required for EEA users under GDPR. Use 'wait_for_update' to prevent race conditions.

  • Include both new v2 signals

    ad_personalization and ad_user_data must both be set, not just the v1 signals.

  • CookieBeam fires consent update on user interaction

    The consent 'update' call must fire immediately after the user accepts or declines.

  • Verified in GTM Preview mode

    Confirm consent state changes appear as expected in the data layer.

  • Google Ads conversion actions linked to GA4

    For best modeling, import GA4 conversions into Google Ads rather than using standalone tags.

  • Consent Mode enabled in GA4 property settings

    Navigate to Admin → Data collection → Consent Mode and enable it for your property.

You're Ready for Google Consent Mode v2

With CookieBeam handling signal updates automatically, you comply with Google's requirements and preserve conversion modeling for your EU ad campaigns. Monitor your GA4 Consent Overview report under Admin → Data collection to track consent rates.

Troubleshooting Common Issues

Even with careful implementation, Google Consent Mode v2 can produce unexpected behaviour. Below are the most frequently reported problems and how to resolve them.

Signals Not Updating After User Consent

If your GA4 or Google Ads tags continue firing in restricted mode after a user accepts cookies, the most common cause is a race condition: the gtag('consent', 'update', ...) call from CookieBeam is firing before the Google tag library has fully loaded. To fix this, ensure the wait_for_update parameter is set to at least 500 in your default consent declaration and that the Google tag script tag appears immediately after the default consent block.

GA4 Showing Zero Engaged Sessions

If you suddenly see zero engaged sessions or a dramatic drop in GA4 data, check that analytics_storage is being set to granted on consent acceptance — not just ad_storage. Many implementations mistakenly update only the ad-related signals and omit analytics_storage.

Conversion Modeling Not Appearing in Google Ads

Modeled conversions appear in Google Ads under a separate 'Modeled' column only after 30+ days of Advanced Consent Mode data and a sufficient baseline of observed conversions. If the column is missing, verify that Advanced Mode (not Basic Mode) is active and that you have at least 50 observable conversions per month.

GTM Preview Shows Consent State as Undefined

This typically means the default consent declaration is inside a DOMContentLoaded event handler or is loaded asynchronously after the Google tag. Move the entire default consent block to a synchronous inline <script> tag in the <head>, before any external script tags.

Never Set Default Consent to 'Granted' for EEA Users

A surprisingly common misconfiguration is using a region-based default that accidentally grants consent to EEA users. Always verify your region array excludes EU country codes. The safest approach is to default all signals to denied globally and grant only for specific non-EEA regions like ['US', 'CA']. CookieBeam's Consent Mode integration handles this region logic automatically, but verify it in GTM Preview if you have custom gtag code elsewhere on the page.

Consent Mode vs Cookie Blocking: Key Differences

Many publishers ask whether they should implement Google Consent Mode or simply block Google's tags entirely when a user declines. The answer depends on your priorities, but understanding the technical distinction is essential before making that decision.

When you block a tag entirely, no data whatsoever reaches Google — not even anonymous, aggregated signals. The result is a complete loss of conversion visibility for non-consenting users, and Google Ads cannot model what it cannot observe.

When you implement Consent Mode in Advanced mode, declined users still cause Google's tags to fire in a restricted, cookieless state. These 'cookieless pings' are anonymous — they contain no personal identifiers — and Google uses them as inputs to its conversion modeling algorithms. This is how Advanced Consent Mode recovers up to 65% of otherwise-invisible conversions.

Consent Mode vs Full Tag Blocking

AspectFull Tag BlockingConsent Mode (Advanced)
Data sent on refusalNoneAnonymous cookieless pings only
Conversion modelingNot possibleAvailable — recovers up to 65% of conversions
GDPR complianceCompliant (overcautious)Compliant — no personal data sent without consent
Impact on Google Ads optimisationSignificant loss of signalMinimal — Smart Bidding adapts using modeled data
Audience list buildingNo data for non-consenting usersAggregated signals support audience modeling
Recommended approachOnly if legal/DPO requires itYes — best balance of compliance and ad performance

From a legal standpoint, both approaches are GDPR-compliant when implemented correctly. The DPAs have confirmed that sending anonymous, non-personal cookieless pings does not constitute personal data processing and therefore does not require consent. The key regulatory requirement is that no cookies are set and no personal data is transmitted without explicit consent — Consent Mode in Advanced mode satisfies both conditions.

How Conversion Modeling Works

Advanced Mode Only

Google's conversion modeling is a machine-learning process that estimates the number of conversions that would have been observed had all users consented to tracking. It works by identifying statistical patterns between observable (consenting) user behaviour and the anonymous signals received from non-consenting users.

Here is the modeling pipeline in simplified terms:

  1. Baseline establishment: Over a 30-day window, Google builds a model from users who did consent, correlating their cookieless ping signatures (device type, geography, session depth) with eventual conversions.
  2. Pattern matching: For non-consenting users, Google receives cookieless pings that contain the same non-personal signals. The model assigns a probability of conversion to each ping cluster.
  3. Aggregate reporting: Modeled conversions are added to your observed conversions in Google Ads reports. They are never attributed to individuals — only to campaign performance in aggregate.
  4. Smart Bidding integration: The modeled data feeds directly into Smart Bidding algorithms (Target CPA, Target ROAS), allowing Google to optimise bids even when a significant share of conversions are modeled rather than directly observed.

The accuracy of conversion modeling improves with scale. Sites with fewer than 50 conversions per month will see limited modeling benefit, while high-volume advertisers (500+ monthly conversions) typically recover the full 65% of otherwise-invisible conversions that Google reports as the average.

It is important to understand that modeled conversions are estimates, not exact figures. Google uses a confidence interval system: modeled data is only shown in reports when the statistical confidence exceeds a minimum threshold. If your conversion volume is too low for reliable modeling, Google will show 'N/A' rather than risk displaying misleading figures.

For advertisers, the practical implication is that your reported CPA or ROAS figures in a post-Consent Mode world reflect a blended metric: directly observed conversions plus statistically modeled ones. This is transparent in GA4 and Google Ads reporting, where you can separate observed from modeled in custom reports.

Monitoring Your Consent Rate in GA4

1

Open GA4 Admin and navigate to Data Collection

In GA4, click the Admin cog in the bottom-left corner. Under the Property column, select Data collection and modification → Data collection. Scroll down to the Consent mode section and verify that Consent Mode is shown as active for your property.

2

Open the Consent Overview report

In the main GA4 navigation, go to Reports → Acquisition → Consent overview. If this report is not visible, it may need to be added via the Library. This report shows the percentage of sessions with consent granted, denied, or unset for each consent signal over time.

3

Review the analytics_storage and ad_storage consent rates

The two most important signals for data quality are analytics_storage (affects GA4 measurement) and ad_storage (affects Google Ads attribution). A healthy consent rate for a European audience typically ranges from 55–75%. Rates below 40% suggest your banner may have UX issues or overly intrusive copy.

4

Segment by geography to identify regional patterns

Apply a secondary dimension of Country or Region to the Consent Overview report. Consent rates vary significantly by country — German users tend to decline at higher rates than French or Spanish users. Use regional data to inform localised banner copy and design decisions.

5

Set up a custom alert for consent rate drops

In GA4, create a custom insight alert under Insights → Create that triggers when the 7-day consent rate drops more than 10 percentage points below the prior period. A sudden consent rate drop can indicate a banner rendering issue, a CMP script error, or an unintended change to your consent defaults.

6

Review modeled vs observed conversion split in Google Ads

In Google Ads, navigate to Campaigns → Columns → Modify columns → Conversions and add the Modeled conversions column. A modeled share above 60% of total conversions suggests your consent rate is low and it may be worth investing in banner optimisation to improve direct observation quality.

Frequently Asked Questions

Is Google Consent Mode v2 mandatory for all websites?

Consent Mode v2 is mandatory for all advertisers running Google Ads campaigns that target users in the European Economic Area (EEA), including Google Search, Display, Shopping, and YouTube campaigns. It is also strongly recommended for any website using Google Analytics 4 with EU/EEA visitors, as without it your GA4 data quality will degrade significantly due to consent-based data gaps. Websites that have no EU traffic and no Google Ads campaigns targeting EEA users are technically exempt, but implementing Consent Mode remains best practice given the ease of global implementation via CookieBeam.

What is the difference between Basic and Advanced Consent Mode?

In Basic Mode, Google's tags are completely blocked until the user interacts with the consent banner. No data is sent to Google before consent is given. In Advanced Mode, Google's tags fire immediately but in a restricted, cookieless state — sending anonymous pings that cannot be tied to individual users. These anonymous pings enable conversion modeling, which can recover up to 65% of conversions that would otherwise be invisible. Advanced Mode requires more careful implementation (the default consent state must be set before the Google tag loads) but delivers significantly better ad performance for EU campaigns.

Does Consent Mode v2 mean Google can track users who declined?

No. When a user declines consent and Consent Mode is active, Google receives only anonymous, cookieless signals — no persistent identifiers, no cross-site tracking, no personal data. The Data Protection Authorities in the EU have reviewed Google's Consent Mode implementation and confirmed that Advanced Mode operation on declined users does not constitute personal data processing under GDPR. The cookieless pings are equivalent to server-side log data: they record that a request happened, but cannot identify who made it.

How do I verify Consent Mode is working correctly after implementing CookieBeam?

The most reliable verification method is Google's built-in Consent Mode debugger. Add ?gcm_debug=1 to any page URL on your site and open the browser console. You will see a real-time readout of all six consent signal states as they change. Additionally, use Google Tag Manager's Preview mode to inspect the consent commands in the data layer: you should see a consent default event firing before the Google tag loads, followed by a consent update event after the user interacts with the CookieBeam banner. CookieBeam's dashboard also includes a Consent Mode health check under Integrations → Google Consent Mode → Test connection.

Can I implement Consent Mode without Google Tag Manager?

Yes. Google Tag Manager is not required. You can implement Consent Mode directly via the gtag.js library with inline JavaScript. The key requirement is that the default consent declaration appears in a synchronous <script> block before the <script async src="https://www.googletagmanager.com/gtag/js"> tag. CookieBeam provides a direct gtag.js integration mode in addition to its GTM container template, and the setup is documented step-by-step in the CookieBeam dashboard under Integrations → Google Consent Mode → Direct gtag.

What happens to my Google Ads campaigns if I don't implement Consent Mode v2?

Google has been progressively restricting functionality for advertisers who have not implemented Consent Mode v2 in the EEA. Observed consequences include: conversion data gaps for users who declined consent (no modeling to fill the gap), reduced Smart Bidding signal quality leading to higher CPAs, loss of remarketing audience eligibility for non-consenting users, and in some cases account-level warnings in Google Ads. While Google has not announced a hard cutoff or penalty for non-compliance, the functional degradation of ad performance creates a strong commercial incentive to implement v2 regardless of regulatory requirements.

How does CookieBeam automate Consent Mode v2 implementation?

CookieBeam handles the entire Consent Mode v2 signal lifecycle: it sets the correct default consent state on page load (before any Google tags fire), listens for user interactions with the consent banner, and immediately fires the appropriate gtag('consent', 'update', ...) call with the correct signal values mapped to the categories the user accepted or declined. It also handles edge cases including returning visitors (whose stored consent is re-signalled on each page load), consent withdrawal (which triggers an update to denied states), and partial consent (e.g. analytics accepted but marketing declined). All of this requires no custom code — it is configured entirely in the CookieBeam dashboard.

Google Consent Mode v2: Complete Implementation Guide | CookieBeam | CookieBeam