GA4 Engaged Sessions and Engagement Rate Explained
GA4 has no time-on-site headline number and no old-style bounce rate. It measures engagement instead. This guide explains what makes a session an engaged session, how engagement rate and bounce rate are calculated from it, how to change the 10-second timer, what average engagement time actually measures, and how to read a low engagement rate.
This guide is built from Google's Analytics Help pages: engagement rate and bounce rate, user engagement, about Analytics sessions and the dimensions and metrics reference, plus the other pages linked below. How your engagement rate compares with similar businesses is in our GA4 benchmarking guide, and where engagement fits in a monthly report is in our website reporting guide.
What counts as an engaged session
A session is a period of time during which a user interacts with your website or app. On the web, GA4 starts one when someone views a page and no session is currently active. By default it times out "after 30 minutes of user inactivity", and Google adds that "there is no limit to how long a session can last." Why session counts and user counts differ is covered in our users vs sessions guide.
Google's engagement article says a session is an engaged session if it meets any of these criteria:
- It lasts longer than 10 seconds.
- It has a key event.
- It has 2 or more screen or page views.
One condition is enough. A visitor who reads a single article for a minute is engaged. So is one who lands, clicks straight through to a second page and leaves after five seconds, and so is one who submits a form you have marked as a key event.
Two details matter here. First, events "such as first_visit, first_open, and session_start are excluded from the calculation of your engaged sessions even if it is marked as a key event." Marking one of those as a key event would not turn every session into an engaged one. Second, the wording of the time rule varies slightly between Google's pages: the engagement article says "longer than 10 seconds", while the metrics reference describes sessions "that lasted 10 seconds or longer". Either way, the threshold is the timer set on your web data stream, which you can change (see below).
Engagement rate and bounce rate
Both metrics are built on engaged sessions. The metrics reference gives the formula:
- Engagement rate = engaged sessions / total sessions.
- Bounce rate is "the percentage of sessions that were not engaged sessions". It is the inverse of engagement rate, so the two always add up to 100%.
Google's own example: a user visits your website, reads some content for less than 10 seconds and leaves without triggering any events or visiting any other pages. That session meets none of the criteria, so it is not engaged. "If this were the only session on your website, the engagement rate would be 0% and the bounce rate would be 100%."
Because the two are mirror images, you only need to track one of them. Engagement rate is the one GA4 puts forward. Bounce rate is still there for people who are used to reading it.
Close relatives you will see in reports are Engaged sessions (the count rather than the percentage) and Engaged sessions per active user, "the average number of engaged sessions per active user."
How this differs from the old bounce rate
Universal Analytics used the same name for a different measure. Google's GA4 vs Universal Analytics comparison describes the old bounce rate as the "percentage of single page sessions in which there was no interaction with the page." In that model, someone who read your homepage for several minutes and left without clicking anything counted as a bounce.
In GA4 the same visit is engaged, because it lasted longer than 10 seconds. Google's reasoning is that the old measure "has become less useful as websites and apps have changed", for example with single-page applications. Google's example for a blog: "you might not mind if customers visit your site to read an article and then leave." What you care about more is visitors who don't find what they need and quickly leave.
So don't compare an old UA bounce rate with a GA4 bounce rate. They count different things, so a change in bounce rate across the move from UA to GA4 tells you nothing about your visitors.
Changing the 10-second timer
The 10 seconds is a default, set per web data stream in the Google tag settings. Google's steps:
- In Google Analytics, select Admin and make sure you are in the correct account.
- In the Property column, select Data Streams and pick a web data stream.
- At the bottom of the page, select Configure tag settings.
- In the Settings section, select Show all, then Adjust session timeout.
- Use Adjust timer for engaged sessions to set the number of seconds, and Adjust session timeout for the inactivity timeout (default 30 minutes).
- Select Save.
Google describes the timer like this: a session becomes an engaged session "if it lasts longer than a certain amount of time." Raising it makes the time rule harder to meet, so fewer short single-page visits count as engaged and engagement rate can go down. The page-view and key-event rules don't change.
For app streams, the session timeout is changed in the SDK instead, with the setSessionTimeoutDuration method.
If you change the timer, write the date down. An annotation in GA4 is a good place for it, so nobody later reads the drop or jump in engagement rate as a change in visitor behaviour.
Average engagement time
Engagement time is not the same as time on page. Google defines user engagement as "the amount of time someone spends with your web page in focus or app screen in the foreground." A tab left open in the background does not add to it.
How it is recorded: GA4 starts counting at the start of a session, in milliseconds. The time is sent when the user focuses away from the page, navigates away or closes it, or when the site or app crashes. It travels in an engagement_time_msec parameter on the next event, and a user_engagement event sends any time left over when the user leaves a page.
Google's example: a user lands on the home page, scrolls after 8 seconds, moves to a second page after 11 seconds, scrolls there after 6 seconds and leaves after 7 seconds. The events carry 8781, 11856, 6677 and 7711 milliseconds, about 35 seconds in total.
The reports show several averages, and they divide by different things:
| Metric | What it measures |
|---|---|
| Average engagement time | Total user engagement durations / number of active users |
| Average engagement time per session | The average engagement time per session |
| Average session duration | The average duration (in seconds) of users' sessions |
| User engagement | The length of time your web page was in focus or your app screen was in the foreground |
Average engagement time is per active user, not per session or per page. A visitor who comes back three times in the month adds all three visits' engagement time to one user. Average session duration measures the session itself, while engagement time only counts time the page was in focus or the app was in the foreground, so the two rarely match.
Google also notes a difference between streams: on the web, very long engagement times (over an hour) are rare outliers, while on apps, "especially on Android devices, background app activity might lead to an overestimation of engagement duration."
Adding the metrics to your reports
Some standard reports, such as Pages and screens and Events, show engagement metrics by default. Engagement rate and bounce rate are different: "most reports in Google Analytics do not include the engagement rate and bounce rate metrics." To add them you need the Editor or Administrator role, and you can only add metrics to detail reports, not overview reports:
- Open Reports and go to the report you want, such as Pages and screens.
- Click Customize report in the upper-right corner.
- In Report data, click Metrics, then Add metric.
- Type "Engagement rate", then "Bounce rate". If a metric doesn't appear, it is already in the report.
- Click Apply and save the changes to the current report.
The two metrics appear as the last columns of the table. For one-off questions you can also build an exploration with these metrics without changing the standard report.
Reading a low engagement rate
Google's advice is to find out whether the rate is uniformly low or whether it comes from "certain channels, source/medium pairs, pages or screens, or something else." Then:
- A few pages are low: check whether the content matches the marketing that sends people there, and whether those pages offer easy paths to the next step.
- One channel is low: review the marketing for that channel. Google's example is display traffic bouncing, where the fix is making the ads relevant to your site content. Our channel groups guide covers how GA4 sorts traffic into channels.
- The whole site is low: check your measurement code, so that all the necessary pages are tagged and tagged correctly. A missing tag on a second page means a two-page visit looks like a one-page visit. Use DebugView to see what a real visit sends.
Keep the page's job in mind. A contact page where people copy your phone number and leave, or an article that answers the question in one screen, can have a lower rate without anything being wrong.
How we use engagement metrics
This is our own practice, not Google guidance:
- We read engagement rate per landing page and per channel, not as one site-wide number. The site-wide figure mostly reflects the traffic mix.
- We leave the engaged-session timer at 10 seconds unless there is a clear reason to change it. If we do change it, we add an annotation the same day.
- We judge a page by its key events first. Engagement rate and average engagement time help explain why a page converts or doesn't.
- When a page's engagement rate looks odd, we check the tagging before we rewrite the page.
Frequently asked questions
What is a good engagement rate in GA4?
Google does not give a single target. The rate depends on the page's job and the traffic mix, so compare pages and channels on your own site, or use GA4's benchmarking data to compare with similar businesses.
Is bounce rate gone in GA4?
No. GA4 still has bounce rate, but it means the percentage of sessions that were not engaged sessions. It is the inverse of engagement rate, and it is not in most reports until you add it.
Why does a one-page visit count as engaged?
A session is engaged if it lasts longer than 10 seconds, has a key event, or has 2 or more page or screen views. Any one is enough, so reading one page for more than 10 seconds counts.
Can I change the 10-second engaged session timer?
Yes. In Admin, open a web data stream, select Configure tag settings, then Show all and Adjust session timeout. Set the seconds under Adjust timer for engaged sessions and save.
Does engagement time include time in a background tab?
No. Google measures user engagement as the time the web page was in focus or the app screen was in the foreground, so time in a background tab is not counted.
For more on measurement, see our guides to GA4 basics, key events, benchmarking and monthly website reporting.