Universal Analytics stopped collecting data in July 2023. GA4 is not a new version of the same product, it is a different measurement system with a different data model, different session definition, and different reporting logic. Teams that migrated their GA4 property but kept comparing numbers to UA benchmarks are comparing apples to oranges. This guide covers what actually changed and how to rebuild your reporting on solid ground.
Ecommerce schemas changed too — see theecommerce migration from UAfor the parameter-by-parameter mapping that has to be rebuilt before purchase reports line up again.
A fundamentally different data model
Universal Analytics was built on a hit-based model: pageviews, events, transactions, and social hits were distinct hit types, each processed differently. GA4 replaced all of that with a single event-based model. Everything is an event, a pageview is the eventpage_view, a purchase is the eventpurchase, a scroll isscroll. Parameters attached to each event carry the contextual data that UA encoded in hit type fields.
This is not cosmetic. It changes how sessions are defined, how bounce rate is calculated, how custom dimensions are scoped, and what you can do in BigQuery. Understanding the model difference is a prerequisite for reading GA4 reports correctly — and for choosing the rightGA4 attribution modelwhen comparing channel performance.
What bounce rate means now
UA bounce rate measured sessions where the user visited one page and left without triggering any interaction hit. A user who spent 10 minutes reading a single article was a "bounce." GA4 replaced this withEngagement Rate: the percentage of sessions that lasted longer than 10 seconds, had a conversion event, or had 2 or more page views. The inverse, non-engaged sessions / total sessions, is what GA4 calls Bounce Rate.
The numbers are not comparable. A UA bounce rate of 70% on a blog might translate to an Engagement Rate of 65% in GA4 for the same traffic. Neither is wrong, they are measuring different things. Stop benchmarking GA4 Bounce Rate against UA Bounce Rate — seehow GA4 engagement rate is calculatedfor the underlying definition.
Need to identify which UA metrics your team still relies on and find GA4 equivalents?
Session counting differences
UA sessions reset at midnight in the property timezone, at campaign changes, and after 30 minutes of inactivity. GA4 sessions start with asession_startevent and end after 30 minutes of inactivity by default (configurable). GA4 sessions do not reset at midnight, so a session that starts at 11:45 PM and ends at 12:15 AM is one session in GA4 but two in UA.
Expect GA4 session counts to be lower than UA session counts for the same traffic for this reason alone. This does not indicate tracking loss — for the full mechanic, seehow GA4 counts sessions.
BigQuery: now free for everyone
In UA,BigQueryexport required a GA360 subscription costing tens of thousands per year. GA4 includes BigQuery export at no cost for all properties. This is the most significant structural upgrade for teams that do any kind of custom analysis or data warehousing.
The export schema is event-level: each row is one event, not one session. Rebuilding session-level or user-level analysis from GA4 BigQuery data requires SQL aggregation that was not necessary in the UA export schema. The flexibility is greater but the setup requires more deliberate work.
Migrating from UA benchmarks
The most common migration mistake is treating GA4 numbers as directly comparable to UA. Here is how to audit your exposure and rebuild on solid ground.
Validate
- Audit which UA metrics your team actively used in dashboards, reports, or KPIs
- Identify which UA metrics have direct GA4 equivalents vs which require a new approach
- Check whether any Looker Studio or third-party dashboards still reference UA data connectors
- Confirm UA data export was completed before Google deleted historical data
Fix
- Rebuild key reports using GA4 Explorations or BigQuery, documenting the equivalent metric and how it differs
- Replace UA bounce rate KPIs with GA4 Engagement Rate or a custom non-engaged sessions metric
- Rebuild conversion funnels using GA4 Funnel Exploration. UA Goals do not migrate automatically
- If YoY comparisons are needed, use GA4 data from the overlap period and document the methodology difference
Watch for
- Teams still referring to UA benchmarks for YoY comparison without flagging the methodology difference
- Session counts presented as directly comparable when they use different session reset logic
- Bounce rate presented as comparable when UA and GA4 definitions are different
- Attribution model differences causing campaign performance to appear inflated or deflated vs historical UA data
UA to GA4 migration checklist
- UA data exported or confirmed deleted, no team members expect to access historical UA data in the GA4 UI
- All active dashboards and reports updated to GA4 data sources, UA connectors removed
- KPIs reviewed and mapped from UA definitions to GA4 equivalents with notes on differences
- YoY comparisons include a methodology note when comparing GA4 data to prior UA data
- BigQuery export enabled and schema reviewed for any teams doing raw data analysis
- Conversion events rebuilt in GA4. UA Goals do not carry over
Related guides
GA4 BigQuery Export Parity
Understand why GA4 standard reports and BigQuery export show different numbers, and which to trust for which use case.
GDPR and GA4 Compliance
What your GA4 setup needs to do to meet GDPR requirements for EU and UK traffic.
GA4 Auto-Tagging Conflicts
How GCLID auto-tagging and manual UTMs interact in GA4, and how to resolve attribution conflicts.
Consent Mode v2 Implementation Guide
Complete walkthrough for implementing all four Consent Mode v2 signals correctly in GTM.
Audit your GA4 property
G4 Audits checks 229 data quality and configuration issues across your GA4 property in under 2 minutes.