Why GA4 tracking accuracy matters more than you think
When GA4 data is inaccurate, every decision based on it is compromised. Budget allocation decisions made on inflated conversion counts lead to overspending on underperforming channels. Consent-affected data in GDPR markets creates misleading regional comparisons. Duplicate purchase events make e-commerce ROAS look 30-50% better than it actually is.
The challenge is that GA4 rarely tells you when it is inaccurate. It just shows you the data it has, and it is up to you to know whether to trust it.
1. Duplicate purchase events
Check GA4 → Reports → E-commerce → Purchases. If your transaction IDs have a high duplicate rate (visible in BigQuery: count transactions where transaction_id appears more than once), you have a duplicate fire problem. Also check the purchase event fire count vs order confirmation page views - if fire count is significantly higher, you have duplicates.
Add GTM firing control: "Once per page" or use a dataLayer flag to prevent the purchase tag from firing twice. Alternatively, implement server-side deduplication using the Conversions API.
2. Missing consent mode signals in GDPR regions
Filter GA4 by region (Geographic → Germany or France). Compare conversion rates between EEA and non-EEA traffic. If EEA shows significantly lower engagement metrics, consent signals may be incorrectly blocking analytics events.
Check your GTM consent mode setup. The GA4 Configuration tag should fire in "Basic consent mode" even before consent - so modelled data is captured. Ensure ad_storage and analytics_storage defaults are set correctly.
3. Session attribution mismatch vs ad platforms
Compare GA4 Sessions with Google Ads Clicks for the same date range. More than 20% discrepancy indicates GCLID parameter loss (usually from redirects) or ITP blocking on iOS. Also check GA4 → Acquisition → Traffic Acquisition for "Unassigned" traffic - a high percentage indicates UTM parameter loss.
Ensure no redirects strip URL parameters between the ad click landing page and the tracked page. Enable auto-tagging in Google Ads. Consider server-side tracking for iOS-heavy audiences.
4. Self-referral traffic inflating sessions
Check GA4 Acquisition report for referrals from your own domain or subdomains. If your checkout is on a subdomain (e.g., checkout.yoursite.com) and not cross-domain linked, every checkout start creates a new session attributed to self-referral.
Configure cross-domain linking in GA4: Admin → Data Streams → Configure tag settings → Configure your domains. Add your checkout subdomain to the domain list.
5. Bot and spam traffic inflating metrics
In GA4 → Reports → User → Tech → Browser, look for unusual browser strings. In Acquisition, look for referral sources with very high engagement rates (100% engagement, 0 sessions) - these are often bot traffic patterns.
GA4 has IP filtering removed. Use Google Signals and ensure bot filtering is enabled (Admin → Data Streams → More tagging settings → Define internal traffic). Add your office IP range to internal traffic rules.
6. E-commerce events missing required parameters
In GA4 → Events, click on "purchase" and check the event count vs the count of events with revenue populated. If revenue is null on a significant percentage of purchase events, your dataLayer push is missing the value parameter.
Check your GTM dataLayer push for the purchase event. Ensure the ecommerce object includes: transaction_id, value, currency, and items array. Use GTM Preview to verify the dataLayer.ecommerce object on the order confirmation page.
7. GA4 tag firing on internal users
High admin activity sessions can skew engagement metrics and conversion rates. If your team frequently uses the site, check whether their sessions are filtered. Compare weekday vs weekend traffic patterns - high weekend drop-off may indicate real users, while no weekend drop-off can indicate mostly internal traffic.
Create a GA4 internal traffic rule (Admin → Data Streams → Define internal traffic) for your office IP ranges. Enable the filter (Admin → Filters) to exclude internal traffic from reports.
8. Tag fail rate degrading data over time
Compare month-over-month GA4 session counts and conversion counts. If there is a gradual decline that does not match business performance, your GA4 tag may have developed a fail rate from a GTM change or site update. Check GTM container version history for recent changes.
Deploy continuous tag monitoring to catch fail rate increases within 24 hours. Manual checks catch this problem weeks late - after conversion data is already lost.
Related articles and resources
Audit your GA4 setup for free
The GetInlytics GA4 Gap Analysis checks 40+ compliance indicators and generates a prioritised fix list in under 60 seconds.