Does Google Analytics 4 Split Sessions at Midnight?

Cody Schneider8 min read

Ever checked your website analytics right before bed and then again first thing in the morning, only to find the reporting feels a bit... different? If you came from the world of Universal Analytics (UA), you might remember sessions had a strict curfew, the clock striking midnight would split an active user's journey right in two. This article will explain exactly how Google Analytics 4 handles sessions that cross that midnight line and what it means for the accuracy of your daily reports.

GraphedGraphed

Still Building Reports Manually?

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

Watch Graphed demo video

A Quick Look at the Old Way: How Universal Analytics Handled Midnight

To fully appreciate how GA4 works, it's helpful to remember the old rules. In Universal Analytics, a session was a container for all the hits (pageviews, events, etc.) a user made on your site. That container was pretty fragile and would "break" or end under three specific conditions:

  • Time expiry: Typically after 30 minutes of inactivity.
  • Campaign source change: If a user arrived from one campaign, left, and immediately came back through another.
  • The end of the day: At exactly 11:59:59 PM, based on the timezone set in your view settings. An active user at midnight would have their session automatically terminated, and a brand new one would start at 12:00:00 AM.

This midnight split was a constant source of frustration. It created artificial sessions that skewed metrics. For example, a user who started a checkout at 11:55 PM and completed their purchase at 12:05 AM would be recorded as two separate sessions. The first session would have a lot of activity but no conversion, while the second session (the one after midnight) might just have a purchase event, leading to a misleading 100% conversion rate for that session. This distorted daily reporting and made analyzing user behavior that spanned two days a real headache.

GraphedGraphed

Still Building Reports Manually?

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

Watch Graphed demo video

Enter the Engaged Session: GA4's Major Overhaul

Google Analytics 4 threw out the old session rulebook. Instead of revolving around session "containers," GA4 is built entirely around events. Everything is an event, from a page_view to a purchase. Sessions still exist in GA4, but they're calculated differently.

When a visitor lands on your site for the first time or returns after a period of inactivity, GA4 fires a special event called session_start. This single event marks the beginning of the entire session and is given a unique session ID. Every subsequent event that user triggers during their visit — scrolling, clicking, watching a video — is associated with that same session ID.

GA4 also introduces the concept of an "Engaged Session." This is a way to filter out bounce traffic and focus on users who are genuinely interacting with your content. An engaged session is one that:

  • Lasts longer than 10 seconds (you can adjust this timing).
  • Includes at least one conversion event.
  • Has at least two pageviews or screenviews.

This event-based model, anchored by the session_start event, is fundamental to understanding how GA4 handles time.

So, Are We Splitting Up at Midnight or Not?

Here's the straightforward answer: No, GA4 does not automatically split a session at midnight.

If a user starts a session by landing on your blog at 11:50 PM on a Tuesday and continues reading until 12:15 AM on Wednesday, GA4 sees this as one continuous session. Because there's only one session_start event, the entire journey from start to finish is tied to that single session ID. No artificial split, no fragmented data.

This is a major improvement. It gives you a much more realistic view of user behavior, especially for websites with high late-night traffic, e-commerce stores running flash sales, or global sites with users in different time zones. You can now see the complete customer journey without it being arbitrarily broken up by the clock.

The Reporting Wrinkle: Sessions vs. Daily Metrics

While the session itself remains whole, the way events within it are reported can still be a little confusing if you're looking at daily metrics. Hold on, didn't we just say sessions don't split?

Correct, the session doesn't. But GA4's reports are based on the timestamp of each individual event.

Let's go back to our example:

  • A user starts a session on Tuesday at 11:50 PM. The session_start event is logged on Tuesday.
  • They browse several pages while it's still Tuesday.
  • At Wednesday at 12:05 AM, they make a purchase. The purchase event is logged on Wednesday.
  • They leave the site at Wednesday morning at 12:15 AM.

Here's how GA4's reporting would process this:

  • For Tuesday: You'll see one new session attributed to this user, along with any pageviews or other events a user performed before midnight.
  • For Wednesday: You will NOT see a new session. However, you will see a purchase event from this user attributed to Wednesday.

If you pull a report looking at "Sessions" for Tuesday, you'll see a session in the data. If you pull a report looking at "Conversions" for Tuesday, you won't see this specific purchase. It will appear in Wednesday's conversion data instead, seemingly without a new session attached to it on that day. This may seem strange at first, but it is accurate — the event happened on Wednesday, so it gets reported on Wednesday.

GraphedGraphed

Still Building Reports Manually?

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

Watch Graphed demo video

What This Means for Your Day-to-Day Analysis

This subtle shift has a few practical implications for analyzing your marketing and website performance. For the most part, it's a big step forward, but there are some things to keep in mind.

1. More Accurate Customer Journey Data

The primary benefit is a truer picture of the user journey. Marketers running promotions that start in the evening no longer have to worry about conversion data being misattributed. If your flash sale launches at 10 PM and a customer adds items to their cart, thinks it over past midnight, and then completes the purchase, GA4 lets you follow that journey cleanly from beginning to end.

2. Watch Your Dates When Analyzing Funnels

If you're investigating drop-offs in your funnel, be mindful of the reporting dates. You might see a session on Monday with an "add_to_cart" event, but the "purchase" event for that same session doesn't show up until Tuesday's data. This isn't an error, it just means you need to look at user behavior over a slightly longer timeframe rather than focusing too narrowly on single-day reports for campaigns that generate significant late-night traffic. User-level or session-level explorations will show you the full picture.

3. Small Discrepancies in Time Metrics

Metrics like "Average Engagement Time" are also affected. While the session starts on Day 1, any engagement time that happens after midnight accumulates on Day 2. The total session count remains tied to the session_start event day. This is usually a minor impact, but for businesses like media publishers or games where users have very long sessions that routinely cross midnight, you'll want to be aware of how the engagement time is allocated across different days.

GraphedGraphed

Still Building Reports Manually?

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

Watch Graphed demo video

Don't Forget About Session Timeout

Midnight may have lost its power as a session-breaker, but session timeout is still very much in play. By default, a GA4 session will end after 30 minutes of inactivity. If a user opens a tab with your website and then walks away to make a sandwich, watch a TV show, and comes back an hour later, their original session will have timed out. When they resume activity, a new session_start event will fire, initiating a new session.

The good news is you have full control over this duration. For some websites, 30 minutes is perfect. But for others, like a B2B site where a user might be researching a complex technical article or a long-form content site where reading can take time, you might want to extend it.

You can adjust the session timeout duration right in your GA4 admin panel:

  1. Go to Admin in the bottom-left corner.
  2. In the Property column, click on Data Streams.
  3. Select your web data stream.
  4. Under the Google tag section, click Configure tag settings.
  5. On the new screen, click Show more and then Adjust session timeout.
  6. Here, you can set the hours and minutes for both the session timeout and the timer for engaged sessions. You can set the timer for anywhere between 5 minutes and 7 hours and 55 minutes!

Adjusting this to better reflect how users realistically interact with your site is one of the easiest ways to improve your data quality.

Final Thoughts

In short, Google Analytics 4 gets it right by no longer splitting sessions at midnight. It provides a more user-centric and accurate view of website engagement that extends across multiple days. While the reporting can take a little getting used to — with sessions tied to one day and their corresponding events sometimes appearing on another — it's a far more rational approach than what Universal Analytics offered.

Sometimes, getting bogged down in platform-specific quirks like this can pull you away from the questions you really need to answer, like "which campaign is actually driving revenue?" or "are my ads working this month?". With our platform, we believe analytics shouldn't be so complicated. Graphed connects directly to your marketing and sales data sources (including GA4, Facebook Ads, and Shopify) and lets you build real-time dashboards using plain English. Instead of parsing the nuances of every single metric definition, you can just ask your questions and get instant, clear answers, so you can focus on growing your business, not wrestling with reports.

Related Articles