Session-scoped describes a piece of analytics data that applies to a whole visit rather than to a single action or to a person across all their visits. In GA4, session source, landing page and engagement rate are session-scoped: each describes one session, from the moment it starts until it ends.
How session scope works
GA4 stores everything as events, but it reports at different levels, called scopes. There are four that matter in practice:
- Event-scoped Belongs to one action, such as the page path of a single page view or the value of a form submission.
- Session-scoped Belongs to the visit, such as the source and medium that started it, the landing page, or whether it counted as engaged.
- User-scoped Belongs to the person (strictly, the browser or logged-in ID), such as first user source or a membership tier.
- Item-scoped Belongs to a product in an ecommerce event.
Unlike the old Universal Analytics, GA4 does not start a new session at midnight or when a visitor arrives from a different campaign partway through a visit, so GA4 session counts are often lower than the old tool reported for the same traffic.
Why it matters
Scope decides what a number actually counts. The classic confusion comes from combining scopes in one table. Put the event-scoped dimension page path next to the session-scoped metric sessions, and GA4 counts each session once for every page it touched. Add up the column and you get more sessions than the site actually had. Nothing is broken; the question was ambiguous.
It also matters when you design tracking. At the time of writing (October 2026), GA4 lets you register custom dimensions at event, user or item scope, but not at session scope. If you want to report on something that describes a whole visit, such as which variant of a test the visitor saw or whether they arrived logged in, you have to send it as an event parameter on every relevant event or store it at user level. Planning that in a measurement plan saves a rebuild later.
Common mistakes
- Summing session metrics across event dimensions. The total will exceed real sessions. Use the report total, not your own sum.
- Comparing session source with first user source. One is session-scoped, the other user-scoped. They answer different questions and will not match.
- Expecting UA session counts. Different session rules mean GA4 session numbers are not a like-for-like continuation of old reports.
- Setting a custom parameter once per visit. If it is only attached to the first page view, filtering later events by it returns little or nothing.
How to act on it
When a report looks wrong, check the scope of each dimension and metric before assuming the tracking is faulty. Google’s GA4 dimensions and metrics reference lists the scope of each one, and custom definitions in Admin show the scope you registered. Keep exploration tables to a single scope where you can: session dimensions with session metrics, event dimensions with event counts.
For anything new you want to track, decide its scope first and write it down. If you are rebuilding reports and need someone to set scopes and dimensions up properly, that work sits inside my performance marketing service, where reporting has to hold up against cost-per-lead targets.
