TL;DR
- A GA4 session starts with a session_start event and ends after 30 minutes of inactivity by default; the timeout is adjustable per web stream in Admin.
- GA4 does not restart a session at midnight or when new campaign parameters arrive, which Universal Analytics did, so GA4 usually reports fewer sessions.
- Event count is the number of times users triggered any event, so it rises whenever more tracking is added and should be read by event name.
- Active users is GA4's primary user metric; Universal Analytics highlighted Total Users, so the two Users figures are not the same measurement.
- An engaged session lasts over 10 seconds, has a key event, or has 2 or more page or screen views; engagement rate is engaged sessions divided by sessions.
In the GA4 sessions vs users vs event count comparison, each metric counts a different layer: Event count is every interaction GA4 records, Sessions groups those events into visits that end after a period of inactivity (30 minutes by default), and Users counts the distinct people, or more precisely the distinct browsers and devices, behind those visits. One user can have many sessions, and one session holds many events, so the three numbers are never expected to match.
This guide gives the documented definition of each metric, shows how they relate with a worked example, explains why GA4 session totals differ from Universal Analytics, and ends with a short guide to which number belongs in which report.
What is a session in GA4?
Google's documentation describes a session as a period during which a user is engaged with your website or app. Mechanically, a session starts when a user opens your app in the foreground, or views a page or screen while no session is currently active, for example because their previous session has timed out. At that moment GA4 collects a session_start event, which generates a session ID and a session number.
- The session ID is the timestamp, in seconds, of when the session started.
- The session number counts how many sessions that user has started so far.
A session ends after 30 minutes of inactivity by default. Google's documentation also states that there is no limit to how long a session can last; as long as the user keeps interacting within the timeout window, the session continues.
How to change the session timeout
For a website, open Admin, then Data streams, select the web stream, then Configure tag settings, click Show all, and choose Adjust session timeout. The timeout is set in hours and minutes. On the same screen you can also adjust the timer for engaged sessions, which controls how many seconds a session needs to count as engaged. For apps, the timeout is set in code with the setSessionTimeoutDuration method.
Change the timeout only for a clear reason, such as a site where people genuinely read long documents without clicking. A longer timeout merges what would have been separate visits, so session totals drop and session-based rates change. Note the date of any change so that a step in your trend chart is not misread as a change in behaviour.
How GA4 counts sessions
The Sessions metric is the number of sessions that began on your website or app. GA4 estimates it by counting unique session IDs. Since October 2021, the reports use the HyperLogLog++ method for this, a statistical estimate that Google describes as highly accurate. BigQuery exports calculate precise counts, so a BigQuery total can differ slightly from the number in the interface. A small difference between the two is expected and is not a tracking error.
What is an engaged session?
An engaged session is a session that meets at least one of three criteria:
- it lasts longer than 10 seconds (the default timer, which you can adjust);
- it has a key event;
- it has 2 or more page or screen views.
Events such as first_visit, first_open and session_start are excluded from the engaged-session calculation, even if they have been marked as key events. That rule stops every new visitor from counting as engaged just because their first visit was recorded.
Engagement rate is the percentage of sessions that were engaged sessions, calculated as engaged sessions divided by sessions. If 400 of 1,000 sessions are engaged in an illustrative month, the engagement rate is 40%.
What is event count in GA4?
Event count is the number of times users triggered an event. In GA4 everything is an event: a page view is a page_view event, the start of a session is a session_start event, and a first visit records a first_visit event. Depending on your settings, enhanced measurement adds events such as scroll, outbound clicks, site search and file downloads, and you can add custom events for forms, calls or anything else.
This is a structural change from Universal Analytics. Google's comparison documentation notes that the UA Total Events metric incremented each time a Category/Action/Label event was triggered, while GA4 events have no notion of Category, Action or Label. In GA4 each event has a name and optional parameters, and Event count simply counts how many of them were recorded.
Because Event count is the sum of every event, its total depends on how much you track. Turning on an extra enhanced measurement feature or adding a custom event raises Event count without any change in visitor behaviour. That makes the total useful mainly when you break it down by event name. In the Events report (Reports, then Engagement, then Events), each row is one event name with its own Event count, and that is where the number becomes meaningful.
Two related metrics help put Event count in context. Events per session is the average number of events per session. Views is the number of web pages or app screens your users saw, which is in effect the count of page_view and screen_view events.
Users vs active users vs new users
GA4 has several user metrics, and the labels are easy to mix up. The definitions from Google's metrics reference:
- Active users: the number of distinct users who visited your website or application. This is GA4's primary user metric.
- Total users: the number of unique user IDs that triggered any events.
- New users: the number of new unique user IDs that logged the first_open or first_visit event.
- Returning users: the number of users who have initiated at least one previous session.
The choice of primary metric matters when you compare tools. Google's comparison documentation states that Universal Analytics highlighted Total Users, shown as Users in most reports, while GA4 uses Active users as the primary user metric. A "Users" figure from an old UA report and a "Users" figure from GA4 are therefore not the same measurement.
Remember what a "user" is to GA4 without extra setup. Each browser on each device stores its own identifier in a cookie. The same person on a phone and a laptop, or in an app's built-in browser and then in their usual browser, appears as separate users unless you send a User-ID when they log in. User counts are best read as counts of identifiable browsers and devices, not of people.
A worked example: one person, three metrics
Illustrative example, using default settings. A visitor arrives at 09:00 from a search result, reads two pages and leaves. At 09:20 they click a link in a newsletter and read one more page. At 14:00 they come back by typing the address and submit a contact form that is marked as a key event.
- Users: 1 active user, and 1 new user, because first_visit is logged on the first visit only.
- Sessions: 2. The 09:20 click falls inside the 30-minute window, so it continues the first session. The 14:00 visit comes long after the timeout, so a new session_start is recorded.
- Event count: at least 8 in this simplified example: first_visit, 2 session_start events, 4 page_view events (2 + 1 + 1), plus events such as user_engagement and the form's key event. With enhanced measurement scroll tracking turned on, the count is higher.
- Engaged sessions: both sessions are engaged. The first has more than one page view; the second has a key event.
Note what did not happen. The newsletter click at 09:20 did not create a new session in GA4, even though it brought new campaign parameters. That rule is one of the documented reasons GA4 and Universal Analytics session totals differ.
Why GA4 sessions differ from Universal Analytics
Google's comparison documentation lists the reasons session counts differ between the two versions:
- Midnight. In Universal Analytics, sessions were cut off at midnight in the time zone of the view. GA4 sessions are not restarted at midnight. A visit from 23:50 to 00:10 is one session in GA4 and was two in UA.
- New campaign parameters. In Universal Analytics, if a user picked up new campaign parameters while on the website, a new session started. GA4 does not restart sessions when new campaign parameters are encountered. In the example above, UA would have counted 3 sessions; GA4 counts 2.
- Counting method. GA4 estimates sessions from unique session IDs using HyperLogLog++, a statistical estimate rather than an exact count.
The direction of these rules means that, all else equal, the same traffic tends to produce fewer sessions in GA4 than in UA. If you are comparing year-on-year data across the migration, compare trends within each tool rather than raw session totals across tools.
The three metrics side by side
| Metric | What it counts | Best used for |
|---|---|---|
| Active users | Distinct users (browsers/devices, or User-IDs) who visited | Reach and audience size over a period |
| Sessions | Visits that began; a visit ends after 30 minutes of inactivity by default | Channel comparison, engagement rate, landing page analysis |
| Engaged sessions | Sessions over 10 seconds, with a key event, or with 2+ page or screen views | Quality of traffic by channel or campaign |
| Event count | Every time any event was triggered | Specific interactions, read by event name |
Which metric should you report?
The right metric follows the question being asked.
- "How many people did we reach?" Use Active users. State that it counts browsers and devices unless User-ID is in place.
- "Which channel sends the best visits?" Use Sessions together with Engaged sessions or Engagement rate, broken down by Session default channel group. Session-scoped dimensions and session metrics belong together.
- "Did people do the thing we care about?" Use Key events, or Event count filtered to one specific event name. Never report total Event count as a performance figure on its own, because it rises whenever you track more.
- "Is the site getting more use from the same people?" Use Sessions per active user, defined as the average number of sessions per active user.
Two common reporting mistakes are worth naming. The first is dividing a session-scoped number by a user-scoped number from a different report and treating it as a rate; the scopes do not line up, so the result has no clear meaning. The second is comparing Event count across periods in which tracking changed. If a new event was added mid-month, put a note on the report or compare only the event names that existed in both periods.
What this means for Thai websites
When a visitor opens a link inside a chat app and then continues in their main browser, the journey crosses two browsers. Because each browser keeps its own cookie, that journey can produce two users and two sessions for one person, unless the site uses User-ID. Sites with a login, such as e-commerce stores or membership services, can send a User-ID to reduce this duplication.
Thai sites also often serve two languages. If Thai and English pages sit on the same property, sessions and users are shared across both, so a person who switches language mid-visit stays in one session. To compare the two audiences, segment by page path (for example, pages under /th/) rather than creating separate properties that would split one visit into two.
Finally, check the reporting time zone in Admin, under Property details. GA4 does not cut sessions at midnight, but daily totals are still grouped by the property time zone. A property left on a non-Thai time zone will place late-evening Bangkok traffic on the wrong date.
Frequently asked questions
What is the difference between sessions and users in GA4?
Users counts distinct browsers, devices or User-IDs, while Sessions counts the visits they started, so one user can have many sessions. A session ends after 30 minutes of inactivity by default, and a new visit after that starts a new session for the same user.
What is event count in Google Analytics?
Event count is the number of times users triggered any event, including page_view, session_start, first_visit and any custom events. It is most useful when broken down by event name in the Events report rather than read as a single total.
Why does GA4 show fewer sessions than Universal Analytics?
GA4 usually shows fewer sessions because it does not restart a session at midnight or when new campaign parameters arrive, both of which started a new session in Universal Analytics. GA4 also estimates sessions with the HyperLogLog++ method rather than counting them exactly.
What counts as an engaged session in GA4?
An engaged session is one that lasts longer than 10 seconds, has a key event, or has 2 or more page or screen views. The 10-second timer can be adjusted in the web stream's tag settings.
Should I report active users or total users?
Report Active users for most purposes, because it is GA4's primary user metric. Total users counts every unique user ID that triggered any event and is useful mainly for reconciliation.
Make your GA4 numbers mean the same thing to everyone
Clear metric definitions are what let a marketing team and a management team read the same dashboard and agree. Relevant Audience's Google Analytics 4 setup and migration service covers session and engagement settings, event plans, User-ID and reporting that separates session, user and event metrics correctly. For search performance, the SEO services in Thailand and the SEO audit both report from engaged sessions and key events, and Google Ads management uses the same definitions when judging campaign quality.







