← Back to insights
Guide · #722

How to Spot a GA4 Tracking Bug Before It Costs You

Catch GA4 tracking bugs early with diagnostic checks. Real-time debugging, event validation, and data audits to protect your analytics before data loss hits.

Filed
May 8, 2026
Read
17 min
Author
The Seoable Team

How to Spot a GA4 Tracking Bug Before It Costs You

Your GA4 looks fine. Data's flowing in. Reports are green. Then three weeks later, you realize conversions dropped 40% overnight—but traffic stayed flat. You dig into the numbers. Nothing changed on your site. Nothing changed in your marketing. The only thing that changed: your tracking silently broke.

GA4 tracking bugs are silent. They don't throw errors. They don't alert you. They just stop working, and you lose visibility into the exact moment it happened. By the time you notice the discrepancy, you've already lost weeks of clean data.

This guide shows you how to catch those bugs before they cost you. Not with gut instinct. Not with weekly audits you'll never run. With concrete diagnostic checks you can run in minutes, right now, and then automate going forward.

Prerequisites: What You Need Before Starting

Before you run any diagnostic checks, make sure you have access to the right tools and accounts.

Required:

  • GA4 property with admin access
  • Google Tag Manager (GTM) container linked to your GA4 property (or direct GA4 tag on your site)
  • A browser with DevTools installed (Chrome, Firefox, Edge, or Safari)
  • Access to your website's backend (to check server logs if needed)

Recommended:

  • Google Tag Assistant, a free browser extension that validates tag deployment
  • DebugView in GA4, which lets you see events firing in real-time
  • Access to your website's error logs and network traffic logs

If you haven't set up GA4 tracking from scratch, start with Setting Up Google Analytics 4 for SEO Tracking from Day One to establish a clean foundation. If you're using Google Tag Manager, review Setting Up Google Tag Manager Without Breaking Your Site to make sure your container is wired correctly.

Once you have access, move to the diagnostic checks below.

Step 1: Run a Real-Time Event Check in GA4 DebugView

GA4's DebugView is your first line of defense. It shows you events firing in real-time, before they're processed into reports. If events aren't appearing here, they're not being tracked at all.

How to use DebugView:

  1. Open your GA4 property in the Google Analytics interface.
  2. In the left menu, click ConfigureDebugView.
  3. Open your website in a new tab.
  4. Perform an action on your site (click a link, fill a form, complete a purchase).
  5. Return to DebugView. You should see events appear within seconds.

If you see events firing correctly, your basic tracking is working. If you see nothing, or if you see events with missing data (like a purchase event with no revenue), you've found your first bug.

What to look for in DebugView:

  • Event names match your tracking plan (e.g., purchase, form_submit, page_view)
  • Event parameters contain the data you expect (revenue, user ID, form name)
  • Events fire at the moment you trigger them (no delays)
  • No duplicate events (a single click should fire one event, not three)

DebugView only shows data for users who have enabled debug mode on their browser. To enable it on your own device, install the Google Analytics Debugger browser extension and toggle it on. Then refresh your site and check DebugView again.

If DebugView shows no events, skip to Step 2. If it shows events but with incomplete data, jump to Step 4.

Step 2: Verify Your GA4 Tag Is Deployed Correctly

If DebugView shows nothing, your GA4 tag either isn't firing or isn't deployed to your site at all. Use the Google Tag Assistant to verify deployment.

How to use Tag Assistant:

  1. Install the Google Tag Assistant browser extension.
  2. Navigate to your website.
  3. Click the Tag Assistant icon in your browser toolbar.
  4. Look for your GA4 property ID (starts with G-).

Tag Assistant will show you:

  • Whether your GA4 tag is installed
  • The tag's status (firing or not firing)
  • Any warnings or errors with the tag
  • The tag version and configuration

If Tag Assistant shows your GA4 tag with a green checkmark and "Firing" status, your tag is deployed correctly. Move to Step 3.

If Tag Assistant shows a red X or "Not firing" status, your tag isn't working. Check:

  • Is the GA4 measurement ID correct? (Find it in GA4 Settings → Data Streams → Web)
  • Is the tag loading before the page fully renders? (It should fire in the <head> or early in the <body>)
  • Are there JavaScript errors on your page? (Check DevTools Console)
  • Is JavaScript disabled on your site? (Unlikely, but worth checking)

If you're using Google Tag Manager, verify your GTM container is set up correctly and that your GA4 tag inside GTM is configured with the right measurement ID.

If you're deploying GA4 directly to your site (not through GTM), check that your GA4 script tag includes the correct property ID:

<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

Replace G-XXXXXXXXXX with your actual GA4 measurement ID. If the script is missing or the ID is wrong, that's your bug.

Step 3: Check for Event Duplication and Data Corruption

Sometimes GA4 tracking works, but it works too well—events fire twice, or data gets corrupted by conflicting tags.

How to spot duplication:

  1. In GA4, go to ReportsRealtime.
  2. Open your website and perform a tracked action (click a link, submit a form).
  3. Watch the Realtime report. Count how many events appear.
  4. You should see one event for each action. If you see the same event twice, you have duplication.

Duplication happens when:

  • Your GA4 tag fires twice (once directly, once through GTM)
  • A third-party script (like a chatbot or analytics plugin) is also firing GA4 events
  • Your GTM container has multiple GA4 tags pointing to the same property

How to fix duplication:

  • If GA4 is deployed both directly and through GTM, remove the direct deployment. Use GTM as your single source of truth.
  • If a third-party script is firing GA4 events, disable it or configure it to use a separate GA4 property.
  • If GTM has multiple GA4 tags, delete the duplicates and keep one.

How to spot data corruption:

  1. In GA4, go to ReportsEngagementEvents.
  2. Look at your top events. Do the event names match your tracking plan?
  3. Check for typos or variations (e.g., purchase, Purchase, PURCHASE, purchase_event).
  4. GA4 treats these as separate events, which fragments your data.

Data corruption also happens when:

  • Custom event parameters contain unexpected data types (a revenue field that contains text instead of numbers)
  • User IDs are inconsistent (sometimes a UUID, sometimes an email, sometimes a number)
  • Event parameters are missing on some events but present on others

To fix this, audit your tracking plan. Document what each event should contain, then check your actual events against that plan. Use GA4 Events for SEO: What to Track Beyond Pageviews to set up clean, consistent event tracking.

Step 4: Audit Your Event Parameters and Custom Dimensions

GA4 events can fire, but with incomplete or wrong data. This is the most dangerous bug because you won't notice it immediately—your reports will look normal, but the underlying data is corrupted.

How to audit event parameters:

  1. In GA4, go to ReportsEngagementEvents.
  2. Click on an event you want to audit (e.g., purchase).
  3. Look at the Event parameters section. This shows what data is attached to each event.
  4. Check if the parameters match your tracking plan. Are all required fields present?

For example, if you track a purchase event, you should see:

  • transaction_id (unique identifier for the purchase)
  • value (total revenue)
  • currency (e.g., USD)
  • items (product details)

If any of these are missing, your event is incomplete. Go back to your tracking code and add the missing parameters.

How to audit custom dimensions:

  1. In GA4, go to ConfigureCustom definitionsCustom dimensions.
  2. Look at your custom dimensions. Are they all still in use?
  3. For each active dimension, check if data is flowing. (GA4 will show a status indicator.)
  4. If a dimension shows "No data" after 48 hours, either it's not being set correctly, or your tracking code is wrong.

Common parameter bugs:

  • Revenue fields contain text instead of numbers (e.g., "$99.99" instead of 99.99)
  • User IDs are inconsistent (sometimes hashed, sometimes plain text)
  • Event names have typos (GA4 is case-sensitive; Purchase and purchase are different events)
  • Parameters are missing on some events (e.g., revenue is tracked on desktop but not mobile)

To find these bugs, use DebugView to inspect individual events and compare them to your tracking plan. If you see inconsistencies, update your tracking code.

Step 5: Check for Cross-Domain Tracking Issues

If your product spans multiple domains (e.g., app.example.com and example.com), GA4 might not be tracking users across those domains. This creates data fragmentation—each domain looks like a separate site.

How to check cross-domain tracking:

  1. In GA4, go to ConfigureData streamsWeb.
  2. Click on your web stream.
  3. Look for Cross-domain tracking. Is it enabled?
  4. If enabled, check that all your domains are listed in the Domains list.

If cross-domain tracking is disabled, users who visit both app.example.com and example.com will be counted as two separate users. Your conversion data will be split across domains, making it impossible to track the full user journey.

How to enable cross-domain tracking:

  1. In your web stream settings, toggle Cross-domain tracking to ON.
  2. Add all your domains to the Domains list (e.g., example.com, app.example.com, blog.example.com).
  3. GA4 will automatically add the _ga parameter to links between these domains.
  4. Save your changes.

Once enabled, test it: visit one domain, click a link to another domain, and check if GA4 recognizes you as the same user. Use DebugView to verify that the user_id or client_id is consistent across domains.

Step 6: Validate Your Google Search Console Integration

GA4 should be connected to Google Search Console to show search queries, impressions, and CTR. If this integration is broken, you lose visibility into which keywords are driving traffic.

How to check GSC integration:

  1. In GA4, go to ConfigureData streamsWeb.
  2. Look for Google Search Console. Is it linked?
  3. If yes, click Manage to verify the connection.
  4. If no, set it up now.

How to link Google Search Console:

  1. In GA4, go to ConfigureData streamsWeb.
  2. Scroll down to Google Search Console.
  3. Click Link Google Search Console.
  4. Select your GSC property from the dropdown.
  5. Save.

Once linked, you can see search queries in GA4 under ReportsAcquisitionGoogle Search Console. If this report is empty after 48 hours, either the integration failed, or you have no organic traffic.

For detailed setup, follow Linking GA4 with Google Search Console: The 2-Minute Setup.

Step 7: Run a Data Discrepancy Audit

Sometimes GA4 data doesn't match other sources (Google Search Console, your CRM, your payment processor). This signals a tracking bug.

How to spot discrepancies:

  1. GA4 vs. GSC: In GA4, compare organic traffic to GSC impressions. If GSC shows 1,000 impressions but GA4 shows only 100 clicks, either your tracking is broken, or your CTR is unusually low. Check The GA4-Powered Website Audit: Find Bugs Using Analytics for a detailed audit process.

  2. GA4 vs. Payment Processor: If you track purchases in GA4, compare the number of transactions to your payment processor (Stripe, PayPal, etc.). If GA4 shows 100 purchases but Stripe shows 120, you're missing 20% of your data.

  3. GA4 vs. CRM: If you track form submissions, compare GA4 events to your CRM. If GA4 shows 50 form submissions but your CRM shows 75, your tracking is incomplete.

How to investigate discrepancies:

  1. Check the time range. GA4 reports are often delayed by 24-48 hours. If you're comparing today's data to yesterday's, you'll see discrepancies.
  2. Check the traffic source. GA4 might be missing traffic from certain sources (direct traffic, some mobile apps, some ad platforms).
  3. Check for filters. GA4 filters can hide traffic. Go to ConfigureData filters and make sure you're not accidentally filtering out real data.
  4. Check for sampling. If your property receives high traffic, GA4 might be sampling your data (showing a statistical estimate instead of actual data). This causes discrepancies.

For a comprehensive guide, see Identifying and resolving Web Tracking discrepancies and How to Fix GA4 Data Discrepancy Issues.

Step 8: Check Your Data Retention Settings

GA4 has a default data retention of 2 months. After 2 months, your historical data is deleted. If you haven't changed this setting, you're losing data every day.

How to check data retention:

  1. In GA4, go to ConfigureData settingsData retention.
  2. Look at the current setting. If it says "2 months," you're losing old data.
  3. Change it to "14 months" (the maximum for free GA4 accounts).

For step-by-step instructions, see GA4 Data Retention Settings: The One Toggle Founders Forget.

This isn't a tracking bug, but it's a data loss bug. If you don't fix it, you'll lose the ability to compare year-over-year performance.

Step 9: Audit Your Filters and Segments

GA4 filters can accidentally hide or distort your data. If you've set up filters (to exclude internal traffic, for example), they might be too aggressive.

How to check filters:

  1. In GA4, go to ConfigureData filters.
  2. Look at your active filters. What are they filtering out?
  3. For each filter, ask: Is this filter still needed? Is it filtering out real data?

Common filter mistakes:

  • IP-based filters that exclude real users (e.g., filtering out your entire office, which accidentally filters out customers in the same geographic area)
  • Bot filters that are too aggressive (filtering out legitimate traffic from mobile apps or automated tools)
  • Referrer filters that block legitimate traffic (e.g., filtering out traffic from your own blog)

If you're not sure what a filter does, disable it temporarily and watch your traffic numbers. If traffic jumps, that filter was hiding real data.

Step 10: Set Up Automated Alerts for Tracking Anomalies

Manual audits are good, but automated alerts are better. GA4 can notify you when something goes wrong.

How to set up anomaly detection:

  1. In GA4, go to Reports → any report (e.g., Realtime).
  2. Click the Create alert button (usually in the top right).
  3. Choose a metric (e.g., "Users" or "Conversions").
  4. Set a threshold (e.g., "Alert if users drop by 50%").
  5. Choose how to be notified (email, Slack, etc.).
  6. Save.

GA4 will now alert you if your traffic drops suddenly, conversions spike unexpectedly, or any other anomaly occurs. This gives you early warning before a tracking bug costs you weeks of data.

For more sophisticated monitoring, connect GA4 to Looker Studio and set up a dashboard that you review weekly. See The 5 GA4 Reports Every Busy Founder Should Bookmark for the reports that matter most.

Common GA4 Tracking Bugs and How to Fix Them

Here are the bugs we see most often:

Bug: GA4 Tag Not Firing

Symptom: DebugView shows no events. Tag Assistant shows "Not firing." Cause: GA4 tag is missing, misconfigured, or blocked by a content security policy. Fix: Verify the tag is deployed with the correct measurement ID. Check for JavaScript errors in DevTools Console. Add your domain to your content security policy if needed.

Bug: Events Fire but With Missing Data

Symptom: DebugView shows events, but parameters are incomplete. Cause: Your tracking code isn't passing all required parameters. Fix: Review your tracking plan. Add missing parameters to your event tracking code. Use DebugView to verify all parameters are present.

Bug: Event Duplication

Symptom: Each action fires the same event twice. Cause: GA4 tag is deployed twice (directly and through GTM), or a third-party script is also firing GA4 events. Fix: Remove duplicate deployments. Use GTM as your single source of truth. Disable third-party scripts that fire GA4 events.

Bug: User ID Inconsistency

Symptom: Same user is counted as multiple users. Cause: User ID is not consistent across sessions or devices. Fix: Use a persistent identifier (e.g., a database user ID) instead of session-based identifiers. Set the user ID at login and maintain it across all events.

Bug: Cross-Domain Tracking Broken

Symptom: Users who visit multiple domains are counted as separate users. Cause: Cross-domain tracking is not enabled in GA4. Fix: Enable cross-domain tracking and add all your domains to the domains list. Test with DebugView to verify users are tracked across domains.

For more detailed troubleshooting, see Common GA4 Tracking Errors and How to Fix Them and GA4 Tracking Issues and How to Fix Them.

Create a Tracking Audit Checklist

Use this checklist to audit your GA4 tracking monthly. Check off each item as you verify it.

  • DebugView shows events firing in real-time
  • Tag Assistant shows GA4 tag deployed and firing
  • No event duplication in Realtime report
  • Event names match your tracking plan (no typos)
  • Event parameters contain all required data
  • Custom dimensions have data flowing
  • Cross-domain tracking is enabled (if applicable)
  • Google Search Console is linked
  • Data discrepancies are within 5% of other sources
  • Data retention is set to 14 months
  • Filters are not hiding real data
  • Anomaly alerts are configured

Run this checklist once a month. It takes 30 minutes and will catch 90% of tracking bugs before they cost you data.

Automate Your Tracking Audits

Manual audits work, but they're easy to skip. Automate them instead.

Set a calendar reminder to run this audit on the first Monday of every month. Block 30 minutes on your calendar. Treat it like a meeting you can't miss.

Create a shared dashboard that your team can check daily. Use Looker Studio to build a one-page dashboard showing your key metrics. If something goes wrong, the dashboard will show it immediately.

Connect GA4 to your CRM or data warehouse. If you use a tool like Segment, mParticle, or RudderStack, you can sync GA4 data to your backend systems. This lets you compare GA4 numbers to your source of truth (your payment processor, your CRM, etc.) automatically.

Use a monitoring service. Tools like Seoable can audit your tracking setup and alert you to problems automatically. (Full disclosure: we built this to solve exactly this problem for founders like you.)

Key Takeaways

GA4 tracking bugs are silent, but they're not invisible. Catch them with these steps:

  1. Use DebugView to see events firing in real-time. If nothing appears, your tracking is broken.
  2. Use Tag Assistant to verify your GA4 tag is deployed and firing.
  3. Check for duplication in your Realtime report. One action should fire one event.
  4. Audit your event parameters. Make sure every event contains the data you expect.
  5. Verify cross-domain tracking if you have multiple domains.
  6. Link Google Search Console to see search queries in GA4.
  7. Run data discrepancy audits to catch gaps between GA4 and other sources.
  8. Check your data retention settings. Change from 2 months to 14 months.
  9. Audit your filters. Make sure they're not hiding real data.
  10. Set up automated alerts. Get notified if something goes wrong.

Run these checks once a month. It takes 30 minutes and will save you weeks of lost data. The cost of not doing this is far higher than the time it takes to do it right.

Start with Step 1 today. Open DebugView, trigger an event, and verify it appears. If it does, you're tracking correctly. If it doesn't, you've found your bug. Fix it now, before it costs you.

For a complete SEO foundation, also review The Free SEO Tool Stack Every Founder Should Set Up Today and The Quarterly SEO Review: A Founder's Repeatable Process to build tracking and auditing into your regular workflow. If you need a complete domain audit and keyword roadmap alongside your tracking setup, Seoable delivers both in under 60 seconds for a one-time $99 fee—GA4 audit included.

Free weekly newsletter

Get the next one on Sunday.

One short email a week. What is working in SEO right now. Unsubscribe in one click.

Subscribe on Substack →
Keep reading