What are the practical differences between UA and GA4 (Dims & Metrics)

What are the differences between GA4 and UA and what do we need to pay attention to?

This blog post is going to focus on the numbers (metrics) and dimensions of GA4 vs UA.

Specifically we’re looking at:

  1. How have the numbers changed? Can we treat our numbers the same way.

Rather than questions like:

  1. How should I setup my e-commerce properties?
  2. Where has stuff gone in the interface.

What has changed?

Quite a lot! We’re going to ignore 90% of the technical stuff for another post and just focus on the practical stuff.

We’ll tackle this in two chunks:

  • Do dimensions work differently?
  • Do metrics work differently?

Are you a video person?

We've got a video version of this blog post you can read here.

Do dimensions work differently?

Not really.

The difference between user/session/hit level is a bit more explicit now however and you’ll need to think about that.

Time for an example

For example in UA there was just:

  • medium & source

Now here we have:

  • session medium & session source
  • first user medium & first user source

ga4 and ua comparison

Which one is right?

If you’re working with sessions then you pick session ones. If you’re working with users you use users one. Nice and simple!

Can you have both in one table? No.

You can take consolation in the fact, that if you did it in UA then it was also wrong there.

  • In UA if you added medium + sessions + user, then you got the wrong user numbers.
  • In GA4 if you have session medium + sessions + user you’ll get the wrong user numbers.

Takeaway

Pick the dimensions you want just like UA.

If you start mixing sessions and users you’ll probably have a bad time (also like UA), it’s just that now GA4 acknowledges it.

Do metrics work differently?

Yes.

We'll take them one by one.

Why don't users in UA match GA4?

What’s the difference?

Two main changes.

There are two places this number can change. The first is with reporting identity:

reporting identity form

If you’ve picked blended, then you’ll have fewer users, because UA doesn’t have modelled data. If you pick the second then it’s the same as UA.

The second is GA4 has renamed things.

GA4 renames users

“users” is not the same thing in GA4 vs UA.

  • UA Users: Total users
  • GA4 Users: Active users

If you want UA users, you have to select “Total Users” in GA4.

What is active users?

A count of all users who have an engaged session or it’s their first visit.

How different are users and total users?

If you just compare users & total users, we’ve typically found anywhere 3 - 10% difference for users, typically on the lower end.

The differences between users/active users can be pretty large. We’ve seen 20-30% swings for some profiles with a lot of shallow traffic.

Which should you use?

For joining with UA you’ll want to use Total Users, otherwise you can choose.

Why don't sessions in UA match GA4?

What’s the difference

There is less session splitting than in UA so the session count is often lower.

In UA a new session started every time:

  1. A user passed midnight
  2. A user arrived on a page with campaign parameters
  3. Started browsing after the default timeout

session splitting diagram

In GA4, one and two aren’t true, so there are less split sessions and you typically get fewer sessions overall.

Otherwise it’s basically the same.

How different is sessions from UA to GA4?

We typically found between 4-15% difference.

Why don't pageviews in UA match GA4?

What’s the difference

For most non-SPA websites none. The field is now called “views”, but that’s it.

There are two types of sites that might have notable changes:

  • Websites + apps in one property: Both app and web page views are stored under views.
  • SPAs: GA4 (with enhanced measurement) tracks pageviews from browser history changes.

GA4 can track apps now, so if you have combined app + web these will be mixed up together but otherwise it’s the same.

How different is pageviews from UA to GA4?**

We typically found between 3-8% difference. Usually on the lower bound.

Why don't purchases in UA match GA4?

What’s the difference

For our output purposes - none.

How different is purchases from UA to GA4?

We typically found between 1-5% difference. Usually on the lower bound.

Both have transaction_id available from the API so it’s possible to match them very closely.

Why don't conversions in UA match GA4?

What’s the difference?

For our purposes none past Apr 2023.

By default GA4 conversions track multiple times and UA only tracks once. They added a config option for this in Apr 2023.

If that config option is set then GA4 & UA then conversions can function the same.

How different are conversions from UA to GA4?

We typically found between 1-5% difference. Usually on the lower bound.

Are there any other reasons our numbers won’t be the same?

These are the other big things which catch people out:

Filters

There are no filters by default in GA4.

In UA you added filters at a view level. You can’t do that anymore so you have to compare your GA4 to your top level unfiltered view in UA to check accuracy.

Last non-direct click

By default sessions in UA & GA4 are last non-direct click.

i.e. if a session is direct, GA will lookback in time to find the last non direct session and attribute it to that.

non direct attribution

In UA & GA4 the lookback window is different:

  • 6 months in UA
  • 90 days in GA4

This means for users who stay awhile are more likely to be direct in GA4.

URL parameter exclusions are gone

You can no longer filter out ?internal_tracking_id=23423423423 for the entire property.

This means you might see notably more page URLs if you were doing this.

The setup is wrong

If you find your numbers don’t match the other big that go wrong is implementation.

We’ve seen a lot of versions of this:

  • Perhaps UA & GA4 aren’t in the same places.
  • Perhaps session ID is being sent as a string.
  • Perhaps CORS is blocking requests to a different hostname in a specific region.

How to check if it’s a setup problem or just natural difference in numbers?

We talk through a general process on our blog post:

Joining UA and GA4

.

The quick summary is:

  • Get UA & GA4 for the metric of your choice.
  • Break it down by dimensions
  • Look for differences in relative traffic.

And if you have access to something like e-commerce traffic to reconcile you can use transaction_id and the whole thing is even easier.

If you’d like to see a visual example of this please check out our GA4 & UA reconciliation report.

Are you doing this all with BigQuery?

We haven’t covered how these can change differently with BigQuery in this post. These changes we’ve talked through here are all aimed at the interface/ Looker Studio export.

Questions

Those are our big differences. There is a hell of a lot more going on under the hood and in the interface which we didn’t cover, but that should do us the basics for now!

Dom Woodman Headshot
By Dominic Woodman -- I'm the founder of Piped Out and have never loved 3rd person bio's.