Back to blog
|9 min read

GA4 vs Universal Analytics: What the Migration Broke in Your Data

Two years after Google retired Universal Analytics, many organisations are still wrestling with data that does not match their historical benchmarks. That is not necessarily a tracking failure, it is often a consequence of fundamental measurement model differences between the two platforms that nobody communicated clearly during the migration.

The Session and User Model Has Fundamentally Changed

In Universal Analytics, a session was defined as a period of activity with a 30-minute timeout. A new campaign source, a new day, or midnight rolling over all started new sessions.

GA4 uses a different model: sessions are defined by a ga_session_id tied to the first event in a session, with an activity timeout but no midnight reset and no campaign based session breaks.

This single change means GA4 will report fewer sessions than UA did for the same traffic, particularly for sites with long average session durations or frequent campaign based bouncing.

If your reporting relied on session based KPIs with UA baselines, you cannot directly compare GA4 session counts against those baselines without adjusting for the methodological difference.

Similarly, UA counted a unique user as a unique client ID per browser per device.

GA4 uses a more sophisticated identity graph when Google Signals is active, which can resolve users across devices, producing lower user counts with higher sessions per user.

Bounce Rate Is Gone, and Engagement Rate Is Not the Same Thing

UA's bounce rate measured the percentage of single page sessions with no interaction event.

GA4 replaced this with engagement rate, which measures the percentage of sessions with an engaged session, defined as a session lasting more than 10 seconds, triggering a conversion event, or containing at least two page views.

The two metrics are not inverses of each other. A 60% bounce rate in UA does not correspond to a 40% engagement rate in GA4 for the same property.

Sites with lots of single page content that users actually read will see much lower bounce rates in GA4 because the 10-second threshold credits the session as engaged even if the user never navigates.

Conversely, sites with high traffic blog content where users read a single article and leave may see their "engagement rate" appear impressive while conversion related engagement remains low.

Comparing GA4 engagement rates to UA bounce rates in executive reports without this context generates confusion and erodes trust in analytics data.

E-commerce Data Model Differences

UA used the Enhanced E-commerce data layer with a custom data structure that varied widely across implementations. GA4 has a standardised e commerce event schema with specific event names and required parameter names.

During migration, many teams implemented the GA4 events while keeping UA enhanced e commerce running in parallel, but the two schemas measure funnel steps differently.

UA tracked product clicks, product detail views, and add to cart with its own action field syntax. GA4 uses separate events (select_item, view_item, add_to_cart) with different parameter structures.

If your migration was done by mapping UA actions to GA4 events without validating the parameter level equivalence, you likely have a GA4 e commerce schema that fires events at the right points but sends parameters in the wrong format, which means funnel reports look right until you try to use product level data, where the discrepancies become apparent.

Ready to audit your GA4 property?

Run a full GA4 audit in under 10 minutes. Free to start.

Start Free Audit