Every GA4 property eventually has one of these problems; recognising the symptom saves days of guessing.
Here are the recurring faults and how each one looks.
Duplicate tagging. Symptoms: Views per session near an even number, engagement rate near 100%, page_view count roughly double session_start. Confirm in the Network tab: two collect? requests with en=page_view per load. Causes: theme plus plugin, GTM plus hard-coded snippet, the SPA history switch plus manual page_view.
Self-referrals. Your own domain in Session source. Causes: cross-domain not configured, a payment or SSO hop, a subdomain on a different measurement ID, or redirects stripping the _gl parameter. Fix the domain list and add the hop to List unwanted referrals.
Unwanted referrals. paypal.com, stripe.com, accounts.google.com as top sources, stealing credit from the real channel and splitting sessions. Add them to the unwanted referrals list in tag settings; GA4 then ignores them as referrers.
Unassigned channel. Non-standard utm_medium, or source set but medium missing. Pull Session source / medium for Unassigned rows and fix the links; optionally map them in a custom channel group.
(not set) in landing page: sessions that began without a page_view (late session_start, an MP event). In custom dimensions: the parameter is missing on some events.
Bot and spam traffic. Known bots are filtered automatically, but spikes of 1-second sessions from a single city, one browser version and 100% new users are typical of scrapers; segment them out with a hostname/country/browser condition and consider server-side blocking. GA4 has no custom bot filter and no hostname filter, so a data filter cannot help.
Hostname leaks. Staging, localhost or a scraper copying your HTML sends data to your property. Pull Hostname in Explore and exclude it in custom reports or with a GTM trigger condition.
Numbers differ from the backend. Expect 5-15% fewer purchases in GA4 than in your order system (ad blockers, consent, tag timing); investigate beyond that by comparing transaction_id lists in BigQuery.
Order of investigation: Network tab, then DebugView, then Explore with Hostname, Page referrer and Session source / medium.
Remember
- Doubled page views: look for two collect requests per load
- Self-referrals and payment-gateway referrals: domain list and unwanted referrals
- No hostname/bot data filters exist; use segments, custom reports and GTM conditions