Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

GA4 Debugging Custom Events When They Don't Show (2026)

Intermediate

The 3 categories of "event not showing" failures

Before debugging, identify which category the failure falls into:

Category A — Event doesn't fire at all GTM tag never executes. The event doesn't appear in GTM Preview, DebugView, or network requests.

Category B — Event fires in GTM but doesn't reach GA4 GTM shows the tag fired, but the event doesn't appear in DebugView or GA4 reports.

Category C — Event reaches GA4 but doesn't appear in reports DebugView shows the event, network requests show it, but the event doesn't appear in GA4's Events report after 24–48 hours.

Each category has different root causes and different fixes.

The 7-step debugging framework

Step 1 — Reproduce the problem in GTM Preview Mode

Open GTM → Preview → browse to the page → perform the action that should trigger the event.

In GTM Preview panel, check:

  • Does a tag fire for this event? Look in the "Tags Fired" section after performing the action.
  • If no tag fired: the trigger didn't match. Proceed to Step 2.
  • If a tag fired: the issue is downstream. Proceed to Step 4.

Step 2 — Debug the GTM trigger (Category A)

The trigger didn't fire. Check:

Is the trigger type correct?

  • Custom Event trigger: the event name in the dataLayer push must exactly match the trigger's Event Name field (case-sensitive)
  • Click trigger: is it "All Clicks" or "Just Links"? Link clicks need "Just Links"; button clicks need "All Elements"
  • Page View trigger: is it firing on the correct URL pattern?

Trigger condition check:

Open GTM Preview → click the trigger name → check "Variables" tab → see what the variable value actually is vs what the trigger expects.

Common custom event trigger mismatch:

Fix: match the trigger event name exactly to the dataLayer push event name.

Step 3 — Debug dataLayer timing (Category A)

The event is supposed to fire when a user completes an action but the dataLayer push fires before the user action (on page load instead of on click/submit).

Test: In GTM Preview → check the Summary tab. Does the event appear in the "Tags Fired" list under "Page View — Container Loaded" (wrong — page load timing) or under the correct user action (click, form submit, etc.)?

Fix: Move the dataLayer push to the correct lifecycle point. For form submissions, push inside the form success callback, not on page load.

Step 4 — Check GA4 tag configuration (Category B)

GTM tag fired but event isn't reaching GA4. Check:

Want to see which hidden implementation gaps are affecting your GA4 data quality?

Is the Measurement ID correct? GTM Preview → click the GA4 tag that fired → check the "Tag Configuration" panel → verify the Measurement ID (G-XXXXXXXX) matches the property you're checking in GA4 Admin.

Is consent blocking the tag? If you're using Consent Mode, the GA4 tag may require analytics_storage: granted to fire. In GTM Preview → "Consent" tab → check the consent state when the event fires. If analytics_storage is denied, the tag fires a cookieless ping but not a full event hit.

Network request check:

Open Chrome DevTools → Network tab → filter by collect or g/collect → perform the action. Does a network request appear to https://www.google-analytics.com/g/collect?

  • Yes: event reached GA4's servers. Issue is in Step 6 (reporting delay or configuration).
  • No: the tag fired in GTM but the network request wasn't made. Check consent state and tag configuration.

Step 5 — Check DebugView (Category B)

If the network request was made, the event should appear in DebugView within 1–2 seconds.

GA4 Admin → DebugView → check if the event appears.

If it doesn't:

  • Wrong Measurement ID in the tag (event went to a different property)
  • The debug_mode parameter isn't being sent (DebugView only shows debug-mode events — ensure GTM Preview is active when you trigger the event)

If it does appear in DebugView but not in reports: This is Category C — see Step 6.

Step 6 — Check reporting delay and event naming (Category C)

GA4 standard reports have 24–48 hour processing delay. If you just implemented the event today, it may not appear in reports until tomorrow. Check:

In DebugView: Does the event appear? If yes, the data is flowing correctly. Wait 24 hours.

In Realtime report: GA4 → Reports → Realtime → Events tab. Does the event name appear? Realtime has a 30-second delay (much faster than standard reports). If the event appears in Realtime but not in standard reports, it's a reporting lag issue — not a tracking failure.

Event name in reports vs event name sent:

GA4 event names are case-sensitive in the data layer but normalised to lowercase in reports. FormSubmit becomes formsubmit in reports. Check the Events report using the lowercase version of your event name.

Step 7 — BigQuery verification (Category C, historical events)

If the event should have fired historically but isn't visible in GA4 reports:

  • Returns rows: The event exists in GA4's raw data. If it's not in standard reports, check custom dimension registration and cardinality.
  • Returns no rows: The event genuinely didn't fire or wasn't received by GA4 during the period.

The most common silent failures

Silent failure 1 — Consent Mode blocking in production In GTM Preview, you're in debug mode which bypasses some consent requirements. In production, real users who rejected consent don't trigger events. This is correct behaviour — but it means "working in Preview, not in production" is often consent mode functioning correctly, not a bug.

Silent failure 2 — GTM container not published Changes were made in GTM and previewed, but the container was never published to production. Production site still runs the old container version without the new event.

Silent failure 3 — Event fires on wrong pages The trigger fires the event on every page (Page View trigger with no URL condition) instead of only the intended page. The event fires but you're checking the wrong page in DebugView.

Silent failure 4 — Variable returning undefined GTM variable that should contain the event parameter returns undefined. The event fires but with (not set) for the key parameter. Check variables in GTM Preview's Variables tab.

FAQ: GA4 Debugging Custom Events When They Don't Show

What should a team validate first when ga4 debugging custom events when they don't show appears?

Reproduce the problem in the live implementation, isolate whether it is scoped to one report or flow, and compare it against at least one secondary source before changing the setup.

How do I know whether the fix actually worked?

You need before-and-after evidence in the browser and in the downstream report. A clean-looking dashboard without validation is not enough.

When should this become a full GA4 audit instead of a quick fix?

If the issue touches attribution, consent, revenue, campaign quality, or data trust for more than one workflow, it is usually safer to audit the surrounding implementation than patch only the visible symptom.

Run a GA4 audit before ga4 debugging custom events when they don't show spreads into reporting decisions

Use GA4 Audits to surface implementation gaps, broken signals, and the next fixes to prioritize before the issue becomes harder to trust or explain.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share