How to Calculate Session in Google Analytics

Cody Schneider7 min read

Understanding what a "session" is in Google Analytics is the first step toward making sense of your website's performance. It’s a fundamental building block for nearly every report, telling you how many people are visiting and how they're interacting with your content. This article breaks down exactly how Google Analytics 4 defines and calculates a session, the key metrics you need to watch, and where to find this data in your reports.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

What is a Session in Google Analytics 4?

Think of a session as a single visit to your website. It's a collection of all the things a user does - like viewing pages, scrolling, clicking buttons, or filling out a form - within a specific timeframe. The moment a user lands on your site, Google Analytics automatically triggers a session_start event and assigns a unique ID to that visit. Every subsequent action the user takes is then grouped under that same session ID until the session ends.

This is a fundamental shift from the old Universal Analytics (UA). Instead of being "pageview-based," GA4 is "event-based." This means it doesn't just care about how many pages someone visited, it cares about everything they did. This event-driven model provides a much richer, more accurate picture of user engagement, especially on modern websites where a visitor might get all the information they need from a single, interactive page.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Three Ways a Session Ends in GA4

While a user's actions start a session, it's typically their inactivity or a change in context that ends it. There are three primary triggers that will close out one session and start a new one.

1. The 30-Minute Timeout

This is the most common way a session ends. By default, if a user is inactive on your site for 30 consecutive minutes, GA4 considers the session over. If that same user returns to your site after, say, 40 minutes, their next action will trigger a new session_start event, creating a brand new session with a new session ID.

Example: Someone clicks on your blog from a Google search at 10:00 AM. They read for five minutes, then get distracted by a phone call for 35 minutes. When they return to their computer and click a link on your blog, GA4 will log this as a second session because more than 30 minutes of inactivity passed.

You can adjust this default timeout period if it doesn't fit your website's typical use case. For example, if you have long-form articles, videos, or complex forms that might legitimately take users longer than 30 minutes to complete a single interaction, you may want to extend it.

  • To change it, go to your GA4 Admin panel.
  • Under the Property column, click on Data Streams and select your web stream.
  • Scroll down and click Configure tag settings.
  • Click Show more, then select Adjust session timeout.
  • From here, you can set the session timeout for anywhere from 5 minutes to 7 hours and 55 minutes.

2. A Change in Campaign Source

This is a crucial difference from Universal Analytics that every marketer needs to understand. In GA4, if a user arrives at your site through one campaign, leaves, and then comes back quickly via a different campaign, a new session will begin, regardless of the 30-minute timeout window.

Example: A user clicks an organic Google search result to visit your site at 2:00 PM. They browse for a few minutes and leave. At 2:10 PM, they see a remarketing ad for your site on Facebook, click it, and land back on your homepage. Even though only 10 minutes passed, GA4 will count this as two separate sessions because the traffic source (and its associated campaign data) changed from google / organic to facebook / cpc.

This method gives marketers much cleaner attribution data, ensuring that credit for the second visit is correctly assigned to the new campaign that drove it.

3. The End of a Calendar Day (This is a Myth!)

In Universal Analytics, sessions would automatically reset at the stroke of midnight in your property's configured timezone. A user who started browsing at 11:55 PM and continued past midnight would be credited with two sessions. Thankfully, GA4 has fixed this. Sessions no longer reset at midnight, meaning a continuous visit that spans across two days is correctly counted as a single session.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

How GA4 Calculates Key Session Metrics

Now that you know what starts and stops a session, let's look at the metrics GA4 uses to measure what happens inside them. These metrics are the bedrock of most standard reports.

Average Session Duration

GA4's method for calculating session duration is far more accurate than its predecessor's.

  • Universal Analytics (The Old Way): Time was measured as the difference between the timestamp of the first pageview and the last pageview. This meant if a user only visited one page, their session duration was recorded as zero seconds - even if they spent 10 minutes reading it.
  • Google Analytics 4 (The New Way): Duration is calculated as the difference between the timestamp of the session_start event and the very last event that occurred.

Since GA4 tracks more than just pageviews (like scrolls, clicks, etc.), it can capture duration for single-page visits accurately. If a user lands on a blog post, scrolls 90% of the way down a minute later, and then leaves, GA4 knows the session lasted at least one minute.

Engaged Sessions and Engagement Rate

"Bounce Rate" is gone, and for good reason. It was an unreliable metric that simply told you the percentage of single-page sessions. In its place, GA4 introduces two much more meaningful metrics: Engaged Sessions and Engagement Rate.

An Engaged Session is a visit where the user actively showed interest. By default, it's any session that meets one of the following criteria:

  • Lasted longer than 10 seconds.
  • Had at least one conversion event (e.g., a sign-up or purchase).
  • Had at least 2 pageviews or screenviews.

You can adjust the 10-second timer to something that makes more sense for your business (e.g., 30 or 60 seconds) under Configure tag settings > Adjust session timeout.

Engagement Rate is simply the percentage of your total sessions that were classified as engaged. It's calculated as:

(Engaged Sessions / Total Sessions) * 100

This metric is infinitely more useful for understanding content quality. A high engagement rate tells you that people who visit your site are finding what they're looking for and are actively interacting with it, which is the kind of insight that drives better business decisions.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Finding Session Data in Your GA4 Reports

You can find session-related metrics peppered throughout nearly every report in GA4, but the best place to start is the Traffic acquisition report.

  1. On the left-hand navigation, go to Reports.
  2. Click on Acquisition > Traffic acquisition.

Here, you'll see a table with Sessions as a default metric, alongside Engaged sessions, Average session duration, and Engagement rate, all neatly broken down by channel - your "Session default channel group." This view is perfect for quickly answering questions like:

  • Which marketing channel drives the most sessions? (Sort by Sessions.)
  • Which channel drives the most valuable sessions? (Sort by Engagement rate or a conversion metric.)
  • Are visitors from Paid Search spending as much time on site as visitors from Organic Search? (Compare Average session duration.)

To analyze session data on a page-by-page basis, head over to the Pages and screens report under the Engagement section. This helps you identify which specific pages are keeping users engaged and which ones might need improvement.

Final Thoughts

In essence, GA4's shift to an event-based model makes the session a more accurate and meaningful unit of measurement. It tracks a user's entire visit - all their interactions - and provides engagement metrics that reflect how people truly use the modern web. Understanding these calculations is the key to unlocking reliable insights about your audience.

Keeping an eye on all these metrics directly within Google Analytics is a great start, but it can still feel like you're jumping between different reports all day. We created Graphed to make this process faster and more intuitive. Rather than building custom reports manually, we let you just ask a question in plain English, like "Compare engagement rate from organic vs. paid traffic for the last quarter." Graphed instantly builds you a real-time dashboard, so you spend less time wrestling with reports and more time acting on what your data is telling you.

Related Articles