Session
A session is a period of user activity on a website or app, bounded by a timeout. In GA4, a session starts when a user first arrives and ends after 30 minutes of inactivity (configurable) or at midnight. GA4 sessions are derived from the session_start event, not tracked as a separate hit type.
§ 1 Definition
A session is a container of user interactions that happen within a given time frame on a website or app. In GA4, sessions are not tracked as separate hits. They are inferred from event data using the session_start event, which GA4 fires automatically when a user arrives. A session ends after 30 minutes of inactivity (customizable between 5 minutes and 7 hours 55 minutes) or when a campaign parameter changes indicating a new traffic source. Unlike Universal Analytics, GA4 does not reset sessions at midnight. A user browsing at 11:55 PM and continuing at 12:05 AM stays in the same session as long as the activity gap does not exceed the timeout. This difference alone can cause session counts in GA4 to be lower than they were in UA for the same traffic.
§ 2 Session calculation in GA4
GA4 counts a session when the session_start event fires. This happens on the first page_view of a visit or when a session times out and new activity triggers a new session_start. A session is considered 'engaged' when a user spends at least 10 seconds on the site, completes at least 2 page views, or triggers a key event (formerly called a conversion event). Engaged sessions power the engagement rate and bounce rate metrics.
§ 3 Differences from Universal Analytics sessions
Universal Analytics counted a new session at midnight regardless of activity. GA4 does not. Universal Analytics treated campaign source changes as new sessions (if a user arrived via organic search, left, came back via a paid ad, that was a new session). GA4 handles this differently, often resulting in fewer sessions. Universal Analytics had a hard 30-minute session timeout with no custom range. GA4 allows customization from 5 minutes up to 7 hours 55 minutes. These differences mean you should never directly compare session counts between UA and GA4.
§ 4 Session scoping and reporting
Sessions in GA4 are used as a dimension in reports and explorations. You can segment by session, analyze session-level conversion rates, and use session-scoped dimensions in attribution models. The session ID is an auto-generated parameter (ga_session_id). You can also set a session-scoped parameter using ga_session_number to tell whether this is the user's 1st, 5th, or 20th session.
§ 5 Note
§ 6 Common questions
- Q. Why does GA4 show fewer sessions than UA did?
- A. GA4 does not reset sessions at midnight and handles campaign source changes differently. A user active across midnight counted as two sessions in UA but one session in GA4. This is normal.
- Q. Can I change the session timeout in GA4?
- A. Yes. In GA4 admin settings, you can set the session timeout from 5 minutes to 7 hours 55 minutes. The default is 30 minutes.
- Q. Is a single-page application session counted differently?
- A. SPAs can cause session counting issues because traditional page_view events may not fire on route changes. You need to implement virtual page views or history change events to ensure accurate session tracking in SPAs.
- Sessions in GA4 are derived from session_start events, not tracked separately
- GA4 sessions do not reset at midnight (unlike UA)
- Session timeout is configurable (5 min to 7h 55min)
- Do not compare session counts between UA and GA4 directly
- Use engaged sessions for a more meaningful quality signal
We audit your GA4 session configuration to ensure your data reflects real user behavior, not counting artifacts. Get in touch if your session numbers do not look right.
Get in touchA session is a period of user activity on a website or app, bounded by a timeout. In GA4, a session starts when a user first arrives and ends after 30 minutes of inactivity (configurable) or at midnight. GA4 sessions are derived from the session_start event, not tracked as a separate hit type.
Category: Analytics
Author: Atomic Glue Analytics Team
## Definition
A session is a container of user interactions that happen within a given time frame on a website or app. In GA4, sessions are not tracked as separate hits. They are inferred from event data using the session_start event, which GA4 fires automatically when a user arrives. A session ends after 30 minutes of inactivity (customizable between 5 minutes and 7 hours 55 minutes) or when a campaign parameter changes indicating a new traffic source. Unlike Universal Analytics, GA4 does not reset sessions at midnight. A user browsing at 11:55 PM and continuing at 12:05 AM stays in the same session as long as the activity gap does not exceed the timeout. This difference alone can cause session counts in GA4 to be lower than they were in UA for the same traffic.
## Session calculation in GA4
GA4 counts a session when the session_start event fires. This happens on the first page_view of a visit or when a session times out and new activity triggers a new session_start. A session is considered 'engaged' when a user spends at least 10 seconds on the site, completes at least 2 page views, or triggers a key event (formerly called a conversion event). Engaged sessions power the engagement rate and bounce rate metrics.
## Differences from Universal Analytics sessions
Universal Analytics counted a new session at midnight regardless of activity. GA4 does not. Universal Analytics treated campaign source changes as new sessions (if a user arrived via organic search, left, came back via a paid ad, that was a new session). GA4 handles this differently, often resulting in fewer sessions. Universal Analytics had a hard 30-minute session timeout with no custom range. GA4 allows customization from 5 minutes up to 7 hours 55 minutes. These differences mean you should never directly compare session counts between UA and GA4.
## Session scoping and reporting
Sessions in GA4 are used as a dimension in reports and explorations. You can segment by session, analyze session-level conversion rates, and use session-scoped dimensions in attribution models. The session ID is an auto-generated parameter (ga_session_id). You can also set a session-scoped parameter using ga_session_number to tell whether this is the user's 1st, 5th, or 20th session.
## Note
Common misconception: sessions in GA4 are the same as sessions in Universal Analytics. They are not. GA4 changed the session counting logic significantly. If you see lower session numbers in GA4 than you did in UA for the same site, that is expected. Also: GA4 does not have a 'session quality' score. Use engaged sessions and engagement rate instead.
## Common questions
Q: Why does GA4 show fewer sessions than UA did?
A: GA4 does not reset sessions at midnight and handles campaign source changes differently. A user active across midnight counted as two sessions in UA but one session in GA4. This is normal.
Q: Can I change the session timeout in GA4?
A: Yes. In GA4 admin settings, you can set the session timeout from 5 minutes to 7 hours 55 minutes. The default is 30 minutes.
Q: Is a single-page application session counted differently?
A: SPAs can cause session counting issues because traditional page_view events may not fire on route changes. You need to implement virtual page views or history change events to ensure accurate session tracking in SPAs.
## Key takeaways
- Sessions in GA4 are derived from session_start events, not tracked separately
- GA4 sessions do not reset at midnight (unlike UA)
- Session timeout is configurable (5 min to 7h 55min)
- Do not compare session counts between UA and GA4 directly
- Use engaged sessions for a more meaningful quality signal
## Related entries
- [Google Analytics 4 (GA4)](atomicglue.co/glossary/google-analytics-4-ga4)
- [Bounce Rate](atomicglue.co/glossary/bounce-rate)
- [Engagement Rate](atomicglue.co/glossary/engagement-rate)
- [Pageview](atomicglue.co/glossary/pageview)
Last updated July 2026. Permalink: atomicglue.co/glossary/session