Consent Mode V2 Tags Won't Fire After Consent? 3 Fixes That Work Immediately (2026)

Consent Mode V2 Tags Won't Fire After Consent? 3 Fixes That Work Immediately (2026)

📖 4 min read 982 words
Immediate Fix

Why your GTM tags won't fire even after users accept consent in Consent Mode V2. Complete Layer 2 implementation diagnostic with console snippets and fixes.

Quick Navigation

You set up Consent Mode V2. Your users click “Accept All Cookies.” But your marketing tags still won’t fire. The most frustrating part? GTM Preview Mode shows everything working perfectly, but on the live site, you have zero data, zero attribution, and zero revenue tracking.

Your ad campaigns are running blind. This is a Layer 2 (Implementation) failure. Here’s how to fix it.

The Fix



Here are the specific failure patterns we see in over 90% of broken Consent Mode V2 setups.

This is the most common issue. Your tags are set to fire on page load, but they don’t have the proper consent triggers to re-fire after a user accepts cookies.

What’s Happening:

  1. Page loads, and the default consent is “denied”.
  2. Your tags attempt to fire on the “Page View” event but are blocked by the lack of consent.
  3. The user clicks “Accept All”.
  4. The consent state updates to “granted”, but the “Page View” event has already passed. The tags don’t try again.

The Diagnostic: Your Consent Management Platform (CMP) must be configured to push a consent_update event to the dataLayer when a user makes a choice. If this event is missing, GTM never knows it’s time to re-evaluate tags.

Check for the update event in your browser console:

// Should show a 'consent_update' event after you click 'Accept'
dataLayer.filter(e => e.event && e.event.includes('consent'))

If you don’t see consent_update, your CMP integration is the problem.

Symptom: You’ve accepted consent, but GA4 DebugView is empty. No page views, no events.

What’s Happening: Even if a consent_update event fires, GTM itself might not be registering the state change correctly. The analytics_storage variable might still be “denied”.

The Diagnostic: Check the current consent state directly from GTM’s perspective. Open the console and run this (replace with your GTM ID):

// Check current analytics_storage consent state
google_tag_manager['GTM-XXXXXX'].dataLayer.get('analytics_storage')

If this returns "denied" after you’ve accepted consent, GTM’s internal state is wrong. This often points to a problem with the default consent configuration.

Symptom: GA4 data is flowing, but your Google Ads or Meta Pixel tags are dead. No conversion data is reaching your ad platforms.

What’s Happening: Consent Mode V2 introduced two new consent states: ad_user_data and ad_personalization. Many guides and CMPs only focus on ad_storage and analytics_storage. If your ad tags require these new states and they aren’t granted, the tags will be blocked.

The Diagnostic: When you check your consent_update event in the dataLayer, ensure all four states are being set to “granted”.

// Look for all four "granted" states
{
  'event': 'consent_update',
  'ad_storage': 'granted',
  'analytics_storage': 'granted',
  'ad_user_data': 'granted',      // <-- Is this present?
  'ad_personalization': 'granted' // <-- Is this present?
}

If these are missing, your CMP configuration needs to be updated to support the latest Consent Mode V2 requirements.


The 3-Part Fix That Works Immediately

This is the complete implementation that solves the issues above.

This tag MUST fire before all others. Create a Custom HTML tag in GTM that fires on the “Consent Initialization” trigger with a high priority (e.g., 99).

<script>
// Set default consent state BEFORE other tags fire
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'wait_for_update': 500  // Crucial: waits 500ms for a consent choice
});
</script>

Part 2: Ensure Your CMP Pushes an Update

Your consent platform must be configured to push the consent_update event to the dataLayer upon user acceptance. This is non-negotiable. Refer to your CMP’s documentation for their specific GTM integration guide.

Part 3: Update Your Tag Triggers

For every marketing tag, you need to ensure it can fire either on the initial page load (if consent is already granted) or after the consent update.

  1. Create a “Consent Update” Trigger:
    • Trigger Type: Custom Event
    • Event Name: consent_update
  2. Group it with your Page View Trigger:
    • Create a new “Trigger Group”.
    • Add your existing “All Pages” trigger and your new “Consent Update” trigger to this group.
    • Use this Trigger Group for your marketing tags.
  3. Add Consent Requirements:
    • In your tag settings, go to “Advanced Settings” -> “Consent Settings”.
    • Select “Require additional consent for tag to fire” and add ad_storage (for ad tags) or analytics_storage (for GA tags).

If you’ve tried fixes from forums or AI tools and they didn’t work, it’s likely due to one of these common mistakes.

1. The Consent Script Loads After GTM: Your default consent state must be declared in the <head> of your site before the GTM container snippet. If GTM loads first, it will fire tags before it even knows about consent, leading to unpredictable behavior.

2. Testing Only in Preview Mode: GTM’s Preview Mode does not accurately replicate the timing and race conditions of a real user’s first visit. Always test on your live site using a fresh incognito window to properly validate your setup.

3. Forgetting wait_for_update: This small parameter in the default consent state is critical. It tells GTM to pause for a specified time (e.g., 500ms) to allow the consent banner to load and receive user input before firing tags. Without it, tags can fire and be blocked before the user even sees the banner.


Need a comprehensive GTM implementation audit? Our diagnostic service reviews your complete tag, trigger, and variable configuration, identifies gaps and errors, and provides a prioritized remediation plan. Learn more about our GTM Audit Service.

GTM

GTM Setup Services

Emergency GTM recovery and tracking experts. 247+ successful recoveries completed.

Having GTM Tracking Issues?

Get your tracking fixed by the experts. Emergency recovery in 2-4 hours.

Get Emergency GTM Fix - $397