Back to blog

What Is a GA4 Session Count? Explaining the Measurement Differences from UA

与謝秀作

GA4のセッション数とは?UAとの計測仕様の違いを解説

Session count is one of the most fundamental metrics for understanding how a website attracts traffic. However, many people who migrated from the previous version, Universal Analytics (UA), are puzzled when they notice that "GA4 reports fewer sessions for the same site." This is not a bug; it is a normal difference that arises because GA4 and UA measure sessions according to different specifications. This article explains, in a structured way, how GA4 defines session count, how its measurement specification differs from UA, why the numbers do not match, and how to interpret the data correctly in practice.

What is a GA4 session count?

A session refers to a group of interactions a user has from the moment they visit a website or app until they leave. One visit is counted as one session, so if the same user visits three times in a day, that counts as three sessions. In other words, session count represents the "number of visits," and it is important to first note that it is distinct from the number of users (UU).

GA4 is designed around "events" for all of its measurement, and sessions are no exception. The moment a user begins using the site, an event called "session_start" fires, and the number of times this session_start event occurs is counted directly as the session count. When a session begins, a session ID and session number are generated automatically, and subsequent actions such as page views and scrolling are all bundled into and recorded within that single session.

Key point: GA4 session count = the number of session_start events. The session is the "container," and the page_view, scroll, and other events inside it are the "contents."

Conditions that end (split) a session in GA4

To understand session count correctly, you need to know when a session ends and a new one begins. The main conditions under which a new session is counted in GA4 are as follows.

  • 30 minutes of inactivity (timeout): If a user performs no action at all for 30 minutes after their last interaction, the session times out. When they resume activity, it is counted as a new session. The 30-minute value is the default setting.
  • The session timeout can be changed: From the admin screen under "Data Streams" > "Configure tag settings" > "Adjust session timeout," you can change it within a range of 5 minutes to 7 hours 55 minutes, in 5-minute increments.
  • The duration cap has been removed: In UA there was an upper limit on session duration, but in GA4 a session continues as long as activity continues, and no time limit is set.

Differences in session measurement specifications between GA4 and UA

Although the word "session" means the same thing in GA4 and UA, the specification for when a session is split (reset) differs significantly. This difference is the biggest cause of the discrepancy in session counts after migration. Let's look at three representative differences.

Difference 1: When the traffic source (source/medium) changes

In UA, when the traffic source changed mid-session, the session ended at that point and a new session began. For example, if a user visited from Google Search and then revisited via Yahoo! Search within 30 minutes, UA counted this as two sessions. In GA4, even if the traffic source changes, it is treated as the same session as long as it is within 30 minutes, and the session count remains one. In this case, the session's source/medium retains the first traffic source (google/organic).

Difference 2: When the date changes

In UA, when a session crossed the date boundary (midnight), the session was split there and a new session began. For example, a session that started at 23:59 would end once at 0:00 and a second session would begin. In GA4, even if the date changes, the session does not split as long as activity continues, and it is counted as one continuous session.

Difference 3: How session duration is measured

The way session length (time on site) is calculated also differs. UA computed it as the difference between the "first page view time" and the "last page view time." GA4 measures it as the difference between the "session_start event time" and the "last event time." Because GA4 captures time on an event basis, actions that do not involve a page transition, such as scrolling and clicking, are more easily reflected in the time on site.

A summary of the specification differences

  • Timeout after 30 minutes of inactivity: Both UA and GA4 end the session (common)
  • When the traffic source changes: UA splits / GA4 does not (same session within 30 minutes)
  • When the date changes: UA splits / GA4 does not
  • Duration cap: UA has a cap / GA4 has none
  • How sessions are counted: UA is hit-based / GA4 uses the number of session_start events

Why GA4 tends to show fewer sessions

Putting these differences together reveals why GA4 shows fewer sessions than UA. In UA, a new session was created every time the "traffic source changed" or the "date rolled over," but GA4 keeps these situations within a single session rather than splitting them. Because the conditions that issue a new session have been reduced, the same traffic is counted as fewer sessions in GA4.

This change is intended to capture users' actual usage more naturally. By treating the behavior of a single user who browses continuously while switching traffic sources as "one visit," it becomes easier to analyze behavior from a user-centric perspective. Therefore, the fact that GA4 and UA numbers do not match is correct behavior, and there is no need to force them to align.

Points to note when comparing UA and GA4 numbers

Beyond the specification differences, there are other factors that can make the numbers appear to diverge. When comparing and verifying, check the following points.

  • Time zone setting: Check whether the "reporting time zone" matches between UA and GA4. If it differs, the daily aggregation boundary changes.
  • Session timeout duration: If only one side has changed the timeout duration, the way sessions are split changes and the gap widens.
  • Data processing time: GA4 can take up to about 72 hours for data to finalize. Because recent data can fluctuate, it is safer to wait about 48 to 72 hours before comparing.
  • Filter and stream conditions: Compare data under the same conditions, such as a UA view with no filters applied versus a single GA4 web data stream.

How to check session count in GA4

To view session count in GA4, the basic approach is to check from "Reports" in the left menu. If you want to see the overall traffic acquisition for the site, open "Reports" > "Acquisition" > "Traffic acquisition" to see session counts by channel in a list. Under "Reports" > "Engagement" > "Pages and screens," you can also see page-level metrics.

Note that GA4 also has a similar but distinct metric called "engaged sessions." This refers to high-quality sessions that meet at least one of the following: lasting 10 seconds or longer, generating a conversion, or having two or more page/screen views. If you want to see the "quantity" of traffic, use session count; if you also want to factor in "quality," use engagement-related metrics, choosing according to your purpose.

Conclusion

GA4 session count is measured as the number of session_start events and, unlike UA, does not split sessions when the traffic source changes or the date rolls over. Because of this specification difference, GA4 tends to show fewer sessions than UA, but this is normal behavior. What matters is not simply forcing the two to match, but understanding each measurement specification and reading GA4's numbers as a consistent baseline. Once you grasp the underlying premises of the specification, you can use session count as a solid foundation for measuring the effectiveness of acquisition initiatives and improving your site.

Back to blog