Analytics & measurementBeginner

Session

A session is a group of interactions one visitor has with a site within a set time window. In GA4 a session ends after 30 minutes of inactivity by default.

A session is the unit analytics tools use to group a visitor's activity into a single visit. It starts when someone arrives and ends after a period of inactivity, so one person can generate several sessions in a day. Sessions are the denominator for many common metrics, including engagement rate, bounce rate and session conversion rate, so how a tool defines them shapes most of the numbers in a report.

How GA4 defines a session

Google Analytics 4 starts a session when it records a session_start event, which it generates automatically when a user arrives with no active session. The session times out after 30 minutes without activity by default, and you can change that timeout in the property's tag settings. Every event that follows carries a session ID, which is how reports tie the events back together.

GA4 behaves differently from Universal Analytics, which was sunset in 2023. A GA4 session does not restart at midnight or when the traffic source changes mid-visit. Session counts in GA4 reports are also estimated with a statistical counting method rather than counted one by one, so small differences between reports and a raw BigQuery count are expected.

Sessions versus users

Users count people (or, more precisely, browsers and devices, unless you send a user ID). Sessions count visits. A product-led SaaS site where customers return daily to read docs will show many sessions per user; a campaign landing page will show close to one.

Pick the unit that matches the question. Content reach is usually better read in users. Conversion efficiency of a landing page is usually better read per session.

What can inflate or split sessions

Sessions are easy to distort. Common causes are listed below, and most of them show up as sudden jumps in session counts with no matching change in users or key events.

  • Payment or login redirects through a third-party domain that start a new session on return
  • Missing cross-domain configuration between the marketing site and the app
  • Tags firing twice because both a hardcoded Google tag and a Google Tag Manager tag are installed
  • Bot traffic that GA4's built-in filtering does not catch

Example

A checkout that doubled sessions

Imagine Ledgerfern, an invoicing SaaS, sends trial users to a hosted payment page and back. After launch, sessions per user jump and the payment provider appears as a top referral source. The return trip is being treated as a new visit from a referral.

Adding the payment domain to GA4's list of unwanted referrals stops the provider from being credited as the source, and session counts return to a believable level.

Common mistakes

Comparing GA4 sessions to old Universal Analytics numbers

The definitions differ, so a year-over-year comparison that crosses the migration is comparing two different measurements.

Treating sessions as visitors

One person on three devices, or one person who returns after lunch, produces several sessions. Use users when you mean people.

Questions

Yes. In the web data stream's Google tag settings you can adjust the session timeout. Change it only with a clear reason, because it alters every session-based metric from that point on.

Tools use different timeouts, bot filters, consent handling and counting methods. Expect some gap and compare trends rather than absolute numbers.

Know the terms. Now win the searches.

We find the searches your buyers make, then build, publish and improve the pages that win them.