Unlock the power of Google Analytics with Big Query

Understanding Sessions in Google Analytics 4 (GA4): A Deep Dive

Understanding Sessions in Google Analytics 4 (GA4): A Deep Dive

Introduction

In web and app analytics, sessions are the foundation of most user-level metrics. However, GA4 fundamentally redefines sessions compared to Universal Analytics (UA).

Where UA relied heavily on time-based rules, cookies, and pageview hits, GA4 is event-driven, focusing on user engagement and cross-device tracking. Understanding GA4 sessions is critical to correctly interpreting metrics like Active Users, Engagement Rate, Conversions, and Session Duration.

This guide explains what sessions are in GA4, how they are measured, and the key differences from UA, providing a strong conceptual foundation for analysis.


What is a Session in GA4?

session in GA4 is a group of user interactions (events) within a given time frame. Unlike UA, which relied on hits and pageviews, GA4 sessions are event-based, meaning every session is composed of one or more events.

GA4 Session Characteristics:

FeatureGA4 BehaviorNotes
Session StartTriggered by session_start eventEvery new session automatically generates this event
Session EndImplicit based on inactivityGA4 uses a 30-minute default inactivity timeout, similar to UA
Cross-DeviceSessions can be stitched for user_idOne user may have multiple sessions merged across devices
EngagementOnly events matter, not pageviewsSessions without user_engagement are still counted, but Active Users consider engagement

How GA4 Counts Sessions

In GA4, sessions are event-driven, with the following key rules:

  1. Session Start (session_start)
    • Triggered automatically when a user starts interacting with a site or app.
    • Can also be triggered manually via event configuration.
  2. Session Timeout
    • Default: 30 minutes of inactivity.
    • Can be adjusted in GA4 property settings.
    • If a user returns after timeout, a new session starts.
  3. Midnight Reset / Campaign Change
    • Unlike UA, GA4 does not reset sessions at midnight.
    • Campaign source changes do not trigger a new session by default, but can be configured via parameters.
  4. Cross-Device Sessions
    • GA4 uses user_id to stitch sessions across devices.
    • A single user interacting on mobile and desktop can have multiple sessions, but GA4 may report a single user session count depending on reporting identity settings.

Session Metrics in GA4

MetricDefinition in GA4Key Differences from UA
SessionsCount of session_start eventsUA counted sessions based on hits/pageviews; GA4 counts events
Engaged SessionsSessions lasting ≥10s, 1+ conversion event, or 2+ pageviews/screensIntroduced in GA4; helps measure meaningful engagement
Average Session DurationSum of engagement time / sessionsGA4 uses engaged time rather than total session time
Bounce RateNot in GA4; replaced by Engagement RateBounce Rate = 1 − Engagement Rate

GA4 emphasizes quality over quantity, focusing on engaged sessions, which better reflect user behavior.


Session Example: Event Flow

Imagine a user interacts with your site:

  1. 10:00 AM – User lands → session_start triggered
  2. 10:01 AM – Views home page → page_view event
  3. 10:05 AM – Clicks product → select_item event
  4. 10:10 AM – Leaves browser idle for 35 minutes → session ends (timeout)
  5. 10:45 AM – Returns and interacts → new session_start event triggered

Notes:


Key Differences Between GA4 and UA Sessions

FeatureUniversal Analytics (UA)GA4
Event ModelHit-basedEvent-based
Session StartPageview or screenviewsession_start event
Session Timeout30 min default, resets on campaign change30 min default, configurable, ignores campaign changes by default
EngagementBounce RateEngaged Sessions (≥10s, 1+ conversion, 2+ pageviews/screens)
Cross-DeviceCookie-baseduser_id stitching possible
Campaign AttributionResets sessionSessions continue regardless of campaign change unless configured

Best Practices for Working with GA4 Sessions

  1. Understand engagement events – Sessions alone may overcount low-quality interactions.
  2. Use session_start for session-level queries – Avoid using page_view events to approximate sessions.
  3. Implement user_id – Enables cross-device session stitching and accurate user-level reporting.
  4. Adjust session timeout if necessary – For long user interactions, extend beyond 30 minutes.
  5. Focus on engaged sessions for analysis – These better reflect meaningful user activity.

TL;DR

Discover more from GA4 BigQuery

Subscribe now to keep reading and get access to the full archive.

Continue reading