Google Consent Mode V2: Complete GA4 Setup Guide for 2026
Understand Google Consent Mode V2, the difference between basic and advanced mode, how to implement it via GTM, and the real impact on your GA4 data quality.
If your website targets users in the EU, UK, or EEA, Google Consent Mode V2 is not optional. Since March 2024, it's been a requirement for using Google Ads personalisation and remarketing features in those regions. For GA4, proper Consent Mode configuration directly affects whether your data reflects reality or a filtered, distorted version of it.
This guide explains what Consent Mode V2 actually does, the difference between basic and advanced implementation, how to set it up via GTM, and how to assess the impact on your data quality.
What Consent Mode V2 Does
Google Consent Mode is a framework that tells Google tags how to behave based on a user's cookie consent choices. When a user declines consent, Google's tags don't disappear — instead, they send "cookieless pings" that contain minimal data (no identifiers, no cookies). Google then uses statistical modelling to fill in the measurement gaps.
Consent Mode V2 added two new consent types to the original two:
| Consent Type | Controls |
|---|---|
| `analytics_storage` | GA4 measurement cookies and identifiers |
| `ad_storage` | Advertising cookies (Google Ads, floodlight) |
| `ad_user_data` | **NEW** — Sending user data to Google for ad targeting |
| `ad_personalization` | **NEW** — Personalised advertising, remarketing |
The two new types are specifically about ad targeting and remarketing data. Without implementing V2 (both new types), your remarketing audiences in EEA will be incomplete and your Google Ads personalisation features will be restricted.
Basic Mode vs. Advanced Mode
This is the most important decision in your Consent Mode implementation.
Basic Mode
In basic mode: - Google tags do not load at all until the user consents - Users who decline consent generate zero data — no cookieless pings, no modelled conversions - Your GA4 traffic data for non-consenting users is completely invisible - This is the more privacy-conservative approach
Basic mode is simpler to implement and has the smallest privacy risk, but it significantly underrepresents your actual traffic in GA4 (and in Google Ads for bidding).
Advanced Mode
In advanced mode: - Google tags load immediately for all users - For consenting users: full tracking with cookies and identifiers - For non-consenting users: cookieless pings with minimal data — no cookies, no personal identifiers, just signal that a page_view or conversion occurred - Google models the non-consenting traffic to give you estimated totals
Advanced mode gives you significantly more complete data. Google's modelling typically recovers 60-80% of non-consenting user behaviour in aggregate. This means your GA4 totals and your Google Ads bidding algorithms are working with near-complete data rather than only the consenting segment.
For most businesses, advanced mode is the right choice — it's more data-complete while still respecting user consent choices for personalisation and identification.
Implementing Consent Mode V2 via GTM
GTM is the recommended implementation path for Consent Mode V2 unless you have a direct gtag.js implementation.
Step 1: Set Default Consent State
You need to set the consent state to "denied" (for relevant types) before any Google tags load. This is done via a GTM consent initialization tag.
In GTM, create a new tag: - Tag type: Consent Initialization - All Pages (this is a special GTM template) - Or use the Google tag (gtag) with consent defaults
Configure default states:
// This runs before any Google tags gtag('consent', 'default', { 'analytics_storage': 'denied', 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'wait_for_update': 500 // wait 500ms for CMP to update consent });javascript
The wait_for_update parameter gives your Consent Management Platform (CMP) time to check for a stored consent decision and update the state before the 500ms window closes.
For users who have already consented (returning visitors), their consent state is stored in a cookie by your CMP and should be picked up automatically.
Step 2: Connect Your CMP
Your CMP (OneTrust, Cookiebot, Usercentrics, Didomi, or others) must be configured to call gtag('consent', 'update', {...}) when a user makes a consent decision.
Most major CMPs have a GTM template or pre-built GTM integration that handles this. In GTM:
- Go to Templates → Search Gallery
- Search for your CMP provider (e.g., "Cookiebot" or "OneTrust")
- Import their official template
- Configure the template with your CMP API key or domain group IDs
- Set the trigger to Consent Initialization - All Pages
The CMP template will fire before other tags and will:
- Check for stored consent (returning users)
- Display the consent banner (new users)
- Call gtag('consent', 'update', {...}) when the user makes a choice
Step 3: Verify the Consent State Update
Use GTM Preview Mode + the GA4 DebugView to verify:
- Open your site in GTM Preview
- Observe the Consent Initialization tag fires first
- Accept all consent in the banner
- Verify a "Consent Update" event appears in GA4 DebugView
- Check that `analytics_storage`, `ad_storage`, `ad_user_data`, and `ad_personalization` all update to "granted"
Repeat by declining all consent and verifying the state stays "denied" and only cookieless pings appear in debug data.
Step 4: Enable Consent Mode in GA4
In GA4 Admin → Data Streams → select your web stream → More Tagging Settings → Consent settings. Verify that Consent Mode is showing as "Enabled" with all four signal types.
Step 5: Register with Your CMP for Google's Consent Banner Requirements
If you're using a Google-certified CMP, you need to ensure your CMP is listed under Google's Consent Management Platform Partner program. In Google Ads and GA4, Google displays a warning if it detects EEA traffic but cannot detect a Consent Mode implementation.
How Consent Mode Affects Your GA4 Data Quality
Modelled Conversions
When Consent Mode is active and users decline consent, GA4 uses machine learning to model those users' behaviour. The modelled data appears alongside observed data in GA4 reports. You can see the split in GA4's Transparency section in some reports.
The modelling is statistical — it's accurate in aggregate but cannot tell you individual-level details about non-consenting users. For most reporting and bidding purposes, this is fine.
Impact on Conversion Volumes
With Advanced Consent Mode, you'll typically see: - More conversions in GA4 vs. Basic Mode (modelled conversions added) - Smoother trends because consent-refusal spikes don't create artificial drops in data - Better Google Ads performance because Smart Bidding has more conversion signal to work with
In regions with high consent refusal rates (Germany, France, and Netherlands tend to have the lowest consent rates), Advanced Mode can recover 20-40% more conversion signal than Basic Mode.
Data Quality Indicator
GA4 sometimes shows a shield icon in reports indicating that data thresholds or modelling is affecting the numbers. This is expected with Consent Mode — don't treat it as an error.
Common Consent Mode V2 Mistakes
Setting consent defaults after tags load If your Consent Mode default state is set in a regular GTM tag rather than a Consent Initialization trigger, other Google tags may have already loaded and set cookies before the default is applied. Consent defaults must be the first code to run.
Not implementing all four consent types
Some implementations still only use analytics_storage and ad_storage — the V1 types. The V2 types (ad_user_data and ad_personalization) are required for EU compliance and for Google Ads personalisation to function. Missing them triggers compliance warnings in Google Ads.
Using basic mode when you don't need to Many teams default to basic mode because it sounds more privacy-safe. But basic mode means your GA4 data significantly undercounts EEA traffic, and your Google Ads bidding algorithms are starved of signal. Unless you have specific legal requirements mandating no-load-before-consent, advanced mode is the right choice for data quality.
Not testing consent decline flows Teams test the "accept all" consent path obsessively. Almost no one tests the "decline all" path. Make sure your tracking plan works correctly (no cookies set, only cookieless pings) when users decline.
Using the Consent Mode Optimizer
The Consent Mode Optimizer tool at GA4Audit.ai checks your GA4 property for:
- Whether Consent Mode V2 is properly configured
- Which consent types are being signalled correctly
- The ratio of modelled to observed data in your conversions (if too high, your Advanced Mode setup may have issues)
- Regions where high consent-refusal rates are significantly impacting data completeness
- Whether your CMP is on Google's certified partner list
A poorly configured Consent Mode setup can quietly skew your entire GA4 dataset. The optimizer surfaces these issues against your live property data.
---
Connect your GA4 and run a health check in 60 seconds at GA4Audit.ai.
Check your GA4 implementation
Run a free AI-powered audit to see how your tracking stacks up.
Start Free Audit