As people dig into the metrics in Google Analytics 4 for website tracking, they discover that the session counts can sometimes be confusing. My recommendation: stop focusing on sessions — focus on user engagement with your content instead. The number of sessions in a day has become almost meaningless, and that metric should not appear in a prominent location in any report.
Sessions Without Page Views
Web analytics started with a simplistic view that people opened a browser, navigated to a web site, possibly looking at more than one page and then closed the browser. They called that a ‘session’. Since there was no ‘close’ event in browsers, Google Analytics considered activity within 30 minutes of the last action to be part of the same session [that practice is still used today]. One of the biggest complaints about the old Google Analytics (Universal Analytics) was that it didn’t measure user engagement with a page. If you didn’t click on a second page, Time on Page was zero and the session was a ‘Bounce’.
The problem is that people don’t actually ‘surf the web’ that way today – they have a browser open all the time, opening new tabs to various pages that they may come back to read at some later time (or date) and eventually close. Browser technology has changed over time as well, and now provides the ability to capture a number of actions, including closing a tab.
Google Analytics 4 tracks a variety of user engagement events: time on page (engagement time), click, and scroll are the most common. Simply having tab content visible for more than 10 seconds triggers a user engagement event. The session definition is the same: no activity for over 30 minutes, and the next action starts a new session.
With today’s web browsing practices, a person can open a page in a tab and come back to it hours later, read the content and close the tab. Google Analytics 4 (GA4) sees that as a session with a page view, followed hours later as user engagement, which is recorded as a new session. This second session that has no page view event! This happens more often than you may think. GA4 even has a metric for this: ‘Engagement rate’ = (the number of engaged sessions) / (total number of sessions).
Note that this user behavior also has the effect of lowering on all of the metrics that are session-based (more sessions = smaller numbers per session), like Views per session, or Avg engagement time per session. If a user reads the content later in the day, all those metrics drop 50% because the user had 2 ‘sessions’ in total.
It is more important to understand the engagement of users with your content — this is why I recommend you stop looking at sessions, and focus on users, events and engagement metrics.
There are other problems with the metric ‘sessions’ in Google Analytics 4 that you should be made aware of…
Sessions With No Session_Start Event
Similar to Universal Analytics before it, Google Analytics 4 has to deal with sessions that start just before midnight but end after midnight. When we dig into the actual events as captured from a BigQuery extract, we see the session_start event would be on Friday night, but some of the page_view and user_engagement events happen early Saturday morning. If you are only reporting on Saturday, you would see user engagement in a session that has no session_start event.
Lone user_engagement at 15 minutes after midnight local time
How does that affect reporting? Well Google Analytics 4 ‘counts’ sessions by counting session_start events. So you could end up with views or user engagements with no sessions. How much that affects your site metrics depends on how busy your website it at midnight. This can inflate the user engagement per session…but there is the opposite problem as well:
Sessions With Multiple Session_Start Events
Due to a quirk in how Google Analytics 4 captures data, it can actually record more than 1 session_start event for a single event. This doesn’t happen very often, but it can cause some unexplainable differences when you perform a detailed analysis based on the assumption that a session always has one session_start event.
Two session_start events recorded for the same user’s session
Real World Example (GA 4): Sessions with no session_start: 3 Sessions with 1 session_start: 3314 Sessions with 2 session_start: 4
Single Session From Multiple Sources
With Universal Analytics, if you return to a site within the 30-minute session window from a different (non-direct) source, and it would start a whole new session. With Google Analytics 4, it continues the existing session.
For example, my users typically download an application installer then return to the site from the installer. In UA, that would be 2 sessions, but in GA4 it appears as one. The problem is that there are now 2 different sources for a single session. Whether this results in duplicate reporting of a single session depends on your report, so don’t be surprised if the session count changes slightly when you make a small, unrelated change to a report.
The Session ID May Not Be Not Unique
Speaking of assumptions, you might assume that a field named ‘ga_session_id’ would be a unique identifier of a session, but you’d be wrong. The same session ID can be assigned to 2 different user’s sessions.
Two users’ sessions sharing the same ga_session_id number
The good news is that GA 4 appears to keep them separate and doesn’t consider them to be a single session. If you are planning to do in-depth analysis using BigQuery data, though, I suggest you key on a combination of user_pseudo_id and ga_session_id.
Real World Example (GA 4): Unique ga_session_id: 3289 Same ga_session_id assigned to 2 users: 16
Recommendations
Assumptions about sessions will persist, which is why I recommend that those metrics do not appear in a prominent location in your reports. The concept of a ‘session’ is no longer meaningful, and Google Analytics 4 exposes that fact.
Avoid session-based metrics in your reports — focus instead on metrics that measure users and user engagement with content:
- Active users
- User engagement/Total users
- Views
- Views per user
- Key events
If you must use a sessions metric, use ‘Engaged sessions’, but be cautious when combining or comparing with other fields or reports.