You add debug_mode=true to your GA4 configuration, open DebugView in GA4, and fire events on your site — but nothing appears. Or events appear sporadically. Or you see some events but not others. GA4 DebugView is essential for event validation, so when it doesn’t work, development and QA slow to a crawl. This guide covers every known cause of DebugView not working and the fix for each.

How DebugView Works

When debug_mode is enabled for a GA4 stream, events from that device appear in the DebugView report in near-real-time (usually within 5-10 seconds). DebugView shows individual events with all parameters — making it perfect for implementation testing.

Cause 1: debug_mode Not Enabled Correctly

// Correct way to enable debug mode
gtag('config', 'G-XXXXXXXXXX', {
  'debug_mode': true  // Note: underscore, not camelCase
});

// Also works as URL parameter:
// https://yoursite.com?gtm_debug=x  (enables GTM debug mode)
// For GA4 directly: https://yoursite.com?ga4_debug=1
// Or use the GA4 DebugView Chrome extension

// WRONG:
gtag('config', 'G-XXXXXXXXXX', {
  'debugMode': true,  // Won't work
  'debug': true       // Won't work
});

Cause 2: Ad Blocker Blocking GA4

uBlock Origin, Privacy Badger, and other ad blockers block GA4’s collection endpoint (www.google-analytics.com/g/collect). Events are fired in browser memory but never reach GA4. Check: open DevTools Network tab, look for requests to google-analytics.com — if they’re blocked (red or missing), disable ad blocker for your testing session.

Cause 3: Looking at Wrong Property or Stream

Your debug events are going to G-XXXXXXXXXX but you’re looking at DebugView for a different property. Verify the measurement ID in your gtag config matches the property you’re viewing in DebugView.

// Check which measurement ID is active on your page:
console.log(document.querySelectorAll('script[src*="googletagmanager"]'));
// Or check window.dataLayer for GA4 config events
console.log(window.dataLayer.filter(e => e[0] === 'config'));