HomeWritingAnalytics

Analytics · 3 min read

Six checks that tell you whether your GA4 is lying

An afternoon of work that usually explains the number nobody in the company can reconcile. None of these needs a developer to start.

A bar chart where two bars that should match are different heights

Universal Analytics is long gone and GA4 is what everyone has, whether they chose it or not. Most of the setups I am handed were configured in a hurry during the migration and have not been looked at properly since.

Here are the six checks I run first. They take an afternoon between them, and they usually find the reason two people in the same company quote different numbers.

1. Is anything counted twice?

Open your key conversion event and compare event count against the number of actual transactions or bookings in your own database. Not close — exact.

What double-firing looks like next to the real number. If the shape is this, stop and fix it before anything else.
Simo Ahava@SimoAhava

If you’re tracking #GoogleAnalytics4 on a SPA website with #googletagmanager, you can update the Google Tag config upon route changes with the “update” field set to “true”. This is crucial for updating page_location and page_referrer for new page states

17 February 2024 · view on X

If you have a single-page app, that is the mechanism behind most of the double counts I see. Simo Ahava’s blog is the place to read up on it properly.

Double-firing is the single most common fault I find, and single-page apps are the usual culprit: the event is bound to a route change that fires twice, or to a component that remounts. It inflates everything downstream, including the conversion rate you are reporting to your board.

2. Is your own traffic in there?

Internal traffic filters are easy to set up and easy to forget. Check whether your office and your team’s home IPs are excluded, and whether the filter is actually active rather than sitting in testing mode, which is where a surprising number of them live.

On a low-volume B2B site your own team can be a meaningful share of sessions.

3. How much is landing in (not set) or direct?

Pull your traffic by source and medium and look at the size of (not set), (direct) and (other).

A large direct bucket rarely means people are typing your URL. It usually means UTMs are missing or malformed somewhere, redirects are stripping parameters, or a campaign was launched without tagging. If a third of your acquisition is unattributed, every channel comparison you make is guesswork.

If you have visitors in the EEA or the UK, your consent banner is shaping your data, and this is where I find the biggest surprises.

Check what happens before consent is given, what is sent after it is refused, and whether Consent Mode is configured at all. Then check the shape of your data against the shape of your traffic — if your analytics says almost nobody visits from Germany and your server logs disagree, you have found something.

Worth saying plainly: Google shut the Privacy Sandbox down in October 2025 and third-party cookies are staying in Chrome. The surviving pieces solve narrow problems. If your measurement plan was built around Topics or Protected Audience, it needs rewriting — those are being removed from Chrome entirely.

5. Do your events carry anything useful?

An event that fires is not the same as an event that tells you something.

Look at a key event and ask what you can segment it by. If purchase arrives with no plan, no value, no source and no step, you can count conversions and nothing else. You cannot ask which plan converts better, or whether the third step is the problem.

Properties are where the answers live. Events on their own are just a tally.

6. Does the funnel report match reality?

Build the funnel for your main journey and look at the step-to-step numbers rather than the overall rate.

If a step shows a 98% pass rate, it is probably not a wildly effective step — it is probably firing on page load rather than on the action. If a step shows more completions than the step before it, the ordering is wrong or something fires out of sequence.

The end-to-end number is the one everybody quotes. The step-to-step numbers are the ones that tell you where to work.

A short walkthrough of DebugView, which is where you check every one of the six points above · watch on YouTube

What to do with what you find

Write it down before fixing anything. Every fault, what it affects, and whether historical data can be trusted either side of the fix — because when the numbers move after the fix, someone will ask whether things got better or whether you changed the counting. You want that answer written down in advance.

Then fix in order of blast radius. Double-counting first, because it corrupts everything. Attribution gaps next. Properties last, since that is additive rather than corrective.

a dashboard you cannot trust — is worse than none at all

Questions people ask

How do I see events in GA4 as they happen?
Turn on debug mode for your browser (the Google Analytics Debugger extension or Tag Manager preview) and open Admin, then DebugView. Every event arrives with its parameters in real time.
Can I fix historical data once I find a fault?
No. GA4 does not let you edit collected data. Write down the date of the fix and compare before and after separately.
Should I move off GA4?
Usually not for this reason. Every tool has these faults if the setup was rushed. Fix the setup, then decide on tools for what GA4 cannot do, like product analytics.
Giovanni Perri

Fractional Head of Growth for UK and English-speaking startups. I build the analytics, automation and experiments, then run growth with your team. More about me · how I work.

Written September 2026. Platform facts checked at the time of writing; if you are reading this much later, check them again.

Thirty minutes. No deck.

If this is the sort of thing you need doing rather than reading, that is the other half of what I do.