Can Google Analytics 4 Count Active Users Without Sessions?
The switch to Google Analytics 4 changed how we measure almost everything, especially the fundamental concept of a "user." So, can GA4 count an active user without a session? The short answer is nuanced: while every active user is associated with a session in GA4, being "active" depends on specific engagement signals, not just the session starting. This article breaks down exactly how GA4 defines and counts active users and why this event-based approach gives you a much clearer picture of audience engagement.
What Exactly Is an "Active User" in GA4?
In Universal Analytics (UA), our world revolved around sessions. A user was essentially anyone who started a session. GA4 flips this on its head and makes "Active Users" the default, primary user metric. Instead of just counting visits, GA4 wants to count users who are actually paying attention.
According to Google, a user is counted as "active" if they meet one of two conditions:
They have an engaged session on your website or app.
GA4 collects the
first_visitevent (for new users) or theengagement_time_msecparameter from them.
Let's unpack those. An "engaged session" is itself a new concept in GA4. A session is considered engaged if it:
Lasts longer than a specific duration (10 seconds by default, but you can adjust this).
Includes a conversion event.
Has at least two pageviews or screenviews.
The second condition is where things get interesting and directly answer our question. The engagement_time_msec parameter is a powerful signal. It's collected automatically whenever a user's web browser tab is in focus or their mobile app screen is in the foreground. This means GA4 can recognize a user as "active" simply because they are actively looking at your content, even if they haven't triggered a conversion or visited a second page yet.
The Fundamental Shift from Sessions to Events
To grasp why the "active user" calculation changed, you need to understand the architectural difference between Universal Analytics and GA4. This isn't just a minor update, it's a complete reimagining of web analytics.
The Old Way: Universal Analytics and its Session-Based Model
Think of Universal Analytics as a system of nested boxes. The biggest box was the User. Inside that User box, you had multiple Session boxes. And inside each Session box, you had lots of smaller "hit" boxes - like pageviews, events, or transactions.
Everything was organized around the session. A session started when a user arrived on your site and ended after 30 minutes of inactivity (or at midnight). To be counted, a user had to generate hits within that session container. This model worked well for a simple, desktop-first web, but it struggled to accurately represent user behavior on mobile apps or single-page applications where the concept of a "pageview" is less relevant.
The New Way: GA4's Flexible, Event-Based Model
GA4 throws out the rigid session hierarchy. In GA4, everything is an event. There is no distinction between hit types. A pageview is now an event called page_view. A session beginning is an event called session_start. A user's first visit triggers a first_visit event. Even adding an item to a cart is a standard event - add_to_cart.
This "flat" data model is incredibly powerful because it centers the measurement around the user and their specific actions, not the container (the session) they happen to be in. It gives GA4 the flexibility to measure engagement across websites and apps in a unified way. A button_click event on an app is fundamentally the same type of data as a page_view on a website in this model, making cross-platform analysis much cleaner.
The Key: How Engagement Qualifies a User as "Active"
So, back to our main question. Since GA4 automatically collects a session_start event when a user enters your site or app, every active user is an active user within a session. You can't have an active user floating in a void without an associated session ID.
However, the trigger for counting them as active isn't the session_start event itself. Mere arrival isn't enough. The user must demonstrate engagement, which is why the engagement_time_msec parameter is so important. This parameter directly measures attention.
Let's walk through a common scenario:
A user performs a Google search and clicks on a link to your blog, which opens in a new background tab.
At this moment, GA4 fires a
session_startevent and potentially apage_viewevent. A session container has been created.However, the user continues browsing their current tab for another minute before switching to your blog's tab.
The instant their browser focuses on your page, GA4 begins collecting the
engagement_time_msecparameter. It's at this point that the user definitively becomes an "Active User."
In Universal Analytics, this user’s session would have started the moment the page loaded, regardless of whether they were looking at it. Their time on the page would be inflated, and they'd look like an immediate bounce if they closed the tab without interacting further. In GA4, arrival and attention are separated, giving you a much truer count of people who are actually consuming your content.
Why This More Accurate User Count Matters
This change from total users to active, engaged users isn't just semantic. It has practical benefits for anyone analyzing their website or app's performance.
1. A Better Signal for Content Quality
Focusing on "Active Users" and "Engagement Rate" rather than just "Users" and "Bounce Rate" helps you answer a more important question: Is my content actually holding people's attention? High traffic numbers are great, but if those sessions have zero engagement time, it signals a mismatch between what users expected and what they got. A high number of active users, on the other hand, indicates your content is valuable and relevant.
2. Cleaner Data with Fewer "Accidental" Sessions
The old session-based model often inflated user and session counts with low-quality traffic. Think about users who accidentally click a link and hit the back button within a second, or pages that load in a background tab and are never viewed. GA4's method effectively filters out this noise by requiring a signal of actual engagement before counting someone as an active user.
3. Unified Measurement for Web + App
The concept of "time on page" was always a bit shaky, but it completely breaks down on mobile apps. The event-based model, anchored by user actions and the engagement_time_msec parameter, provides a consistent way to measure attention whether someone is scrolling a webpage or interacting with a screen in your app. This makes it possible to get a true holistic view of your audience across all your digital properties.
Where to Find Active User Data in Your GA4 Reports
Now that you know what an active user is, you can confidently navigate your GA4 reports to find this data. "Active Users" is the default user metric in most standard reports.
Check the Reports Snapshot or Realtime Reports
The quickest way to see current activity is in the Reports > Reports snapshot and Reports > Realtime views. Both feature a card showing "Users in last 30 minutes,” giving you an immediate pulse check on who is active right now.
Dive into Engagement and Acquisition Reports
For trend analysis, the core user reports provide a clear picture:
Go to Reports > Engagement > Engagement overview. The primary chart at the top, "Active users," shows your 1-day, 7-day, and 28-day active user trends over time.
Navigate to Reports > Acquisition > User acquisition or Traffic acquisition. In these reports, the metric displayed as "Users" is, in fact, "Active Users." This lets you see which channels are driving the most engaged audience, not just the most clicks.
Build Custom Reports in Explore
For deeper analysis, the Explore section is your best friend. You can create a Free-form exploration and drag "Active users" into the "Values" section and dimensions like "Session source / medium" or "Page path and screen class" into the "Rows" to build completely custom reports focused on user engagement.
Final Thoughts
In short, GA4's method for counting users is a big step forward. It moves us away from simply counting visits and toward a more meaningful understanding of audience attention. While every active user does technically have a session, the criteria for being counted as "active" are tied directly to engagement signals - proving that a real human is actually interacting with your site or app.
Tracking these user engagement metrics across all your platforms, from Google Analytics to your ads manager and CRM, is essential for a complete picture. This is precisely why we built Graphed. Instead of hunting for reports across a dozen different tools, you can connect your data sources in seconds and ask questions in plain English like, "show me a dashboard of daily active users and conversions from Google Analytics" or "what were my most engaging blog posts last month?" Graphed builds live, interactive dashboards for you, turning hours of manual report-pulling into a 30-second conversation.