Measuring GA4 Sessions
Learn more about how to get accurate Sessions counts for GA4
Christian Hagberg avatar
Written by Christian Hagberg
Updated over a week ago

In this video, Funnel’s Data Engineer Paul Buccheri details the ins-and-outs of working with the Sessions metric in GA4 and how it is different from working with Sessions in Universal Analytics (UA).

What are the differences between Sessions in GA4 and UA?

The concept of Sessions in GA4 and UA are largely the same, but there are a few key differences.

1. GA4 estimations. Sessions in GA4 are subject to statistical estimation where GA4 tries to estimate the unique number of Sessions IDs that visited your website or app. In contrast, UA did not estimate the number of sessions.

2. Fewer session cutoffs in GA4. In UA, a session would be ended if (1) there were 30 minutes of inactivity, (2) the session crossed midnight (based on the timezone the UA View used), or (3) new campaign parameters were encountered. In contrast GA4, a session will only end after 30 minutes of inactivity.

How to get accurate Session counts for GA4

As mentioned above, the data models of GA4 and UA are different where GA4 is an event-based platform. This means that all activity is viewed through the lens of Events in GA4. This can be problematic for users that are moving over from UA’s data model because Events are more granular than Sessions, i.e. one Session can contain one or many Events.

One of the standard events included in all GA4 properties is “session_start”. When a session starts, Google automatically counts a session_start event and generates a session ID. Therefore, if you are exporting GA4 data to BigQuery, one option to get aggregated Sessions values is to count the distinct number of Sessions IDs. However, when analyzing Funnel’s own GA4 data we have found that this leads to a larger discrepancy in the number of Sessions compared to capturing Sessions or Event count values for sessions_start via the API. The reasons for this are not entirely clear.

Example. Below is an example using Funnel’s own data in GA4. If we look at the ‘Totals’ row, the number of Sessions is estimated at 349,837. Unlike UA, this number cannot be reproduced by aggregation because it’s an estimation by Google.

However, Google does provide the Event name session_start and as you can see, the number of Sessions (348,921) and Event count (353,573) is very close to Google’s estimation for Sessions which is 349,837 (-0.3% and +1.1% deviation respectively).

In Funnel, you can therefore create custom metrics to capture the number of Sessions or Event count for Event name sessions_start and get very close to the “true” value that you see in GA4’s interface:

Option 1:

Option 2:

Did this answer your question?