Does Google Analytics 4 Start a New Session at Midnight?

Cody Schneider9 min read

Yes, Google Analytics 4 starts a new session at midnight. If a user is active on your website when the clock ticks past 11:59:59 PM in your GA4 property’s timezone, their current session automatically ends, and a brand new one begins. This article will explain exactly how GA4 sessions work, why this midnight crossover happens, and what it all means for your marketing data.

What Exactly Defines a Session in GA4?

Before we can understand why a session ends, we have to know what a session is in Google Analytics 4. A session is a group of user interactions with your website that takes place within a given timeframe. Think of it as a container for all the actions a single user takes during a visit.

In the past, with Universal Analytics, this "container" was a bit more abstract. GA4 makes sessions more concrete and observable through its event-based data model. Here are the key ingredients:

  • The session_start Event: Every single session in GA4 begins with an automatically collected event called session_start. When you see this event in your reports, you know a new session has officially begun.
  • Session ID (ga_session_id): Each new session is stamped with a unique session ID. All subsequent events that happen within that same session (like page_views, scrolls, or purchases) will share this same session ID. This is how GA4 groups together all the actions from a single visit.
  • Session Number (ga_session_number): GA4 also keeps track of how many sessions a particular user has had. The ga_session_number parameter increments for each new session from a given user, letting you see if someone is a first-time visitor (session_number=1) or a returning user.

So, a GA4 session isn't just a vague "visit." It's a technical sequence that starts with a session_start event and is tied together with a unique session ID. This structure is what allows Google to decide when one container should close and another should open.

The Two Rules That End a GA4 Session

Every session meets its end in one of two ways. One is based on user inactivity, and the other is based on the clock.

1. The Inactivity Timeout

The most common way for a session to end is inactivity. By default, GA4 sessions time out after 30 minutes of no user interaction. It's like a standby timer that resets every time the user does something.

Imagine a user lands on your blog, reads an article for three minutes, then gets a phone call. The 30-minute timer starts the moment they stop interacting with the page. If they come back 10 minutes later and click a link, the timer resets back to 30 minutes. If, however, they don't come back to their browser for 31 minutes and then click a link, GA4 considers the old session over and starts a brand new one with a new session_start event and a new session ID.

You can adjust this default timeout period by going to: Admin > Data Streams > [Your Web Stream] > Configure tag settings > Show more > Adjust session timeout.

You can set the duration to be anywhere from 5 minutes to 7 hours and 55 minutes, depending on the nature of your website.

2. The Midnight Crossover

This brings us to the main event. Regardless of user activity, GA4 will always end a session if it crosses the midnight threshold. Even if a user is actively scrolling, clicking, and viewing pages, their session will be terminated at 11:59:59 PM, and a new one will begin immediately at 12:00:00 AM.

This rule is non-negotiable and cannot be changed or disabled. It ensures that your website activity is cleanly attributed to the specific calendar day on which it occurred.

Why Does GA4 Force a Session Reset at Midnight?

The one-word answer is: reporting.

The purpose of resetting a session at midnight is to maintain day-to-day data integrity. Analytical platforms are built on reporting timeframes: daily, weekly, monthly, etc. The "day" is one of the most fundamental units of analysis. To provide accurate daily reporting, GA4 needs a definitive daily cutoff.

If a single session were allowed to span from Tuesday to Wednesday, it would create all sorts of reporting headaches:

  • To which day do you attribute the session? Tuesday or Wednesday?
  • If a user adds an item to their cart on Tuesday at 11:58 PM and purchases it on Wednesday at 12:05 AM, on which day did the conversion happen?
  • How should "Average session duration" for Tuesday be calculated if the session hasn't even ended yet?

By splitting the session at midnight, GA4 cleanly resolves these issues. The events that happened on Tuesday are counted for Tuesday. The events that happened on Wednesday are counted for Wednesday. It keeps your daily metrics tidy, accurate, and comparable.

A Practical Example: A Late-Night Shopper's Journey

Let's walk through a real-world scenario to see how this plays out. A user visits your e-commerce store on a Monday night to browse for shoes.

  • 11:55 PM (Monday): The user arrives on your site from a Facebook ad. GA4 logs a session_start event with Session ID 123. The Source/Medium is recorded as "facebook.com / cpc". The user browses two product pages.
  • 11:59 PM (Monday): The user finds a pair of shoes they like and adds it to their cart. GA4 records an add_to_cart event, and a page_view of the cart page, both associated with Session ID 123.

...The clock hits midnight...

  • 12:02 AM (Tuesday): The user adds a pair of socks to their cart. Because it's past midnight, GA4 has begun a new session. It logs another session_start event with a new Session ID 456. A new add_to_cart event for the socks is associated with this new session.
  • 12:05 AM (Tuesday): The user completes their purchase. GA4 logs a purchase event, also tied to the new Session ID 456.

The Aftermath in Your Reports:

  • GA4 now shows two sessions for this one user visit.
  • Monday's data will include Session 123, which lasted 5 minutes and contained one add_to_cart event but no purchase.
  • Tuesday's data will include Session 456, which contained another add_to_cart event and a purchase event.

While GA4 is smart enough to attribute the final sale to the user from the original Facebook ad (thanks to its user-level scope), segmenting your reports by session could be misleading. A report filtered for "sessions with a purchase" will only show Session 456, not the whole customer journey.

How the Midnight Cutoff Affects Your Reporting Metrics

While the midnight reset mostly happens in the background, it can have minor effects on some of your key metrics.

Session Count Inflation

The most direct impact is a slight inflation of your total session count. As seen in the example, one continuous browsing period becomes two sessions. For most websites, the percentage of traffic browsing during the midnight hour is small, so this effect is often negligible. However, for businesses catering to late-night audiences (like food delivery, gaming, or entertainment sites), this small inflation could be more noticeable.

Skewed Session Durations

Splitting sessions can also impact your "Average session duration" metric. In the example above, the first session was only five minutes long before being cut off. The second session began at midnight and continued normally. This can create a small number of artificially short sessions in your data, potentially bringing your daily average down slightly.

Conversion Path Analysis by Session

If you're analyzing which sessions lead to conversions, the midnight split is important to remember. The conversion event (like a purchase or generate_lead) will be tied to the session on Day 2, separated from the initial browsing behavior on Day 1. This reinforces the value of user-centric analysis over session-centric analysis in GA4.

Whose Midnight Is It, Anyway? Understanding GA4 Timezones

This is a critical detail: The "midnight" GA4 uses is based on the timezone selected in your property settings, not the user's local timezone.

If your business is based in New York and your reporting timezone is set to Eastern Time (ET), the session will reset at midnight ET for all users, whether they are in New York, London, or Tokyo.

It is vital that your GA4 property's timezone matches the primary business timezone you use for analysis. A mismatch can cause your data to seem like it’s resetting at an odd hour. You can check or change this by navigating to:

Admin > Property Settings > Reporting time zone.

How Does Session Attribution Handle the Midnight Crossover?

One common concern is whether the newly created session at midnight loses its marketing source and shows up as "(direct) / (none)." Good news: GA4 is designed to handle this gracefully.

When a new session is forced to start because of a day change, GA4 carries over the traffic attribution data (source, medium, campaign, etc.) from the previous session. In our shopping example, the second session that started on Tuesday at 12:02 AM still retains "facebook.com / cpc" as its source/medium, ensuring the correct marketing channel gets credit.

Final Thoughts

The logic is simple: yes, Google Analytics 4 reliably starts a new session at midnight, based on your property’s selected timezone. It does this to ensure your daily performance reports are accurate and straightforward, preventing the confusion of a single visit's metrics spanning multiple days. While this can have minor effects on metrics like session count, it ultimately creates cleaner, more reliable daily insights.

Understanding these little details in GA4 is important, but it often feels like you spend more time digging into the mechanics of reporting than acting on what the data actually says. When we grew tired of wrestling with complex reporting tools, we built Graphed to simplify the entire process. Just connect your GA4 account (along with your ad platforms, CRM, and sales data) and start asking questions in plain English. Instead of building manual reports to analyze session trends, you can just ask, “Show me how session duration on mobile changed last month” and get an immediate, real-time dashboard, saving you precious hours to focus on strategy.

Related Articles

How to Connect Facebook to Google Data Studio: The Complete Guide for 2026

Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.

Appsflyer vs Mixpanel​: Complete 2026 Comparison Guide

The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.