GA4 problems, and how to fix them.
GA4 rarely breaks loudly. It reports a number that looks plausible and is wrong. 16 guides, each with how to confirm it and what to change.
Find the symptom. Open the fix.
The nine problems GA4 users search for most, each with a guide that shows how to confirm it and what to change.
- More sessions than real visitorsHow to identify bot and spam traffic in GA4, why known-bot exclusion and filters cannot close the gap, and what to do instead: the signals bots control.Traffic that is not real
- Traffic dropped overnightWhy GA4 traffic drops suddenly and how to diagnose it in order: tracking breaks, consent mode changes, bot filtering, algorithm updates and reporting changes.Traffic that is not real
- (not set) in source / mediumGA4 shows (not set) in source/medium when it receives the hit but cannot classify the traffic.Attribution that does not add up
- Ads shows clicks, GA4 shows far fewer sessionsWhy Google Ads clicks never match GA4 sessions: consent mode, redirects, ad blockers, attribution windows and bot clicks, and how to tell which one is yours.Attribution that does not add up
- GA4 and Google Ads disagree on conversionsWhy GA4 and Google Ads report different conversion counts: the four mechanisms behind the gap, why consent modelling makes it drift, and which number belongs in which decision.Conversions that go missing
- Key events that never countWhy GA4 events fail to count as conversions, covering key event marking, case sensitivity, consent mode filtering, counting methods, the 30-event limit, and prevention setup.Conversions that go missing
- Purchases in DebugView, not in reportsWhy GA4 purchases appear in DebugView and real-time but vanish from standard reports, from consent mode filtering and thresholds to malformed parameters.Conversions that go missing
- Tags fire in GTM Preview, GA4 shows nothingWhy GTM Preview shows tags firing while GA4 reports show nothing: unpublished containers, consent mode, ad blockers and measurement ID mismatches, with fixes.Conversions that go missing
- Rows hidden by data thresholdsGA4 applies data thresholds when Google Signals is on and a report could identify users.Auditing and moving on
Not listed? All 16 guides, by part
Most GA4 problems have three roots.
Knowing which one you have tells you whether a setting fixes it, a tag fixes it, or nothing in GA4 will.
It counts sessions and devices, not people.
Each browser is a user unless you send a User-ID, and Traffic acquisition credits each session to the source it arrived from. A stripped UTM or a cross-domain hop becomes (not set) or direct.
What it cannot see, it hides or estimates.
Data thresholds withhold rows that could identify someone. Explorations can be sampled on large ranges. With consent mode, visitors who decline cookies can be modelled rather than counted.
Every key event is wired by hand.
Conversions exist only once you configure them, usually through Google Tag Manager. A tag that fires twice, fires before consent, or never gets published shows up as a duplicate or a missing conversion.
As Google documents GA4: data thresholds, sampling in explorations, consent mode, User-ID and session-scoped traffic acquisition.
When the question is about people, count people.
Most of these are worth fixing in GA4. One is not a bug: GA4 counts sessions and devices, so without a User-ID it cannot follow one person across their devices and visits. Kissmetrics keeps one record per person, next to GA4.
The same nine days, counted as visits and as one person. Sample data.
How the two compare: GA4 and Kissmetrics side by side.
All 16 guides, in four parts.
Traffic that is not real
Inflated sessions from bots and referral spam, and the traffic drops that follow when you finally filter them.
- 01GA4 Bot and Spam Traffic: How to Identify and Filter ItHow to identify bot and spam traffic in GA4, why known-bot exclusion and filters cannot close the gap, and what to do instead: the signals bots control.
- 02GA4 Traffic Dropped Suddenly? Here's a Systematic Diagnosis GuideWhy GA4 traffic drops suddenly and how to diagnose it in order: tracking breaks, consent mode changes, bot filtering, algorithm updates and reporting changes.
- 03Ad Blockers and Analytics: How Much Traffic You LoseAd blockers block analytics scripts as well as ads, so some visitors never reach GA4. Who uses them, and how to measure the gap on your own site.
Attribution that does not add up
Where (not set) comes from, why Ads and GA4 disagree, and how to get campaign data you can defend.
- 01GA4 (not set) in Source/Medium: Causes and FixesGA4 shows (not set) in source/medium when it receives the hit but cannot classify the traffic.
- 02Why Google Ads Shows 200 Clicks But GA4 Records Only 10 (And How to Fix It)Why Google Ads clicks never match GA4 sessions: consent mode, redirects, ad blockers, attribution windows and bot clicks, and how to tell which one is yours.
- 03How to Import Cost Data From Multiple Ad Platforms Into GA4 (And Why It Breaks)How GA4 cost data import works, why UTM matching makes it fragile, currency and timezone traps, and warehouse alternatives for multi-platform ROAS reporting.
- 04Campaign Tracking Best Practices: From UTM Parameters to Revenue AttributionThe fundamentals of campaign tracking: a UTM strategy, naming conventions that survive, the implementation, and how to connect each campaign to revenue.
Conversions that go missing
Events that fire in preview and vanish in reports, purchases that never arrive.
- 01Why GA4 Is Missing Conversions for Certain Events (And How to Recover Them)Why GA4 events fail to count as conversions, covering key event marking, case sensitivity, consent mode filtering, counting methods, the 30-event limit, and prevention setup.
- 02GA4 Conversions Don't Match Google Ads: Here's Why and What to Do About ItWhy GA4 and Google Ads report different conversion counts: the four mechanisms behind the gap, why consent modelling makes it drift, and which number belongs in which decision.
- 03GA4 Purchases Show in DebugView But Not in Reports: How to Fix ItWhy GA4 purchases appear in DebugView and real-time but vanish from standard reports, from consent mode filtering and thresholds to malformed parameters.
- 04Tags Fire in GTM Preview But GA4 Doesn't Record Them: A Debugging GuideWhy GTM Preview shows tags firing while GA4 reports show nothing: unpublished containers, consent mode, ad blockers and measurement ID mismatches, with fixes.
- 05Why Your Analytics Shows Duplicate Events (And How to Fix Double-Counting)Common causes of event duplication in GA4 and GTM, diagnostic techniques, and prevention strategies including transaction IDs and server-side firing.
Auditing and moving on
Check the whole property in one pass, and what to do if you decide GA4 is not the right tool for the question.
- 01How to Audit GA4 for Data Accuracy (And What to Do When the Numbers Don't Add Up)A 10-point GA4 accuracy audit covering tag verification, consent mode losses, ad blocker gaps, sampling and thresholds, with the fix for each finding.
- 02GA4 Data Thresholds Are Hiding Your Reports: Here's How to Work Around ThemGA4 applies data thresholds when Google Signals is on and a report could identify users.
- 03UA to GA4 Migration: What You Lose, What You Gain, and What to Do About ItWhat changed from Universal Analytics to GA4, which historical data cannot be migrated, how sessions and events differ, and how to adapt your reporting.
- 04Beyond Google Analytics: Why E-commerce Brands Need User-Level TrackingWhy GA4 falls short for e-commerce and how person-level tracking reduces cart abandonment, lifts lifetime value and attributes revenue to the right channel.
Common questions about GA4 data.
Why does GA4 show more sessions than my server logs?
Almost always bot and spam traffic that GA4 has not filtered. Known bot filtering only catches declared bots from the IAB list, so anything crawling with a normal user agent still counts as a session.
What does (not set) mean in source/medium?
GA4 could not attribute the session to a source. The usual causes are missing UTM parameters, a redirect that strips them, a cross-domain gap, or a session that started before consent was granted.
Can I fix GA4 or should I replace it?
Most of these are fixable and worth fixing. Replace it when the question you need answered is about individual people over time, because GA4 models sessions and events rather than persistent identities.
Will Kissmetrics fix my GA4 data?
No. Kissmetrics does not change what GA4 records, so fix GA4 with the guides above. Add Kissmetrics when the question is about people: which campaign brought the customers who paid, and what each one did before paying. GA4 and Kissmetrics compared
More guides: all topic guides.
Fix GA4. Then see who pays.
Kissmetrics runs next to GA4 and records each person from the day you add it.