I have reached the conclusion that the most popular metrics in Universal Analytics (the “old” Google Analytics), after sessions and users, are bounce rate and session duration on page metrics. In Google Analytics 4 these metrics do not exist at all, and are replaced by other metrics.

Marketers who start using Google Analytics 4 look for the old metrics and are disappointed when they don’t find them, so in this post I want to explain to you how to use the new metrics, and why they are much better than the old ones.


It is important to read this post carefully, because if you do not understand how the metrics are calculated, you may end up getting inaccurate insights.

Introduction: how the old metrics were calculated

Let’s start with the bounce rate that teaches us what percentage of users left the site.


What is considered “bouncing” off a site?
Unlike what many people think, it has nothing to do with the 30 minutes spent in a session or with the number of pages the user visited. Rather, it refers to the amount of interaction hits sent during the session.
A hit can be a page view, event or transaction.


A “bounce” refers to a session that ended after one hit.
That is, a user who came to the site and viewed only one page, and did not perform any event or transaction, is considered a “bounce.”


Bounce rate is the ratio between the percentage of visits defined as bounces divided by the total number of visits.

How is session duration calculated in the old Google Analytics?

Allow me to burst yet another bubble and tell you that Google Analytics has no way of knowing how long you have actually spent on a site.
Moreover, if a user enters a blog post and reads it for 20 minutes, and the site owner does not post any event during those 20 minutes the visit will be considered a bounce, and the user’s session duration will be 0.
Yep, a big fat zero.


Why is this happening?
Google Analytics calculates session duration on a site as the time the last hit of the session was made, minus the time when the first hit was made.


For example, if the last hit was an event sent at 9:05, and the first hit was a page view sent at 9:00, then the session duration on the page will be calculated as 5 minutes.
As I wrote before, if a user enters a page and stays on it for 20 minutes (because of the click, etc.), but the site owner does not send any event during those 20 minutes, the session duration on the site will be calculated as 0 since Google Analytics needs two hits to be able to calculate the session duration.


Note the example below, where the average session duration of 9,196 sessions is 0, which of course affects the average session duration time that appears in the reports as 02:53, while the real duration time of those who did not “bounce” is 04:49:

How do things work in Google Analytics 4?

First of all, instead of bounce rate there are engaged sessions, and instead of session duration there is engagement time.
Ostensibly I would expect an engaged session to be the complementary number to the bounce rate.


Meaning, if I have a 60% bounce rate, 60% of my users “abandoned” the site and 40% engaged with it.
But it’s quite the opposite. Since an engaged session in Google Analytics 4 is defined as a visit in which one or more of the following 3 actions was performed:
• 2 pages or more were viewed.
• A conversion was made.
• An active stay on the site lasted at least 10 seconds.


A visit where one or more of these 3 actions was performed will be considered an engaged session, and as you can see it has nothing to do with how the old bounce metric is calculated.


Now you can understand that engagement rate is simply a calculation of engaged sessions divided by the total number of sessions:

The reason the engagement rate is more accurate than the bounce rate has to do with the fact that on content sites, landing pages, or any other site where site activity is not necessarily measured through page breaks, the bounce metric is extremely inaccurate and does not give a good indication of the engagement on the site.


The way Google Analytics 4 calculates engagement solves the problem in some way, and even though it, too, is not perfect, it’s much much better than it was in the past when engagement was calculated by the bounce rate.

How does session duration work in Google Analytics 4?

As I explained earlier, the old version of Google Analytics had a problem calculating the session duration. Google Analytics 4 tackles the problem in an original way.
First of all, during the visit, and provided that the user is really active on the site, Google automatically sends events called user_engagement.


There is no exact definition of when this event was sent, but according to Google it happens “periodically, while the app is in the foreground”.


That is, as long as the user is active on the site/app and does not close them.
In addition, Google occasionally attaches the engagement_time_msec parameter to events, which measures how long the user has been active on the site since the last time this parameter was sent.


Take a look at the events sent in the session I did:

The first event sent (even before page_view) is user_engagement, and it is sent without the engagement_time_msec parameter:

Then, almost instantly, an event page_view is sent which includes the engagement_time_msec parameter. The number is 5 milliseconds which is practically no time, because it is the first event sent and therefore the user did not have time to do anything on the site:

Then a popup_impression event is sent that also includes the engagement_time_msec parameter. The number 20,271 expresses around 20 seconds, which is the time I have been active on the site since the last event:

And another automatic user_engagement event that also includes the engagement_time_msec parameter:

Then an event of page_view, but this time without the parameter engagement_time_msec:

I’m assuming you got the point…

It is important to emphasize that if you minimized the window, moved to another tab or did not actively move your mouse – the engagement_time_msec timer will not measure this time as a session duration on the site, which is a huge improvement to the way things were calculated in the old Analytics.


Think of a user who walks into their office in the morning, opens a news site and leaves it open while they go make a cup of coffee.
29 minutes later they return to the computer and start reading the morning news.
In the old Universal Analytics, those 29 minutes would be included as part of the session duration even though the user was not on the computer at all at that time.


In Google Analytics 4, on the other hand, the timer will stop if the user doesn’t perform any activity, so those 29 minutes will not be included in the calculation.


This brings me to a very important point you should keep in mind. That is, the average engagement time per session metric in Google Analytics 4, ostensibly replaces the average session duration metric in the old Analytics, but is actually a completely different metric.

While session duration measures the time elapsed between the first and last hit, average engagement time per session measures the actual time the user was active on the site, using a scheme of all the values sent in the engagement_time_msec parameter during the session.

In conclusion

I know that bounce rate and session duration, or engagement rate and average engagement time per session are seemingly simple metrics and I did not have to invest around 1400 words to explain to you what they mean.
Only seemingly…


If I did not go into depth explaining the matter, I believe most people would not know the true meaning of the numbers, and without understanding what the numbers mean, the conclusions they’d be making would be wrong.

Was this article helpful?