Skip to main content
All articles

How GA4 Is Shaping Analytics

6 min read

An event stream flowing left to right through User Visit, Product View, Add to Cart and Purchase.

GA4 was not a redesign of Universal Analytics. It was a change of unit. Sessions gave way to events, and everything built on top of the old unit — reports, benchmarks, the vocabulary teams used in meetings — stopped meaning quite what it used to.

Teams that ported their old reports across one for one got numbers that no longer reconcile with anything. Teams that treated it as a chance to rebuild measurement around behaviour got something more useful than they had before. The migration was the easy part; the rethink was not.

From sessions to events

Universal Analytics organised the world into sessions: a visit, with pageviews inside it, bounded by a timeout. That model was built for a web of pages and it aged badly against apps, single-page interfaces and journeys that cross devices.

GA4 records events instead. A pageview is an event. A scroll is an event. A purchase is an event with parameters attached. Sessions still exist as a derived concept, but they are no longer the atom, which is why session-based metrics that survived the move often behave differently from the ones people remembered.

  1. 01Event
  2. 02Parameters
  3. 03Key event
  4. 04Audience
  5. 05Activation
The modern chain. Each step is a design decision, and the first one constrains everything after it.

Bounce rate is the clearest example of the shift. It was replaced by engagement rate, defined by whether a visit showed a positive signal rather than whether it contained a second pageview. That is a better question, and it also means historical comparisons are not comparisons at all.

Naming, and why it matters more than it should

Because everything is an event, the event schema becomes the data model. Names and parameters chosen casually in week one turn into the permanent shape of every report, audience and export that follows.

What GA4 originally called conversions were later renamed key events, with conversion reserved for the advertising side of the stack. That is a small vocabulary change with a real consequence: the number an analyst quotes and the number a media buyer quotes can now legitimately differ while both are correct.

Modelling, thresholds and the end of certainty

The larger philosophical change is that GA4 does not pretend to have observed everything. Where identifiers are missing or consent was not given, it models. Where a report might expose an individual, it withholds rows behind a threshold rather than showing them.

This unsettles people who spent a decade treating analytics as a ledger. It should not. The old numbers were never complete either; they simply failed silently instead of declaring the gap. A modelled figure with a stated method is more honest than a precise one built on quietly missing data.

The practical adjustment is to stop reconciling analytics to the penny against a payment processor. They are answering different questions, they always were, and GA4 is merely the first version to admit it.

Retention is the trap

The default retention window for user-level data is short, and the maximum on the free tier is measured in months rather than years. Anything not exported before that window closes is gone, and no amount of escalation brings it back.

This catches teams out roughly a year after migration, when someone asks for a year-on-year comparison that the property is no longer capable of producing. The fix has to be put in place before it is needed.

Which is why the BigQuery export matters more than any report in the interface. It is available without an enterprise contract, it captures event-level data outside the retention limits, and it turns analytics from a reporting tool into a data source other systems can query. Turn it on during setup, even if nobody has a use for it yet.

The most valuable thing in GA4 is the export, not the dashboard.

Attribution moved too

Data-driven attribution became the default, replacing last-click as the standard lens. Credit is distributed across the path rather than handed entirely to the final step, which changes which channels look good — usually upgrading upper-funnel activity and deflating branded search and retargeting.

That is a better model and it creates a political problem. Any channel that looked excellent under last-click now looks worse, and the team responsible for it will have opinions about the new methodology. Change the model before anyone has a quarterly target riding on the old one, not after.

Explorations are where the analysis lives

The standard reports are deliberately shallow. They answer what happened at a summary level and are not where real questions get resolved, which surprises anyone expecting the old report library.

Explorations carry the actual analytical weight: funnels built from arbitrary events, path analysis, cohort comparisons, segment overlap. The learning curve is real, and it is the difference between using GA4 and simply looking at it. A team that never opens Explorations has migrated the tool without migrating the practice.

Worth knowing that these analyses are subject to the same thresholds and sampling as everything else. An exploration that returns suspiciously round numbers on a narrow segment is usually telling you the segment is too small to report on, not that the behaviour is unusually tidy.

Migrating without losing the past

The historical data problem is the one teams underestimate. Universal Analytics stopped collecting, its interface eventually went away, and anything not exported before that point exists only in whatever screenshots and spreadsheets people happened to keep.

Even where history was preserved, it does not stitch to GA4 data. Different unit, different definitions, different attribution. A year-on-year chart that splices the two is comparing two incompatible measurement systems and presenting the seam as a trend.

The honest approach is to keep the old data as a separate archive, annotate the changeover clearly in any long-range chart, and accept a genuine break in the series. Teams that quietly blended the two spent the following year explaining movements that were artefacts of the merge.

The setup mistakes that recur

Most broken GA4 properties are broken in the same handful of ways, and nearly all of them are configuration rather than anything inherent to the platform.

  • Marking too many events as key events, which dilutes the signal until nothing stands out as important.
  • Cross-domain measurement left unconfigured, so a checkout on another domain registers as a new user arriving from a referral.
  • Internal and developer traffic never filtered, quietly inflating engagement on exactly the pages the team visits most.
  • Duplicate tags firing the same event twice, producing numbers that look strong and reconcile with nothing.
  • Consent handling half-implemented, which starves modelling of the input it needs to fill gaps.

None of these announce themselves. The property keeps reporting, the charts keep moving, and the errors are usually found months later by someone trying to answer a question the data cannot actually support.

What good looks like now

  • A deliberate event schema, documented, with names nobody is embarrassed to inherit.
  • BigQuery export enabled from day one, regardless of current need.
  • Consent handling configured properly, so modelling has something to work from.
  • A small set of key events tied to revenue, rather than every interaction marked important.
  • Reports rebuilt around behaviour, instead of recreated to resemble the old ones.

The teams that got the most from the change stopped asking how to make GA4 produce their old reports. The question that pays is what you would measure if you were starting now, with events as the unit and the export as the foundation.