The Problem

You've set up GA4 tracking, but how do you know it's actually working? Standard reports have processing delays of 24-48 hours, making them useless for real-time validation. Real-time reports show aggregated data but lack the granular detail needed for debugging.

DebugView solves this by showing events as they arrive, with full parameter details, in near real-time. But there's a catch: it only works when debug mode is enabled, and getting it to work consistently is where most people struggle.

This guide covers three methods to enable debug mode, followed by systematic troubleshooting for when things don't work.


How to Access DebugView

In GA4, navigate to Admin > DebugView (under the Property column).

You'll see a timeline showing events from debug-enabled devices. If nothing appears, debug mode isn't active on your device, or something is blocking the data.


Method 1: GTM Preview Mode (Recommended)

If you use Google Tag Manager, this is the most reliable method because it gives you two debugging tools simultaneously.

How It Works

When you activate GTM Preview mode, it automatically adds a _dbg=1 parameter to all GA4 requests. This flag tells GA4 to route those events to DebugView instead of standard processing.

Steps

  1. Open your GTM container
  2. Click Preview in the top right
  3. Enter your website URL and click Connect
  4. A new tab opens with your site and the Tag Assistant panel

Your GA4 events will now appear in both:

Verification

In Tag Assistant, look for your GA4 tags. Click on any event to see:

In DebugView, you should see the same events appearing within seconds.

Tip: Use Tag Assistant and DebugView together. Tag Assistant shows what GTM sent, DebugView shows what GA4 received. Discrepancies between them indicate data being blocked in transit.


Method 2: Google Analytics Debugger Extension

A browser extension that enables debug mode without touching your GTM setup.

Installation

  1. Install Google Analytics Debugger from Chrome Web Store
  2. Click the extension icon to toggle it on (icon turns orange)
  3. Navigate to your site
  4. Check DebugView

How It Works

The extension injects a _dbg parameter into outgoing GA4 requests, similar to GTM Preview mode.

Limitations

Warning: Turn this off when you're done testing. Leaving it enabled pollutes DebugView with data from every GA4 site you visit, and other people with access to those GA4 properties will see your debug traffic.


Method 3: debug_mode Parameter in Code

Add the debug flag directly to your tracking configuration. Use this when you need debug data from specific environments (like staging) or specific events.

For All Events (gtag.js)

gtag('config', 'G-XXXXXXXXXX', {
  debug_mode: true,
});

For Specific Events Only

gtag('event', 'purchase', {
  debug_mode: true,
  transaction_id: 'T12345',
  value: 99.99,
  currency: 'EUR',
});

In Google Tag Manager

  1. Open your GA4 Configuration tag (or specific Event tag)
  2. Expand Configuration Settings or Shared Event Settings
  3. Under Fields to Set, add:
    • Field name: debug_mode
    • Value: true

Critical Warning

Never publish debug_mode: true to production.

If you do, every visitor becomes a debug user, flooding DebugView with thousands of entries and making it useless for actual debugging.

Safe approach for GTM:

Create a variable that returns true only in specific conditions:

// Custom JavaScript Variable: Debug Mode Flag
function() {
  // Enable debug only for specific query parameter
  if (window.location.search.includes('debug=true')) {
    return true;
  }
  // Or specific cookie
  if (document.cookie.includes('gtm_debug=1')) {
    return true;
  }
  return undefined; // Important: return undefined, not false
}

Use this variable as the debug_mode value in your GA4 tags.

Important: To disable debug mode, you must exclude the parameter entirely or return undefined. Setting it to false or 'false' still activates DebugView because GA4 checks for the parameter's presence, not its value.


Troubleshooting: DebugView Not Showing Data

If DebugView is empty, work through these checks in order.

1. Verify Debug Mode Is Active

Open Chrome DevTools > Network tab, then trigger an event on your site.

Filter for collect or google-analytics.com.

Look for the _dbg=1 parameter in the request URL:

/g/collect?v=2&tid=G-XXXXXXXXXX&_dbg=1&...

If _dbg is missing, debug mode isn't being applied. Go back to the activation methods above.

2. Check for Ad Blockers

Ad blockers (uBlock Origin, AdBlock Plus, Brave Shields, Privacy Badger) commonly block GA4 requests entirely.

Test: Open an Incognito window (which typically disables extensions) and repeat your test.

If DebugView works in Incognito but not in your normal browser, an extension is blocking requests.

Solutions:

3. Check Internal Traffic Filters

GA4's Internal Traffic filter can block debug data before it reaches DebugView.

Check: Go to Admin > Data Settings > Data Filters.

If your Internal Traffic filter is set to Active and your IP matches the filter rules, your debug data is being excluded.

Solution: Temporarily set the filter to Testing mode. In Testing mode, data flows through but gets labeled as internal traffic.

4. Verify Device Selection

DebugView shows data per device. You might be looking at the wrong one.

Check: Click the device dropdown in the top-left of DebugView. Even if it shows "0" next to a device, click to check if there are multiple devices listed.

Your current device might not be the one selected.

5. Check Consent Mode Implementation

If you've implemented Consent Mode and the user hasn't granted consent, events may not appear in DebugView.

How Consent Mode affects DebugView:

Test: Grant consent in your consent banner, then check DebugView.

6. Verify Measurement ID

A wrong or mismatched Measurement ID means events go to a different GA4 property.

Check: In your GA4 tag configuration, verify the Measurement ID matches your property.

Find your correct ID in GA4: Admin > Data Streams > Select stream > Measurement ID (format: G-XXXXXXXXXX).

7. Network Issues

Firewalls, corporate proxies, or VPNs can block requests to Google's servers.

Test: Switch to a different network (mobile hotspot) and try again.

Check: In DevTools Network tab, look for failed requests to google-analytics.com. Status codes like 403 or network errors indicate blocking.

8. GA4 Processing Delays

DebugView occasionally has delays of 30 seconds to a few minutes. This is a known GA4 behavior.

Solution: Wait 2-3 minutes and refresh the DebugView page (not just the browser tab).

9. Server-Side GTM Specific Issues

If you're using server-side GTM, the Chrome extension method won't work because events route through your server domain, not directly to Google.

Solutions for server-side:


Using DebugView Effectively

Once debug mode is working, here's how to get the most from DebugView.

Event Timeline

The main view shows events in chronological order. Click any event to see its parameters.

Key things to verify:

User Properties

User properties appear as a separate card. Verify that user-scoped data (like user_id, custom user properties) is being set correctly.

Conversion Events

Events marked as conversions show a flag icon. Verify your key events are being recognized as conversions.

Top Events Summary

The right panel shows event counts. Use this to check if events are firing multiple times (duplicate tracking) or not at all.


Best Practices

Always Test in Incognito First

Eliminates extension interference and cache issues. Start here to establish a baseline.

Use a Consistent Test Protocol

Create a checklist of actions to perform during testing:

  1. Load page (expect: page_view)
  2. Scroll to bottom (expect: scroll if enhanced measurement enabled)
  3. Add item to cart (expect: add_to_cart)
  4. Complete purchase (expect: begin_checkout, purchase)

Cross-Reference with Tag Assistant

DebugView shows what GA4 received. Tag Assistant shows what GTM sent. Compare both to identify where data is being lost.

Document Your Test Results

Screenshot DebugView showing successful event capture. This becomes your reference for future debugging and QA handoff.

Filter Developer Traffic in Production

If you use debug_mode in code (not just GTM Preview), create a data filter to exclude debug traffic from reports:

  1. Admin > Data Settings > Data Filters
  2. Create a filter for Developer Traffic
  3. Set to Active once validated

This prevents test events from polluting your production data.


Quick Reference

Method Best For Drawbacks
GTM Preview GTM users, full debugging Requires GTM access
Chrome Extension Quick checks, non-GTM sites Chrome only, affects all sites
Code Parameter Staging environments, specific events Risk of production deployment

Related Resources


Sources

#GA4 #debugging #Google Tag Manager #GTM #DebugView