Misunderstood Metrics: GA 4 New vs Returning Users

Confused by the new and returning users metrics in Google Analytics 4? Did you know that the “Returning Users” number in the online reports could be wrong? No wonder you were confused…

First, let’s see where the numbers appear in the online reports.

Acquisition Report: Users and New Users

First, let’s see where the user numbers appear. Right up front, in the online Acquisition Overview, we see Users (152) and New Users (135). Note that if you hover over the question mark symbol for Users, the description that pops up states “The total number of active users” — you will see why this is important later.

Retention Report: New and Returning Users

In the Retention Overview, we can see both the New Users (135) as well as Returning Users (33) numbers.

Events Report: Total Users?

Searching through other reports and we can find a new number on the Events report: ‘Total Users’ of 162. Remember that Users in the acquisition report was only 152? Let’s clear that up with an Explorations report.

Explorations Report

To get all the Users metrics together, we have to go through the effort of creating an Explorations Report. Here we will discover that the Users metric from the acquisition report is actually called ‘Active users’ here. This confirms all the numbers we have seen so far.

Definitions and Observations

Total users – described in the interface as:

  • the total number of unique users who have logged an event
  • the total number of people who visited in the specified date range
  • the number of unique users who triggered any event in the specified date range

These descriptions are consistent and clarify that the users could have triggered any event in the date range. This is accomplished by simply counting unique user ids from all the events.

New users – described in the interface as:

  • the number of users who interacted with your site or launched your app for the first time
  • the number of people who have never visited before in the specified date range
  • the number of new unique users who logged the first_visit event in the specified date range

These descriptions are consistent when you realize that if a user has never visited, there is a first_visit event created automatically in that situation. NOTE: In an event-level report, ‘New users’ counts only appear for the first_visit event. 

Active users –  (or just “Users”) described in the interface as:

  • the number of people who engaged in the specified date range
  • the number of unique users who engaged with your site or app in the specified date range
  • any user who has an engaged session or when Analytics collects the first_visit event or engagement_time_msec parameter

The first two descriptions imply that all active users are engaged with your site, but the third description clarifies that a first_visit event makes a user ‘active’. NOTE: this means New users are always included in Active Users, whether they engaged with any content or not. That means bounce visits from spammers can mess up both New users and Active users numbers.

Returning users (this number could be wrong) – described in the interface as:

  • the number of people who have visited before in the specified date range
  • Users who have initiated at least one previous session
  • the number of unique users who initiated at least one previous session, regardless of whether or not the previous session was an engaged session, in the specified date range.

In most web analytics systems, each session gets assigned a sequential number,
a session number, starting at 1 for the first session, then 2, 3, and so on.

While these descriptions may sound clear and alike, there is a grayness to them. The inclusion of the phrase ‘in the specified date range’ could be attributed in different ways.

Taken literally, the first description could mean that only people that visited more than once (before) in the specified date range would qualify — both session numbers 3 and 4 for example.  These people visited AND returned in the date range, so they are ‘returning users’. This is NOT the conventional defintion, though.

Most web analytics systems measure returning users as those with a session numbered 2 or higher — per the second description: they had initiated at least one previous session. NOTE: that by this conventional definition, if they had their first and second session in the specified date range, they would be BOTH a ‘new’ user and a ‘returning’ user.  This is what it should be, but not what I found in GA 4.

Due to irregularities in several reports, I needed to dig deeper to understand…

Using the API

If we venture out into an API-generated report, we find that the API doesn’t have a Returning Users metric. Some products, like the Analytics Edge connector for Google Analytics used to provide a calculated metric (‘Returning users’ = Total users – New users), but that doesn’t follow the convention.  i.e. it is wrong.

The API does offer a unique dimension that is not available online — ‘New / returning’ — which identifies whether the user is ‘new’ or ‘returning’. The good news is that it duplicates the New Users count of 135, and the Returning Users count of 33 as seen online. The bad news is that the returning users number (33) is still wrong.

I added a custom dimension to my property to expose the ga_session_number (Session count) so I could include it in reports.  By filtering out all (session count = 1) sessions, then reporting a single aggregate number for Total users, we get the number of returning users using the conventional definition: 44, which happens to be the total of ‘(not set)’ and ‘returning’ users in the table above (11 + 33 = 44).

For confirmation, I went to a BigQuery export and used a query to get the same metrics (using commonly accepted SQL per ga4sql.com). The Returning users number is confirmed as 44. 

So why are some sessions marked as ‘(not set)’ for New / returning values and why are they excluded from the online reports? Those remain unanswered questions.

To my knowledge, there is no way to check the validity of the Returning users metric in your online reports — you need to use an API tool or BigQuery report to check. With Analytics Edge, it would be a simple query with the sole metric ‘Total users’, and a filter for ‘New / returning’ not exact match for ‘new’.