Introduction
You log into Google Analytics 4, pull up your traffic report, and something feels… off. Your session numbers look inflated. Conversions seem too high — or suspiciously low. Your top traffic source is “(not set).” Sound familiar?
You’re not imagining it. GA4 data is wrong for a lot of businesses — and most of them don’t even know it.
Since Google sunset Universal Analytics in 2023, GA4 has become the default analytics platform for millions of websites. But GA4 is fundamentally different from its predecessor. It has a new data model, new session logic, new attribution rules, and a host of configuration settings that, if left at their defaults, will quietly corrupt your data.
The good news? Every single one of these problems is fixable. In this post, we’ll walk you through the most common reasons your GA4 data is lying to you — and exactly what to do about it.
1. You’re Counting Sessions (and Events) Twice
The Problem:
If your GA4 tag is firing more than once per page — which happens more often than you’d think, especially on sites using both a hardcoded snippet and Google Tag Manager — you’re double-counting sessions, pageviews, and events. Your traffic numbers look great. They’re just not real.
The Fix:
- Audit your site to ensure the GA4 tag is installed in one place only — either directly in the code or via GTM, never both.
- In your GA4 data stream tag settings, enable “Ignore duplicate instances” to prevent the same tag from firing multiple times on a single page load.
- Use GA4’s DebugView (found under Admin → DebugView) to watch events fire in real time and spot duplicates immediately.
2. Your UTM Parameters Are a Mess
The Problem:
GA4 is case-sensitive when it comes to UTM parameters. That means utm_source=Facebook, utm_source=facebook, and utm_source=FACEBOOK are treated as three completely separate traffic sources. If your team isn’t consistent — or if your ad platforms auto-generate UTMs with mixed casing — your channel data becomes fragmented and unreliable.
The Fix:
- Standardise all UTM parameters to lowercase across every campaign, platform, and team member.
- Create a shared UTM naming convention document and enforce it.
- Use a UTM builder tool (Google’s own Campaign URL Builder works well) to ensure consistency.
- Audit existing campaigns and update any UTMs that don’t follow the standard.
3. Your Session Timeout Is Set to the Default (And It’s Inflating Your Numbers)
The Problem:
GA4’s default session timeout is 30 minutes. This means if a user reads your blog post, steps away for 31 minutes, and comes back to finish reading, GA4 counts that as two sessions. For content-heavy sites, service pages, or any site where users take their time, this dramatically inflates session counts and skews your engagement metrics.
Similarly, the default “engaged session” threshold (10 seconds) is far too low — almost any accidental visit qualifies as “engaged.”
The Fix:
- Go to Admin → Data Streams → Configure Tag Settings → Session Timeout and extend it to 60 minutes (or longer, depending on your content).
- Set the engaged session threshold to at least 60 seconds to ensure only genuinely interested visitors are counted as engaged.
- Review your bounce rate and engagement rate after making this change — you’ll likely see a more accurate picture of user behaviour.
4. Your Conversion Events Are Firing Multiple Times Per Session
The Problem:
By default, GA4 counts a conversion event every time it fires — not just once per session. So if a user clicks your “Book a Consultation” button three times before submitting the form, GA4 records three conversions. Your conversion rate looks phenomenal. Your sales team is confused.
The Fix:
- For key conversion events (form submissions, purchases, bookings), configure them to count once per session in your event settings.
- In GTM, use triggers with “Once per page” or “Once per event” firing conditions to prevent repeat triggers.
- Regularly cross-reference your GA4 conversion data against your CRM or booking system to catch discrepancies early.
5. You Have “(not set)” Everywhere — And It’s an Attribution Problem
The Problem:
“(not set)” appearing in your traffic source, campaign, or landing page reports is one of the most frustrating GA4 issues. It usually means GA4 couldn’t attribute a session to a source — often because UTM parameters weren’t passed correctly, cross-domain tracking isn’t configured, or affiliate/click IDs are being stripped from URLs.
The Fix:
- Set up cross-domain tracking in GA4 if your users move between multiple domains (e.g., a booking platform or payment gateway).
- Configure server-side Google Tag Manager to ensure parameters like affiliate IDs and click IDs are reliably passed to GA4.
- Check that your referral exclusion list is correctly configured so internal traffic isn’t being counted as a new referral source.
- Use DebugView and Real-Time reports to trace exactly where “(not set)” is originating.
6. You’re Hitting Data Sampling Limits
The Problem:
GA4’s free tier uses data sampling in Explorations (custom reports) when your dataset is large. This means GA4 is showing you an estimate based on a subset of your data — not the full picture. For high-traffic sites or detailed analysis, this can lead to significantly misleading conclusions.
The Fix:
- Connect GA4 to BigQuery (it’s free for standard usage) and export your raw, unsampled event data. This is the single most powerful thing you can do for data accuracy.
- Schedule regular BigQuery exports so you always have a complete historical record, even if GA4’s retention window cuts off.
- Increase your data retention setting to 14 months (the maximum on the free tier) under Admin → Data Settings → Data Retention.
7. Your Attribution Model Is Misleading You
The Problem:
GA4’s default attribution model credits the last non-direct click for conversions — but it also defaults to crediting the first traffic source for an entire session. This means if a user discovers you via an Instagram ad, browses your site, leaves, and returns directly three days later to book, GA4 may credit “Direct” for the conversion. Your Instagram campaign looks like it’s underperforming. It’s not.
The Fix:
- Understand GA4’s attribution models and choose the one that best reflects your customer journey (Data-Driven Attribution is recommended if you have sufficient conversion volume).
- Use User-level reporting and Path Exploration in GA4 to see the full journey, not just the last touch.
- Consider supplementing GA4 with a dedicated attribution tool if multi-touch visibility is critical to your business decisions.
8. You’re Sending PII to GA4 (And It’s Getting Filtered Out)
The Problem:
If your tracking setup accidentally sends personally identifiable information (PII) — like email addresses, names, or phone numbers — to GA4, Google will filter or block that data to comply with its terms of service. This can cause gaps in your event data that are hard to diagnose.
The Fix:
- Audit your GTM triggers and variables to ensure no PII is being captured in event parameters.
- Use GTM’s Variable Masking feature to redact sensitive values before they’re sent.
- Implement a data layer that strips PII before it reaches your analytics tags.
- This also keeps you compliant with GDPR, POPIA (South Africa), and CCPA.
9. Your Custom Dimensions and Metrics Aren’t Registered
The Problem:
GA4 collects event parameters automatically, but if you haven’t registered them as custom dimensions or metrics in the Admin console, they won’t appear in your standard reports. You’re collecting the data — you just can’t see it.
The Fix:
- Go to Admin → Custom Definitions → Custom Dimensions and register every event parameter you want to report on.
- Do the same for any custom metrics (e.g., scroll depth percentage, video watch time).
- Note that GA4’s free tier allows up to 50 custom dimensions and 50 custom metrics — plan your taxonomy carefully.
10. You’re Not Validating Your Setup Regularly
The Problem:
GA4 implementations break. Tags stop firing after a website update. A developer removes a data layer push. A new campaign launches with inconsistent UTMs. Without regular validation, these issues can go undetected for weeks — corrupting months of data before anyone notices.
The Fix:
- Build a monthly GA4 audit into your team’s workflow. Check DebugView, Real-Time reports, and key conversion paths.
- Set up GA4 Alerts (under Insights & Alerts) to notify you of unusual spikes or drops in key metrics.
- Use Google Tag Assistant to validate tag firing on every major page type.
- Cross-reference GA4 data against your CRM, booking system, or e-commerce platform at least monthly.
Conclusion: Accurate Data Is a Business Asset
Your GA4 data isn’t just a vanity metric — it’s the foundation of every marketing decision you make. Which campaigns to scale. Which pages to optimise. Where your budget should go. If that data is wrong, your decisions are wrong.
The fixes outlined above aren’t complicated, but they do require intentional setup and ongoing maintenance. The businesses that get this right gain a genuine competitive advantage: they know what’s actually working, and they invest accordingly.
At Miss Lily Gee Unlimited, we specialise in helping businesses like yours get their digital marketing data right — from GA4 audits and setup to full attribution strategy. If you’re not confident in your analytics, let’s talk.
👉 Book a free digital marketing consultation at misslilygeeunlimited.co.za
Miss Lily Gee Unlimited is a full-service digital marketing agency based in South Africa, serving beauty, hospitality, and service businesses who want to grow smarter online.


