GA4 Debug Mode: How to Use DebugView to Validate Your Tracking
Learn how to use GA4 DebugView and debug mode to validate event tracking in real time. Step-by-step guide to troubleshooting GA4 implementation issues.
Deploying GA4 tracking changes without verifying them in DebugView is how implementation errors end up silently corrupting data for weeks. DebugView is one of the most powerful — and most underused — tools in GA4. Here's how to use it correctly.
What Is GA4 Debug Mode?
GA4 Debug Mode is a real-time event validation interface that shows every event being sent to your GA4 property from a specific device or browser. Events appear with a roughly 10-second delay (compared to the 24-48 hour delay in standard GA4 reports).
When debug mode is active on your device, all events you trigger flow into DebugView inside your GA4 Admin panel, where you can inspect each event, its parameters, user properties, and timestamp.
DebugView does NOT affect your production data. Debug events are filtered out of standard reports.
How to Enable GA4 Debug Mode
There are three methods depending on your implementation:
Method 1: GA4 DebugView Chrome Extension (Recommended)
This is the fastest method for gtag.js or GTM implementations.
- Install the Google Analytics Debugger Chrome extension
- Click the extension icon to enable it (icon turns blue)
- Reload your website
- Open GA4 Admin → DebugView
Your device is now sending debug-mode events. Everything you do on the site will appear in DebugView within seconds.
Method 2: GTM Preview Mode
If you're managing tags via Google Tag Manager, use GTM's built-in Preview mode:
- In GTM, click Preview (top right)
- Enter your website URL and click Connect
- GTM opens a debug panel in a new browser tab
- All tag firings are visible in the GTM debug panel
- GA4 events from preview mode also appear in GA4 DebugView simultaneously
GTM Preview is particularly useful because you can see exactly which triggers fired each tag, making it easier to diagnose why an event didn't fire.
Method 3: URL Parameter (No Extension Required)
Append ?_gl=debug_mode:1 to any URL or add debug_mode: true to your gtag config:
gtag('config', 'G-XXXXXXXXXX', { 'debug_mode': true });javascript
Important: Never deploy `debug_mode: true` to production. This sends all users' events through DebugView, which is rate-limited and will drop events under load. Use this only for local development.
For GTM, you can pass debug_mode as a parameter in your GA4 Configuration Tag:
Field Name: debug_mode
Value: trueSet this with a condition so it only fires on your staging environment.
Using DebugView: What to Look For
Open Admin → DebugView in your GA4 property while your debug mode is active.
The Interface
The DebugView timeline shows events in chronological order. The left column shows the last 30 minutes of event activity. Click any event to expand its parameters.
Key things to check for each event:
Event Name: Is it spelled correctly? GA4 is case-sensitive. `Purchase` and `purchase` are different events. Use snake_case consistently.
Required Parameters: For ecommerce events, verify required parameters are populated:
// This is a correctly structured purchase event dataLayer.push({ event: 'purchase', ecommerce: { transaction_id: 'T_12345', value: 49.99, currency: 'USD', items: [{ item_id: 'SKU_123', item_name: 'GA4 Audit Pro', price: 49.99, quantity: 1 }] } });javascript
Parameter Values: Are values being passed correctly? Check for `undefined`, `null`, empty strings, or incorrect data types (passing a string where a number is expected).
User Properties: If you're passing user_id or custom user properties, verify they appear on the user row in DebugView.
Common DebugView Red Flags
Event fires but parameters are empty:
Usually a dataLayer timing issue. The GTM tag is firing before the dataLayer variable is populated. Check your trigger — add a condition that the variable is not undefined.
Event fires multiple times per action:
Duplicate tags or duplicate event listeners. Check GTM for multiple triggers on the same tag. Check your custom code for event listeners that get attached more than once.
Event doesn't fire at all:
Check GTM Preview to see if the trigger conditions were met. Common causes: wrong trigger type (Click - All Elements vs Click - Just Links), condition using wrong variable, tag is paused.
`page_view` fires but no custom events:
Your GTM container may not be installed on all pages, or your custom tags may have environment-specific conditions blocking them.
Validating E-commerce Tracking End-to-End
E-commerce tracking is the most error-prone part of GA4 implementation. Use this DebugView checklist for every e-commerce deployment:
- [ ] `view_item_list` fires on category pages with correct `item_list_id` and `items` array
- [ ] `view_item` fires on product pages with correct `item_id`, `item_name`, `price`
- [ ] `add_to_cart` fires on add-to-cart button click with correct items
- [ ] `begin_checkout` fires when the user enters checkout
- [ ] `add_payment_info` fires with correct payment_type
- [ ] `purchase` fires on the thank-you page with `transaction_id`, `value`, `currency`, and full `items` array
- [ ] `purchase` does NOT fire on page refresh (check for deduplication logic)
- [ ] All currency values are numbers, not strings (`49.99` not `"$49.99"`)
DebugView Limitations
DebugView has a few important limitations to know:
Rate limit: Debug events are rate-limited at 500 events per second per device. This is irrelevant for testing but important to know if you accidentally deploy debug mode to production.
30-minute window: DebugView only shows the last 30 minutes of events from the most recently active debug device.
One device at a time: DebugView shows one device at a time (selectable from the dropdown if multiple debug devices are active).
No historical data: Events that fired before you opened DebugView are not retroactively shown.
GA4 Diagnostic Reports
Beyond DebugView, GA4 has two other diagnostic tools worth using:
Implementation quality report: Admin → Data collection → Tag coverage. Shows what percentage of sessions have GA4 tags firing and flags anomalies.
Events report: Reports → Engagement → Events. Events you don't recognize in this report often indicate duplicate tags, tracking from third-party tools, or events from a test environment leaking into production.
Confirm your GA4 events and parameters are all firing correctly — run a full audit →
Check your GA4 implementation
Run a free AI-powered audit to see how your tracking stacks up.
Start Free Audit