How to Debug GA4 Events in Real-Time: 4 Methods That Work
Events not showing up? Use these 4 debugging methods to pinpoint exactly where your GA4 tracking breaks.

You pushed a new event to GA4 but nothing shows up in reports. Before blaming the code, use these four debugging methods — from quickest to most thorough. Each method reveals different information about your tracking pipeline, and using them in the right order saves hours of frustration.
The key to debugging GA4 is understanding where in the pipeline the issue might be. Is GTM not firing the tag? Is the tag firing but sending wrong data? Is GA4 receiving data but not processing it correctly? Each debugging tool answers a different question.
Method 1: GA4 Realtime Report
The quickest sanity check. Go to GA4 → Reports → Realtime. This shows events received in the last 30 minutes. If your event appears here, GA4 is receiving it — the issue is downstream (processing, reporting, or filters).
What to check:
- Event name appears in the "Event count by Event name" card
- User count increments when you trigger the event
- Click on the event name to see parameter values
Limitations: Realtime doesn't show all event parameters, doesn't let you inspect the full payload, and has a 30-minute window. It also aggregates data, so you can't see individual hits from specific page views. If the event doesn't appear in Realtime, move to Method 2.
Method 2: GA4 DebugView
DebugView is GA4's purpose-built debugging tool. It shows a real-time stream of events from devices running in debug mode, with full parameter details for each event.
Enabling Debug Mode
There are three ways to enable debug mode:
- Chrome Extension: Install "Google Analytics Debugger" from the Chrome Web Store. Toggle it on and navigate your site. This is the easiest method.
- GTM Preview Mode: When you enter GTM Preview mode, debug mode is automatically enabled for your session. Events fired during preview will appear in DebugView.
- Manual parameter: Add
debug_mode: trueas a parameter in your GA4 Configuration tag. This enables debug mode for all users (remove before going live).
Using DebugView
Go to Admin → DebugView. You'll see a timeline of events. Click any event to see:
- All event parameters and their values
- User properties set at the time of the event
- Whether the event is a conversion
- Consent status when the event fired
Pro tip: If you see a red circle next to a parameter name, it means the parameter wasn't registered as a custom dimension. The data is being collected but won't be available in standard reports. Register it in Admin → Custom Definitions.
Method 3: GTM Preview Mode
GTM Preview Mode is the most powerful debugging tool for understanding why a tag did or didn't fire. It provides full visibility into the GTM container execution.
What to Inspect
- Tags Fired / Not Fired: See which tags executed and which didn't. For tags that didn't fire, check the trigger conditions to understand why.
- Trigger evaluation: Click on a trigger to see which conditions passed and which failed. This often reveals issues like wrong variable values, mismatched event names, or page path conditions that don't match.
- Variable values: Inspect every variable's value at each event. This catches issues like data layer variables returning
undefined, URL variables with unexpected values, or Custom JavaScript variables throwing errors. - Data Layer contents: View the complete data layer state at each event. Verify that your data layer pushes contain the expected keys and values, and check the order of pushes.
- Console errors: Check the browser console while Preview is active. Custom HTML tags with JavaScript errors will show up here.
Common Issues Found in Preview Mode
- Tag fires on wrong trigger: The tag fires on every page view instead of just the conversion page because the trigger condition is too broad.
- Variable returns undefined: A Data Layer Variable returns
undefinedbecause the key name has a typo or the data layer push hasn't happened yet when the trigger fires. - Timing issues: A tag fires before the data layer push it depends on. Use trigger sequencing or later trigger types (DOM Ready, Window Loaded) to fix this.
- Consent blocking: Tags with consent requirements show as "blocked by consent" in Preview mode if consent hasn't been granted.
Method 4: Chrome DevTools Network Tab
For the deepest level of debugging, inspect the actual network requests that GA4 sends to Google's collection servers.
- Open Chrome DevTools (F12 or Cmd+Option+I)
- Go to the Network tab
- Filter by
collectorgoogle-analytics.com - Trigger your event and look for the collection request
- Click the request to see the full payload
The payload is URL-encoded but you can use the "Payload" tab in DevTools to see the decoded parameters. Look for:
en— Event nameep.*— Event parametersup.*— User propertiestid— Measurement ID (verify this is correct)dl— Document location (page URL)
When to use this: Use the Network tab when you suspect GA4 is receiving the wrong data, when you need to verify exact parameter values being sent, or when DebugView isn't showing events that you think should be there.
Method 5 (Bonus): BigQuery Real-Time Export
If you have streaming BigQuery export enabled, you can query the events_intraday_* table for near-real-time event data. This is the ultimate source of truth — if an event appears in BigQuery, GA4 definitively received and processed it.
SELECT event_name, event_timestamp,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') as page,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'your_param') as custom_param
FROM `project.analytics_123456789.events_intraday_*`
WHERE event_name = 'your_event_name'
ORDER BY event_timestamp DESC
LIMIT 10
Systematic Debugging Workflow
When an event isn't working, follow this order to systematically narrow down the problem:
- Check Realtime: Is GA4 receiving any data at all? If not, the issue is with tag firing or network connectivity.
- Check GTM Preview: Is the tag firing? Are trigger conditions met? Are variables resolving correctly?
- Check DebugView: Is the event arriving with the correct name and parameters? Are parameters registered as custom dimensions?
- Check Network Tab: Is the collection request being sent? Does the payload contain the expected data?
- Check Processing: Wait 24-48 hours and check if the event appears in standard reports. Some processing delays are normal.
Save Time
Before debugging manually, run a NiceLookingData audit to check if your GA4 property is receiving data correctly. Our automated checks catch most configuration issues — like missing Measurement IDs, consent blocking, duplicate tags, and unregistered custom dimensions — in under 60 seconds.
Key Takeaways
- Use Realtime for a quick sanity check, DebugView for parameter inspection, GTM Preview for trigger debugging, and Network tab for payload verification.
- Always enable debug mode via the Chrome extension or GTM Preview — DebugView only shows events from debug-enabled devices.
- A red circle next to a parameter in DebugView means it's not registered as a custom dimension and won't appear in reports.
- GTM Preview is the best tool for diagnosing why a tag didn't fire — it shows exact trigger condition evaluations.
- BigQuery intraday tables are the ultimate source of truth for event data verification.