The Confusing Session Count Discrepancy
Many businesses migrating from Universal Analytics to GA4 see a significant difference in session counts — sometimes 20-40% higher or lower in GA4 for the same period. This is not an error. It reflects fundamental differences in how the two products define and count sessions.
How UA Counted Sessions
Universal Analytics defined a session as a period of activity. A session ended when:
- 30 minutes of inactivity had passed
- Midnight passed (sessions did not span calendar days)
- Campaign parameters changed (a new campaign start counted as a new session)
Sessions were based on time. A user who browsed your site, left for 31 minutes, and returned was counted as 2 sessions — even if they never left the computer.
How GA4 Counts Sessions
GA4 sessions are based on the session_start event. A session starts when a user's activity begins and a new session_id is generated. Sessions still expire after 30 minutes of inactivity — but crucially:
- GA4 sessions span midnight: a session that starts at 11:50pm and ends at 12:10am is counted as one session in GA4 (two in UA). This reduces session counts.
- Campaign changes do not start new sessions: in GA4, changing campaign parameters mid-session does not restart the session. This reduces session counts for PPC traffic with attribution chaining.
- Engaged sessions: GA4 introduces "engaged sessions" (sessions where the user was active for 10+ seconds, had 2+ page views, or triggered a conversion). This is not a count difference but a new segment.
Why GA4 Sessions Are Typically Lower Than UA
The midnight spanning change alone reduces GA4 sessions vs UA by 1-3% on average. The campaign change rule reduces sessions further for businesses with high PPC traffic and frequent UTM parameter variations.
Net effect: most businesses see GA4 sessions 5-20% lower than UA sessions for equivalent time periods. This is expected and correct — GA4's session definition is arguably more accurate (a session that spans midnight is really one session).
Why GA4 Sessions Can Be Higher Than UA
In some cases GA4 sessions are higher than UA:
- Firebase integration: if you integrate GA4 with a Firebase app, mobile app sessions count in GA4 where they may not have in UA
- Cross-device tracking with User ID: GA4 may stitch sessions differently when User ID is implemented
- Duplicate tags: if you accidentally have two GA4 tags firing (one via GTM, one hardcoded), sessions double-count
How to Interpret the Difference
Do not try to reconcile UA and GA4 session counts exactly — the methodological differences mean they will never match. Instead:
- Use GA4 as your forward-looking baseline from the implementation date
- Compare GA4 data against itself over time (this year vs last year in GA4, not GA4 vs UA)
- Focus on ratios and rates (conversion rate, engagement rate) rather than absolute session counts — these are more comparable across platforms
New Metrics That Replace Old Ones
GA4 replaces the bounce rate with engagement rate. "Engaged sessions" (defined above) is GA4's quality signal replacing UA's session duration approximation. A 40% engagement rate in GA4 is roughly equivalent to a 60% non-bounce rate in UA — but do not map them exactly.
Summary
GA4 session counts differ from UA due to session spanning midnight (reduces count), campaign change rules (reduces count), and measurement methodology differences. Expect 5-20% lower session counts in GA4 vs UA. This is not a data quality problem — it is a definitional difference. Benchmark your KPIs within GA4 from its implementation date forward.
See our GA4 Setup & Audit service for migration support.
Need help interpreting your GA4 data after migrating from UA? Contact Adslytics.
Need expert tracking setup?
Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.
Get a Free Consultation →