In Google Analytics 4, an engaged session is one that lasted over 10 seconds, had a key event, or had 2 or more page views.
Any one of those three conditions is enough. GA4 counts these visits in the Engaged sessions metric and builds engagement rate from them.
Key events are what GA4 called conversions until Google renamed them to match how Google Ads defines conversions.
What Counts as an Engaged Session in GA4
GA4 checks every session against three conditions joined with OR, and one match is enough:
| Condition | What GA4 checks | Can you change it? |
|---|---|---|
| Longer than 10 seconds | Time the visitor spent with the page in focus, measured as engagement time | Yes, in the web stream tag settings |
| 2 or more page views | Two or more page_view or screen_view events in the same session |
No |
| A key event | Any event marked as a key event in Admin, fired during the session | Indirectly, by choosing which events are key events |
Once a session meets one condition, it stays engaged for the rest of the visit. Nothing switches it back.
On content sites, the 10-second rule does most of the work, because many readers never open a second page.
On stores and SaaS sites, the second page view and key events carry more weight, since people browse before they act.
A Worked Example: Four Sessions
Here are four example visits to one website on the same day, and how GA4 classifies each of them:
| Session | What happened | Engaged? | Why |
|---|---|---|---|
| A | Reads one blog post for 45 seconds, then leaves | Yes | Longer than 10 seconds |
| B | Opens the pricing page, then the features page, all within 6 seconds | Yes | 2 page views |
| C | Lands on a contact page and submits the form after 4 seconds, which fires generate_lead, marked as a key event |
Yes | Key event |
| D | Opens one page and closes it after 5 seconds | No | None of the three conditions |
Sessions A, B and C each pass a different test. Session D fails all three, so it counts as a bounce.
Session C shows why key events matter: a short, focused visit that converts is still a good visit.
Engagement Rate Formula
Engagement rate is the share of all sessions in a period that were engaged:
Engagement rate = Engaged sessions ÷ Sessions × 100%
In the example above, 3 of 4 sessions were engaged, so the engagement rate is 75 percent.
Bounce rate is the opposite: sessions that were not engaged, divided by all sessions. Here it’s 25 percent.
The two always add up to 100 percent, because GA4 calculates both from the same engaged sessions count.
Engaged Sessions per User
Engaged sessions per user shows how often the average person comes back for a meaningful visit:
Engaged sessions per user = Engaged sessions ÷ Active users
Say sessions A and D came from the same person, and B and C from two others. That’s 3 engaged sessions and 3 active users.
The result is 1.0 engaged session per user. Over a month, values above 1 suggest people return and engage more than once.
The GA4 Data API has no ready metric for this, so in Looker Studio or Power BI you divide engagedSessions by activeUsers yourself.
Sessions vs Engaged Sessions vs Active Users
- Sessions count every visit GA4 recorded, engaged or not.
- Engaged sessions count only visits that met at least one of the three conditions.
- Active users count distinct people who engaged with your site or app in the period.
The Users column in standard GA4 reports shows active users. Google’s user metrics guide says reports only show active users.
How to Change the 10-Second Threshold
The 10-second default is set separately for each web data stream, not for the whole property:
- Open Admin, then Data streams, and select your web stream.
- Open Configure tag settings and click Show all.
- Open Adjust session timeout.
- Choose the seconds under Adjust timer for engaged sessions and click Save.
Most sites should keep 10 seconds, so their numbers stay comparable with benchmarks and older reports.
A higher threshold can make sense for video or documentation sites, where quick lookups inflate engagement.
Treat any change as a break in your trend line, and write down the date you made it.
The session_engaged Parameter in BigQuery
In the BigQuery export, each event carries a session_engaged parameter, stored as the text value 1 once the session is engaged.
Events fired before the session qualified can still carry 0, so don’t just count rows where the flag is 1.
Group events by user and session instead, and count a session as engaged if any of its events has the flag:
SELECT
COUNT(*) AS engaged_sessions
FROM (
SELECT
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params)
WHERE key = 'ga_session_id') AS ga_session_id,
MAX(
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'session_engaged')
) AS engaged_flag
FROM `project.analytics_XXXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20261001' AND '20261028'
GROUP BY user_pseudo_id, ga_session_id
)
WHERE engaged_flag = '1';
Always filter on _TABLE_SUFFIX. The events tables grow fast, and unfiltered scans get expensive.
Expect small differences from GA4 reports. Google says reports estimate session counts, while BigQuery counts them exactly.
Where to Find Engaged Sessions in GA4
- Reports, Acquisition, Traffic acquisition shows engaged sessions and engagement rate by session source and medium.
- Customize report lets you add Engaged sessions as a metric to other standard reports.
- Explorations, Free form lets you add Engaged sessions and slice it by any dimension.
- The Data API returns it as
engagedSessions, and engagement rate asengagementRate.
Why GA4 Uses Engaged Sessions Instead of Bounce Rate
Universal Analytics counted any single-page visit as a bounce, however long the visitor stayed.
A reader who spent 12 minutes on one article counted the same as someone who left after half a second.
GA4 fixes that. The time rule rewards long reads, the second page view rewards browsing, and key events reward action.
Google’s engagement metrics guide gives the official definitions of engaged sessions, engagement rate and bounce rate.
When Engaged Sessions Look Wrong
- Background tabs. A page opened in a tab the visitor never looks at may never reach 10 seconds of engagement.
- Single-page apps. If route changes don’t send
page_view, the two-page rule never fires. - A key event that fires too often. If a key event fires on page load, every session becomes engaged.
- Bots. Crawlers that run JavaScript add short sessions and pull engagement rate down.
How to Check Your Engaged Sessions Data
- Open DebugView, start a test visit, stay 12 seconds and watch
session_engagedchange to 1. - Check the engaged session timer in the tag settings of every web stream.
- Review your key events in Admin. A sudden jump in engagement rate often follows a new key event.
- Compare one day of BigQuery counts with the GA4 report and expect a small gap, not a match.
Engaged sessions are the cleanest visit-quality count in GA4. Treat a sudden swing as a tracking change until you prove otherwise.
Frequently Asked Questions
What is an engaged session in GA4?
A session that lasted over 10 seconds, had a key event, or had 2 or more page or screen views. One condition is enough.
How is engagement rate calculated?
Engaged sessions divided by all sessions. With 620 engaged sessions out of 1,000, engagement rate is 62 percent and bounce rate is 38 percent.
What is the difference between sessions and engaged sessions?
Sessions count every visit. Engaged sessions count only visits that met at least one engagement condition, so they’re always a subset of sessions.
How do I calculate engaged sessions per user?
Divide engaged sessions by active users for the same period. In the Data API, use engagedSessions and activeUsers and divide them yourself.
Can I change the 10-second threshold?
Yes. Open your web stream, then Configure tag settings, Show all, Adjust session timeout, and set the timer for engaged sessions.
Why is my engagement rate close to 100 percent?
Usually a key event fires on every page load, so every session qualifies. Check your key events in Admin and test them in DebugView.
Related Terms
- Session: how GA4 starts and ends a visit
- Engagement Rate: the percentage form of engaged sessions
- Engagement Time: the in-focus time behind the 10-second rule
- Bounce Rate: the share of sessions that weren’t engaged
- Active Users: the user count shown in GA4 reports
- Pageview: the page_view event behind the two-page rule
- DebugView: how to watch session_engaged change live