Back to Blog
Technical

Google Consent Mode v2: The Definitive Implementation Guide for 2025

Sarah Chen, Privacy EngineerNovember 30, 202518 min read
GoogleConsent ModeGTMGDPRImplementation

TLDR: Since March 2024, no Consent Mode v2 = no remarketing audiences from EU users. Your Google Ads campaigns are running on incomplete data. Advanced mode recovers 70% of lost conversions through modeling. Here's the implementation guide.

Read full summary Step-by-step implementation guide for Consent Mode v2 including Basic vs Advanced mode, consent state mapping, debugging techniques, and verifying proper integration with Google Ads and GA4. *Summary by Claude AI*
## The €2.1 Million Ad Budget That Stopped Working In March 2024, a European e-commerce company noticed their Google Ads performance had collapsed. ROAS dropped from 380% to 120% over six weeks. Their remarketing campaigns—previously their best performers—stopped converting entirely. The cause: they hadn't implemented Consent Mode v2. When Google's deadline passed, their EU remarketing audiences stopped building. Conversions weren't being attributed. Smart Bidding had lost the signal data it needed to optimize. Their €2.1 million quarterly ad budget was burning through campaigns that couldn't target effectively. The fix took two days of implementation work. Recovery took three months—the time needed to rebuild audience pools and retrain bidding algorithms. Their competitors who had implemented Consent Mode v2 before the deadline captured market share during that gap. ## What is Google Consent Mode v2? Google Consent Mode v2 is an API framework that communicates your users' cookie consent preferences to Google tags (Analytics, Ads, and Marketing Platform). Since **March 2024**, **it has been mandatory for all advertisers targeting users in the European Economic Area (EEA)**. The update introduced two critical parameters: **ad_user_data** (controlling whether user data can be sent to Google for advertising purposes) and **ad_personalization** (controlling whether personalized advertising is enabled). Without proper Consent Mode v2 implementation, your Google Ads campaigns lose the ability to build audiences and remarketing lists from EEA users, and your conversion tracking is severely impacted. ## Why Google Consent Mode v2 Matters in 2025 The digital advertising landscape has fundamentally changed. Privacy regulations like GDPR, the Digital Markets Act (DMA), and enhanced browser tracking protections mean that advertisers can no longer rely on traditional cookie-based tracking. Google Consent Mode v2 is Google's answer to maintaining measurement capabilities while respecting user privacy choices. ### Key Benefits of Proper Implementation 1. **Conversion Recovery**: Advanced mode with conversion modeling can recover up to 70% of conversions that would otherwise be lost. 2. **Audience Building**: Maintain the ability to build remarketing audiences from consenting users. 3. **Regulatory Compliance**: Meet GDPR and DMA requirements while continuing to advertise. 4. **Data Continuity**: Preserve historical data accuracy by implementing correct default states. 5. **Enhanced Attribution**: Enable cross-device and cross-session attribution through Google's modeling. ### What Happens Without Consent Mode v2? If you haven't implemented Consent Mode v2 and target EEA users: - You **cannot** build new audiences from EEA traffic. - Remarketing campaigns will gradually lose effectiveness. - Conversion tracking accuracy will significantly decrease. - Performance Max campaigns will underperform. - Smart Bidding strategies will have reduced signal data. ## Understanding the Four Consent Signals Google Consent Mode v2 uses four primary consent parameters: ### 1. ad_storage Controls the use of cookies for advertising purposes. When granted, Google can use advertising cookies to track conversions and build remarketing audiences. | State | Behavior | |-------|----------| | `granted` | Full advertising cookie functionality enabled | | `denied` | No advertising cookies set; cookieless pings sent in Advanced mode | ### 2. analytics_storage Controls the use of cookies for analytics purposes (Google Analytics 4). | State | Behavior | |-------|----------| | `granted` | Full GA4 functionality with persistent user identification | | `denied` | Cookieless pings with session-level data only | ### 3. ad_user_data (NEW in v2) Controls whether user data can be sent to Google for advertising purposes. This is one of the critical new signals required by the DMA. | State | Behavior | |-------|----------| | `granted` | User data can be transmitted to Google for ads | | `denied` | No user-level data sent; aggregate data only | ### 4. ad_personalization (NEW in v2) Controls whether personalized advertising is enabled for the user. | State | Behavior | |-------|----------| | `granted` | User can be added to remarketing lists; personalized ads enabled | | `denied` | No personalized advertising; generic ads only | ## Basic vs Advanced Mode: Critical Differences Understanding the difference between Basic and Advanced Consent Mode is crucial for maximizing your advertising effectiveness while remaining compliant. ### Basic Consent Mode In Basic mode, **no Google tags fire until the user grants consent**. This is the simpler implementation but comes with significant data loss. **How it works:** 1. Page loads with Google tags blocked. 2. User sees consent banner. 3. If consent granted: Tags fire normally. 4. If consent denied: No data is collected. **Typical data impact:** - 30-50% of conversions are never recorded. - No audience data from non-consenting users. - Significant Smart Bidding signal degradation. - Limited conversion modeling (requires minimum data thresholds). **When to use Basic Mode:** - Highly conservative compliance approach required. - Legal team mandates no data collection before consent. - Very high organic consent rates (80%+). - B2B sites with low traffic volumes. ### Advanced Consent Mode In Advanced mode, **Google tags load immediately** but operate in a privacy-preserving manner when consent is denied. They send anonymized "cookieless pings" that enable Google to model missing conversion data. **How it works:** 1. Page loads; Google tags initialize with consent denied. 2. Cookieless pings sent with aggregate behavioral data. 3. User sees consent banner. 4. If consent granted: Full tracking enabled retroactively. 5. If consent denied: Cookieless pings continue; Google models conversions. **Typical data impact:** - Up to 70% conversion recovery through modeling. - Behavioral modeling for Smart Bidding signals. - Maintains some audience insights. - Better campaign optimization data. **When to use Advanced Mode:** - Maximum conversion tracking recovery needed. - High-volume advertising spend. - Performance Max or Smart Bidding campaigns. - E-commerce with significant EEA traffic. ## Step-by-Step Implementation Guide ### Prerequisites Before implementing Consent Mode v2, ensure you have: - [ ] Google Tag Manager or gtag.js installed - [ ] A Consent Management Platform (CMP) that supports Consent Mode v2 - [ ] Access to your website's template/theme files - [ ] Google Ads and/or GA4 accounts configured ### Step 1: Set Default Consent State The default consent state **must be set before any Google tags load**. This is critical—setting defaults after tags load will not work correctly. **Using gtag.js directly:** ```javascript // This MUST appear before the Google tag (gtag.js) snippet window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied', 'wait_for_update': 500 // Optional: Wait up to 500ms for CMP to load (use with caution) }); // For region-specific defaults (recommended) gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied', 'region': ['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'IS', 'LI', 'NO', 'GB', 'CH'] }); ``` **Using Google Tag Manager:** 1. Navigate to **Admin** → **Container Settings**. 2. Enable **"Enable consent overview"**. 3. Create a new tag: **Consent Initialization - All Pages**. 4. Use the **Consent Mode (gtag.js)** tag template (or your CMP's official template). 5. Set trigger to **Consent Initialization - All Pages**. ### Step 2: Configure Your CMP Integration Most modern CMPs support Consent Mode v2 natively. Here's how to configure popular platforms: **GetCookies Integration:** GetCookies automatically handles all Consent Mode v2 signals. In your dashboard: 1. Go to **Settings** → **Integrations**. 2. Enable **Google Consent Mode v2**. 3. Map your consent categories to Google signals. 4. Select **Advanced Mode** for maximum data recovery. **IAB TCF 2.2 Integration:** If your CMP uses IAB TCF v2.2, the mapping is generally handled automatically by the CMP and Google's tags. However, conceptually it works like this: - **Purpose 1** (Device storage) is required for all signals (`ad_storage`, `analytics_storage`, etc.). - **Purpose 3** (Create a personalised ads profile) + **Purpose 4** (Select personalised ads) are required for `ad_user_data` and `ad_personalization`. - **Purpose 7-10** (Measurement) relate to `analytics_storage`. *Note: Always prefer your CMP's automatic integration over manual mapping to ensure TCF compliance strings are generated correctly.* ### Step 3: Update Consent on User Action When a user interacts with your consent banner, the CMP should handle this automatically. If implementing manually: ```javascript // User accepts all cookies gtag('consent', 'update', { 'ad_storage': 'granted', 'ad_user_data': 'granted', 'ad_personalization': 'granted', 'analytics_storage': 'granted' }); // User accepts analytics only gtag('consent', 'update', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'granted' }); // User rejects all (explicit rejection) gtag('consent', 'update', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied' }); ``` ### Step 4: Implement Consent State Persistence Store and restore consent state across page loads: ```javascript // On consent update, store in localStorage function storeConsent(consentState) { localStorage.setItem('google_consent', JSON.stringify(consentState)); } // On page load, restore previous consent function restoreConsent() { const stored = localStorage.getItem('google_consent'); if (stored) { const consent = JSON.parse(stored); gtag('consent', 'update', consent); } } ``` ### Step 5: Configure GTM Tag Consent Settings For each Google tag in GTM: 1. Open the tag configuration. 2. Scroll to **Consent Settings**. 3. Under **Built-in Consent Checks**, select appropriate consent types. 4. For Google Ads tags: Require `ad_storage` and `ad_user_data`. 5. For GA4 tags: Require `analytics_storage`. ## Testing and Validation ### Using Google Tag Assistant 1. Install the [Google Tag Assistant](https://tagassistant.google.com/) Chrome extension. 2. Navigate to your website. 3. Check the **Consent** tab to see current consent states. 4. Verify that: - Default state shows all parameters as `denied` (for EEA users). - After granting consent, states update to `granted`. - Tags fire according to consent state. ### Using Chrome DevTools Open the Console and check for consent-related events: ```javascript // In Console, check dataLayer for consent events dataLayer.filter(event => event[0] === 'consent') ``` ### Using Google Ads Diagnostics 1. Go to **Google Ads** → **Tools & Settings** → **Diagnostics**. 2. Check for Consent Mode warnings. 3. Verify conversion tracking status. 4. Review audience health metrics. ## Advanced Configuration Options ### Region-Specific Defaults For businesses operating globally, set different defaults by region: ```javascript // Default for EEA + UK + Switzerland gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied', 'region': ['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'IS', 'LI', 'NO', 'GB', 'CH'] }); // Default for rest of world gtag('consent', 'default', { 'ad_storage': 'granted', 'ad_user_data': 'granted', 'ad_personalization': 'granted', 'analytics_storage': 'granted' }); ``` ### URL Passthrough for Cross-Domain Tracking Enable URL passthrough to maintain user identity across domains: ```javascript gtag('set', 'url_passthrough', true); ``` ### Ads Data Redaction Control data collection granularity when consent is denied: ```javascript gtag('set', 'ads_data_redaction', true); ``` When enabled, ad click identifiers (gclid, dclid) are redacted from requests when `ad_storage` is denied. ## Conversion Modeling: What It Is and How to Enable It ### Understanding Conversion Modeling When users decline consent, Google can still model likely conversions based on: - Aggregate behavioral patterns - Machine learning from consenting user journeys - Statistical correlation with similar traffic patterns ### Enabling Conversion Modeling **In Google Ads:** 1. Go to **Tools & Settings** → **Measurement** → **Conversions**. 2. Select your conversion action. 3. Enable **"Enhanced conversions for the web"**. 4. Under **Modeling**, ensure it's set to **"Enabled"**. **In GA4:** 1. Go to **Admin** → **Data Settings** → **Data Collection**. 2. Enable **"Google signals data collection"**. 3. Under **Reporting Identity**, select **"Blended"**. ### Minimum Requirements for Modeling Conversion modeling requires minimum data thresholds: - At least **1,000 clicks** on conversion-tracked ads per month. - At least **100 conversions** per month. - Sufficient consenting user data for pattern establishment. ## Common Implementation Mistakes ### Mistake 1: Setting Defaults After Tags Load **Wrong:** ```html ``` **Correct:** ```html ``` ### Mistake 2: Missing ad_user_data or ad_personalization These new parameters are **required** for v2 compliance. Omitting them means your implementation is incomplete. ### Mistake 3: Misusing wait_for_update Use `wait_for_update` with caution. While it ensures the CMP has time to load, setting it too high can delay tag firing and impact page performance. Most modern CMP tags handle the timing automatically. ### Mistake 4: Hardcoding Consent Granted Never default to `granted` for EEA users—this violates GDPR and can result in fines. ## Troubleshooting Common Issues ### Issue: Tags Not Firing After Consent Granted **Cause:** Consent update not being recognized. **Solution:** Verify the consent update is pushed to dataLayer correctly and check for JavaScript errors. ### Issue: Consent Mode Not Detected in Tag Assistant **Cause:** Default state set after tags load. **Solution:** Move consent default code to before the gtag.js script. ### Issue: Low Conversion Modeling Coverage **Cause:** Insufficient data volume. **Solution:** Increase traffic or wait for more data to accumulate; consider Advanced mode. ### Issue: Google Ads Showing Consent Mode Warnings **Cause:** Missing new v2 parameters. **Solution:** Ensure `ad_user_data` and `ad_personalization` are included in all consent calls. ## Best Practices Summary 1. **Always use Advanced Mode** unless legal requirements prohibit it. 2. **Set region-specific defaults** to avoid unnecessary consent prompts for non-EEA users. 3. **Enable conversion modeling** in both Google Ads and GA4. 4. **Verify CMP integration** to ensure it's updating all four signals. 5. **Test thoroughly** with Tag Assistant before going live. 6. **Monitor performance** weekly to ensure data quality. 7. **Keep your CMP updated** to support the latest Consent Mode features. 8. **Document your implementation** for compliance audits. ## Making It Work Google Consent Mode v2 is no longer optional—it's a fundamental requirement for advertising to EEA users. Proper implementation protects your advertising capabilities while respecting user privacy and maintaining regulatory compliance. By using Advanced mode with conversion modeling, you can recover the majority of your conversion data even when users decline consent. The key is correct implementation: setting defaults before tags load, including all four consent parameters, and using a CMP that properly communicates consent state changes. Take the time to implement Consent Mode v2 correctly now, and you'll preserve your ability to run effective advertising campaigns while building trust with privacy-conscious users.

Frequently Asked Questions

What happens if I do not implement Consent Mode v2?
If you do not implement Consent Mode v2, you will lose the ability to capture data for new EEA users in Google Ads and GA4 audiences. Your remarketing capabilities will stop working for these users.
Is Google Consent Mode v2 mandatory?
Yes, it is mandatory for any business using Google Ads or Google Analytics to target or track users within the European Economic Area (EEA) as of March 2024.
What is the difference between Basic and Advanced Consent Mode?
Basic Mode blocks all Google tags until consent is granted, preventing any data collection. Advanced Mode loads tags immediately but sends anonymized "cookieless pings" if consent is denied, allowing Google to model missing conversion data.
S

Sarah Chen, Privacy Engineer

Contributing writer at GetCookies, specializing in privacy compliance, consent management, and digital marketing optimization.

Ready to Simplify Cookie Consent?

GetCookies makes GDPR, CCPA, and global privacy compliance effortless. Get started today.