Complete guide to User Engagement in Google Analytics 4

Unlike Universal Analytics bounce rate, Google Analytics 4 uses user engagement as the primary behaviour metric. This metric should lead you to what content you should improve to get even more visitors, conversions and transactions. 

User Engagement in Google Analytics 4 comes with a set of metrics that we will explore in this article:

  1. engagement rate
  2. bounce rate
  3. average engagement time
  4. average engagement time per session
  5. engaged sessions
  6. engaged sessions per user
  7. user engagement
  8. lifetime engaged sessions
  9. lifetime engagement duration 

Along with that, Google Analytics 4 allows you to adjust the timer to consider a session as an engaged session. Let’s start with the definition.

What’s User Engagement in Google Analytics 4?

As mentioned above, User Engagement is a core aspect of Google Analytics 4. Therefore it’s valuable to understand what it stands for properly. According to Google’s documentation:

“User engagement’ is the amount of time someone spends with your web page in focus or app screen in the foreground, which allows you to measure when users actively use your site or app.

In simple words, the amount of time users actively interact with your website. If they leave your website for 5 minutes to search for something on Google or do their home duties, Google Analytics 4 won’t record this time. Google Analytics 4 records only the time users spend on your website. 

User engagement is about your actual users’ interactions with your website (clicks, reading content, buying products, etc.) or your app. If they are on your website or in your app but don’t take any action because they opened another Google Chrome tab, GA4 doesn’t record this time as user engagement. 

How is User Engagement calculated in Google Analytics 4?

Therefore, to make this metric accurate, the amount of time is sent to Analytics whenever any of the following aspects happen:

  • The user generates an event 
  • The user moves the app screen to the background
  • The user focuses away from your web page
  • The user navigates away from the app screen or web page (e.g., the user closes the tab, window, or app; the user navigates to another screen or page)
  • The site or app crashes

In order to calculate this time correctly, Google Analytics 4 adds the engagement time as “engagement_time_msec” parameter to the next event except for session_start, page_view and first_visit. It doesn’t add time to these events because, usually, no other events happened before them. Therefore there is no engagement time, and there is nothing to add.

Let me give you three examples to understand it better.

Example 1

Suppose a user lands on the blog post for the first time, so this user generates first_visit, session_start, and page_view, after that a user spends 7310 milliseconds of engagement time reading the article before meeting the scroll 50% (second event), and after that, he reads the rest of the article and generates additional engagement time of 11586 and meets 90% of the page scroll. After reading the whole article, the user leaves the website, and because of that, GA4 receives “user_engagement” event that collects the total engagement time after 90% scroll, which equals 1000 for this case.

User…Event nameuser_engagement_msec
lands on home pagefirst_visit, page_view, session_startN/A
scrolls a half of the pagescroll7310
scrolls the rest of the pagescroll11586
leaves the websiteuser_engagement1000

So, in this context, the total engagement time for this user’s session will be 19896 milliseconds or ~ 20 seconds. 

Example 2

Let’s extend example 1 with a few more actions to see how user engagement is calculated for users who visited many pages and made a transaction(conversion).

Suppose a user lands on the blog post for the first time, so this user generates first_visit, session_start, and page_view, after that a user spends 7310 milliseconds of engagement time reading the article before meeting the scroll 50% (second event), and after that, he reads the rest of the article and generates additional engagement time of 11586 and meets 90% of the page scroll.

After that, a user clicks on the pop-up with your product coupon code. This action sends a custom GA4 event “blog_popup” with “engagement_time_msec” equals 412. 

The user arrives on the product page, where he generates 50812 milliseconds of engagement time sent with “add_to_cart” ecommerce event when he clicks on “Add to cart” button. 

After that, the user lands on the checkout pages. At that moment, the website sends “begin_checkout” event with “engagement_time_msec” equals 132.  After that, the user provides all details such as (address, credit card details, etc.) and, in total, generates 183213 milliseconds of engagement time. This time is sent when he clicks on “purchase” button and leaves the checkout pages. 

Once he lands on thank-you page, he generates “page_view” event without user_engagement_msec parameter and “purchase” ecommerce vent with 132 as “user_engagement_msec”. 

Because the user made the transaction successfully, he decided to leave the website, and at that moment, the last “user_engagement” event is sent with “35” in “user_engagement_msec” parameter.

User…Event nameuser_engagement_msec
lands on home pagefirst_visit, page_view, session_startN/A
scrolls a half of the pagescroll7310
scrolls the rest of the pagescroll11586
clicks on the product popupblog_popup412
visits another pageuser_engagement0
lands on the product pagepage_viewN/A
clicks on “Add to cart” buttonadd_to_cart50812
visits another pageuser_engagement0
lands on the checkout pagepage_viewN/A
provides all data on checkout pagebegin_checkout132
visits another pageuser_engagement183213
lands on thank-you pagepage_viewN/A
successful transactionpurchase132
leaves the websiteuser_engagement35

In this case, the total engagement time for the session is 253632 milliseconds or ~ 254 seconds.

Example 3 (Practical) 

Since the best example is a practical one. I decided to check how user engagement is reported in Google Analytics 4 DebugView. You can replicate the same experiment using your GA4 account, Google Tag Manager and DebugView instructions.

For this experiment, I took the following actions:

  1. landed on the article about how to import data into ga4
  2. scrolled it up to the bottom
  3. changed the browser tab and searched for something on Google (3-5 seconds)
  4. returned to my website and visited the contact page
  5. after that, I completed the form and left the website.

After I took these actions, I checked DebugView and it’s what it showed:

User…Event nameuser_engagement_msec
lands on the articlesession_start, page_view,N/A
scrolls 10% of the pagescroll3634
scrolls 25% of the pagescroll3950
scrolls 50% of the pagescroll4173
scrolls 75% of the pagescroll2267
scrolls 90% of the pagescroll1179
searched on Google for 22 seconds

clicked on contact page linkuser_engagement7560
lands on the contact pagepage_viewN/A
scrolls 10% of the pagescroll181
scrolls 25% of the pagescroll7
scrolls 50% of the pagescroll9
started to complete the formform_start2907
scrolls 75% of the pagescroll4599
scrolls 90% of the pagescroll7
submitted the contact form (conversion)contact_form_submitted2348
submitted the contact form (conversion) (duplicated event, thing that I fixed after this article 🙂 )contact_form_submitted2
leaves the websiteuser_engagement4297
Example 3 User Engagement GA4 DebugView Part 1
Example 3 User Engagement GA4 DebugView Part 1
Example 3 User Engagement GA4 DebugView Part 2
Example 3 User Engagement GA4 DebugView Part 2

As you can see, in every case, user engagement was sent as a “user_engagement_msec” parameter and was attached to the next event. The total engagement time for this session will equal 37120 milliseconds or 37.12 seconds. 

What are the core User Engagement metrics used in GA4?

Now after we figured out what’s user engagement in Google Analytics 4, how it’s calculated, and what’s the goal of the event parameter “user_engagement_msec”, we can move to other metrics and Google Analytics 4 elements that are based on user engagement and were mentioned at the beginning of this article. 

What’s considered an engaged session in Google Analytics 4?

The first and one of the most popular questions is about what’s considered an engaged session in Google Analytics 4. Someone can tell you that’s a session in which a user spends at least 10 seconds on your website. Is this right or wrong?

It’s instead neither wrong nor correct. First, a session is considered engaged if it meets at least one of the following criteria:

  • the minimum engagement time threshold an analyst defined in Google Analytics 4 Data Stream settings
  • the session has two pageviews (screenviews) or has at least one conversion. 

By default, the minimum threshold is 10 seconds, but it’s 10 seconds of engagement time. Therefore, it doesn’t mean that a user needs to spend 10 seconds on your website but rather spend 10 seconds actively engaging in the content or product. 

Someone can tell you that 10 seconds is not enough to consider a session as an engaged session, and it’s also right and wrong. 10 seconds is not entirely about engagement; it’s about whether the website content is relevant. If someone spends less than 10 seconds on your website, it means that the website content is irrelevant to the ad or organic search query. Therefore, Google Analytics 4 uses 10 seconds. 

Although GA4 uses 10 seconds by default, you can adjust this number easily. To do that, take the following steps:

  1. Open Google Analytics 4 and go to Admin
  2. Select Data Streams and Go to Data Stream Details
  3. Click on “Configure Tag Settings” and click on show all
  4. Click on “Adjust session timeout”
  5. Modify “Adjust timer for engaged sessions “ and save changes. 
Adjust timer for engaged sessions
Adjust timer for engaged sessions in GA4 Admin Data Stream Details

So, in a nutshell, a session is considered engaged if a website or app user spends more than 10 seconds of engagement time on your website sent to Google Analytics 4 via “user_engagement_msec” event parameter or have at least two page views (screen views) or a user made at least one conversion.  

As a result, Google Analytics 4 uses a few metrics based on engaged sessions. They are:

GA4 metricDefinition
engaged sessionsnumber of engaged sessions that meets the minimum threshold defined by GA4 user in GA4 interface, at least 2 pageviews or 1 conversion
engaged sessions per usernumber of engaged session generated by the specific user 
lifetime engaged sessionsnumber of engaged sessions generated by the specific user for users’ lifetime
lifetime engagement durationamount of engagement time spent by user on your website for users’ lifetime

Now, after we discussed engaged sessions, let’s look at the second metric – engagement rate. 

What’s the engagement rate and bounce rate in Google Analytics 4?

Unlike Universal Analytics, Google Analytics 4 uses engagement rate instead of bounce rate, and even though Google added bounce rate into Google Analytics 4 on July 11, 2022, the primary metric is still engagement rate.

In two words, the engagement rate is defined in terms of engaged sessions, which we discussed early. 

The engagement rate is the percentage of engaged sessions on your website or mobile app, while the bounce rate is the opposite of the engagement rate. 

Therefore, you can find the bounce rate or engagement rate using the following formulas:

Engagement rate = Number of Engaged Sessions / Total Number of Sessions
Bounce rate = 1 - Engagement rate

You can also find the following metrics in GA4 besides the engagement and bounce rates. 

GA4 metricDefinition
average engagement timeThe average length of time that the app was in the foreground, or the web site had focus in the browser for the specific number of users. It’s mainly used in users-scope reports.
average engagement time per sessionAverage user engagement duration per session. It’s mainly used in session-scope reports.

Where to find User Engagement metrics in Google Analytics 4?

As mentioned above, some engagement metrics are user-scope metrics, while other metrics are session-scope metrics. Therefore, you can’t find and use all metrics in the same report.

The main report in Google Analytics 4, where you can find session-scope metrics, is “Traffic acquisition report”. It includes the following metrics:

  • Engaged sessions
  • Average engagement time per session
  • Engaged sessions per user
  • Engagement rate

To find user-scope engagement metrics, you should use “User acquisition report”. It includes such metrics as:

  • Engaged sessions
  • Engagement rate
  • Engaged session per user
  • Average engagement time

In order to find other metrics that were mentioned early but are not available in these two acquisition reports, you should use Google Analytics 4 Explorations, for instance, a free form report. It will also allow you to access such metrics as lifetime engaged sessions and lifetime engagement duration. 

How to work with GA4 User Engagement metrics in BigQuery?

Besides working with engagement metrics in the Google Analytics 4 interface, GA4 uploads this data in BigQuery if you have active product linking. Therefore, it’s also necessary to cast light on how to work with these metrics there. 

First, Google Analytics 4 data in BigQuery includes “engagement_time_msec” parameter in every event besides session_start, page_view and first_visit. Besides that, every GA4 event in BigQuery also has the “ga_session_id” parameter. This parameter is the unique id of the users’ session that allows you to quickly calculate the number of sessions for the specific date and select the events users performed within the specific session.

Thus, in order to calculate the total amount of engagement time of the specific session, you can use this SQL example:

SELECT 
(SELECT params.value.int_value FROM UNNEST(ev.event_params) params WHERE params.key = 'ga_session_id')  as session_id,
SUM(CASE WHEN (SELECT params.value.int_value FROM UNNEST(ev.event_params) params WHERE params.key = 'engagement_time_msec') > 0 THEN (SELECT params.value.int_value FROM UNNEST(ev.event_params) params WHERE params.key = 'engagement_time_msec') ELSE 0 END) / 1000  as engagement_time

FROM `{Your BigQuery Project table with GA4 data}` as ev 

GROUP BY
1
BigQuery Sessions Engagement Time Calculation
BigQuery Sessions Engagement Time Calculation

Of course, you can modify this code in order to get the average engagement time per session of the specific date. Besides that, you can adjust this code to calculate the “average engagement time per user” or “lifetime engagement time” using “user_pseudo_id” or “user_id” variables.

Second, apart from  “engagement_time_msec” parameter available in BigQuery, it also includes two other parameters that can be not so self-explanatory: 

  1. session_engaged
  2. engaged_session_event

The first parameter shows whether the session met the minimum threshold and was considered an engaged session or not. If it’s an engaged session, session_engaged will have “1” in event_params.value.string_value.  If the session is not engaged, it will be equal “0”. Such events as session_start and first_visit usually don’t have “session_engaged” parameter. 

The second parameter includes the number of sessions the user is engaged in. The value usually equals 1, but the value can increase if a user visits your website or app from many devices or browsers and can be recognised as the same user, usually using the “user_id” parameter. 

After we have clarified all key definitions of user engagement in Google Analytics 4, it’s an excellent moment to discuss how we can use all of what we have learned to improve your business. 

How to use User Engagement to improve your business?

The engagement rate has many similar things to the bounce rate, even if it’s slightly different. Many analysts look at the engagement ratio in Google Analytics 4 as an improved version of Universal Analytics bounce rate because if someone lands on your article, reads 50% of that, spends 20 seconds and finds the information needed and leaves your website, it doesn’t mean that the website wasn’t relevant to the user. In this case, Google Analytics 4 shows a better view of such cases.

Since these two metrics have many things in common, they can also be used similarly to find better insights on improving your business. The critical element of the analysis is segmentation. If you see that the traffic that lands on the specific page has a lower engagement rate than other pages in Google Analytics 4, it can mean one of three things: whether the traffic is low quality, the page they land doesn’t address why they land on it, or there is a problem with the GA4 code implementation. 

The same aspect can be extrapolated across many dimensions in Google Analytics 4. Like pages, you can compare default or custom channel grouping, countries, regions, demographic audiences, and so on. 

How to use User Engagement in GA4 to find business insights
How to use User Engagement in GA4 to find business insights

You can even go beyond that and compare custom audiences, see which one has a higher engagement rate and try to find events or patterns that determine it. If you can find a set of events that improve lifetime engagement time, it will also improve retention rate. Thus, it will boost your returning traffic and the overall amount of traffic as well. 

Besides that, one of the analysis techniques is to compare your business metric to the metric standard in your niche, which is called benchmark. 

What’s the benchmark for Engagement Rate?

Since Google Analytics 4 has existed for a few years, and many companies started to migrate to it in 2023, it can still be early to look at the benchmark of user engagement metrics in your niche. 

However, some companies already presented their reports. For instance, according to firstpagesage.com, the average user engagement metric was

71% for B2C websites 
63% for B2B websites

Of course, if you have an ecommerce website, you can’t compare it with an entertainment website (games, movies), and it’s much better to look at the engagement rate in your specific niche. Therefore, the firstpagesage.com also looked at the engagement rate in multiple niches: ecommerce, industrial IoT, engineering, entertainment and so on.

Average Engagement-Rate vs. Industry, prepared by Firstpagesage.com
Average Engagement-Rate vs. Industry, prepared by Firstpagesage.com

Apart from this company, Orbit Media conducted its own research and found that the average engagement rate was around 55%. However, the sample included only 65 websites. 

Takeaways: User Engagement as a measure of relevance 

Unlike Universal Analytics, Google Analytics 4 uses user engagement as the primary metric to detect whether your website or app content is relevant to the users. 

If the user spends more than 10 seconds (by default) actively engaging with your website, visits at least two pages or makes at least one conversion, Google Analytics 4 will label a user’s session as engaged. 

The high engagement rate means that your content is relevant to the search query or ad a user uses, while the low engagement rate helps you figure out which page or channel should be improved to meet users’ requirements better. 

Besides comparing engagement rates between your pages, channels and other dimensions, you can also look at industry benchmarks to calibrate your metric and see how your business performs compared to competitors. 

All in all, user engagement is one of the core metrics of Google Analytics 4, and it will be with us for years or decades. 

If you found that this article didn’t answer your questions or have a question about something mentioned, please don’t hesitate to comment below. 


Frequently Asked Questions


What is user engagement in Google Analytics 4?

User engagement measures the amount of time a user spends on your website or in your app actively engaging with your content.

What is the engagement rate in Google Analytics 4?

The engagement rate is calculated as number of engaged session divided by number of total session. Engaged session is session in which users spends at least 10 seconds actively engaging with your content, or visits two pages, or makes at least one conversion.

How does Google Analytics 4 measure user engagement?

User Engagement is measured using “engagement_time_msec” parameter, which is added to every next event (besides first_visit, pageview and session_start) and shows the total time spent actively engaging with the content after the previous event. After that, GA4 sums “engagement_time_msec” values of all events in the session, and it’s session engagement time.

What is “engagement_time_msec” parameter in Google Analytics 4?

It’s a special parameter that shows the engagement time a user spends on your website after the previous event was sent into Google Analytics 4. This parameter is not sent for page_view, first_visit and session_start events because there is no engagement time before them.

What’s “session_engaged” parameter of GA4 events in BigQuery?

This parameter shows whether the session met the minimum threshold and was considered an engaged session or not. If it’s an engaged session, session_engaged will have “1” in event_params.value.string_value.  If the session is not engaged, it will be equal “0”. Such events as session_start and first_visit usually don’t have “session_engaged” parameter. 

What’s “engaged_session_event” parameter of GA4 events in BigQuery?

This parameter includes the number of sessions the user is engaged in. The value usually equals 1, but the value can increase if a user visits your website or app from many devices or browsers and can be recognised as the same user, usually using the “user_id” parameter. 

4 Replies to “Complete guide to User Engagement in Google Analytics 4”

  1. I understand how to see average engagement time for ALL organic traffic combined in GA4.

    But how can I see average engagement time for INDIVIDUAL organic search queries? The “Queries: Organic google search query” search console report displays clicks, impressions, CTR & search position…. but not engagement time. How do I add this metric? Or is there a way to create a new exploration to view this data?

Leave a comment

Your email address will not be published. Required fields are marked *