Misunderstood Metrics: Google Analytics 4 Sessions

As more and more people start the process of switching over to the new Google Analytics 4 for website tracking, they are discovering that the session counts are significantly different from the previous release of Google Analytics (a.k.a. Universal Analytics). My recommendation: stop focusing on sessions — focus on user engagement with your content instead.

People moving from Universal Analytics to Google Analytics 4 will be baffled when they try to compare session metrics between the two systems, because they will be very different by design. 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

Universal Analytics was designed back in the day that people opened a browser, navigated to a web site, possibly looking at more than one page and then closed it. That is not how people browse 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.

One of the biggest complaints about Universal Analytics was that it didn’t measure user engagement with a page – if they didn’t click to another page, the time on page was zero. Google Analytics 4 addresses that by measuring a variety of user engagement events: time (a.k.a. user_engagement), click, and scroll are the most common.

Combine these two factors together, and it should be easy to see that a person can open a page in a tab and come back to it hours later, read the content and close the tab. Universal Analytics would have seen that as a session with a pageview and be blind to the engagement later in the day. Google Analytics 4, however, sees it as a session with a page view, followed hours later as a session with user engagement — it records a second session that has no page_view event! This happens more often than you may think.

Real World Example (GA 4):
Sessions with page_views: 2797
Sessions with no page_views: 524 (~19% more)

Note that this behavior also has the effect of lowering on all of the metrics that are session-based, like page views per session, or engagement time per session. If a user reads the content later in the day, all those metrics drop 50%.

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 and events.

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. The session_start event would be on Friday night, but some of the page_views and user_engagements 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, it starts a whole new session. With Google Analytics 4, it continues the existing session. This can cause GA4 to report fewer sessions than you would see when comparing to UA. How often this happens depends on your users behaviours.

For example, my users typically download an application installer then return to the site from the installer. In UA, that would be2 sessions, but in GA4 it appears as one.

The Session ID Is 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, 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 ‘session’ is no longer meaningful in 2021, and Google Analytics 4 exposes that fact.

Focus instead on users and user engagement with content.