• GA4
  • Google Analytics
  • Tracking
  • Events

GA4 Sessions and Events Explained

By Olam Sule · Published 31 Aug 2026 · Updated 1 Sept 2026

TL;DR

In Google Analytics 4, an event is any single interaction the tracking records, like a page view, a click or a purchase. A session is a group of those events from one visit, and GA4 opens it with a session_start event. Events are the foundation; sessions are derived from them. That reversal from Universal Analytics is why your session and event counts changed after the migration. We set up and checks this event tracking for clients most weeks.

Olamide Sule, founder of Dolphin Analytics: a digital analytics expert based in London who sets up and audits GA4 tracking for agency and in-house clients most weeks.

If you have opened a GA4 report and wondered what an event actually is, or why your session numbers look nothing like the old ones, you are not alone. GA4 rebuilt the data model from the ground up. Events and sessions still exist, but the relationship between them flipped, and that flip trips up most people migrating from Universal Analytics. We set this event tracking up for clients most weeks, and this is the explanation we give before any of it: both concepts in plain terms, and how to check your own tracking is recording them correctly.

What is an event in Google Analytics 4?

An event in Google Analytics 4 is a single interaction the tracking records: a page view, a scroll, a click, a form submission, a purchase. GA4 measures everything as an event, so a page view is just an event named page_view and a purchase is an event named purchase. There is no separate “pageview” or “transaction” concept sitting above events like there was in Universal Analytics.

Each event can carry parameters, which are extra details about what happened. A purchase event carries parameters like value, currency and the list of items bought. A page_view event carries the page location and title. These parameters are what turn a raw count of events into something you can report on, so the value of GA4 data depends heavily on which parameters get sent with each event. Google’s own events documentation lists the standard parameters for each event type.

What are the four types of events in GA4?

GA4 groups events into four categories, from zero-setup to fully custom. The difference matters because it tells you which events you get for free and which ones you have to build.

Event typeWhat it isSetup neededExamples
Automatically collectedFired by the GA4 tag with no configurationNonesession_start, first_visit, user_engagement
Enhanced measurementCommon interactions GA4 tracks once you toggle them onA switch in the data streamScrolls, outbound clicks, site search, video, file downloads
RecommendedNamed events with a fixed structure Google defines per use caseYou send them, following Google’s namingpurchase, sign_up, login, generate_lead
CustomEvents you name and define yourselfBuilt in GTM or site codequote_requested, pricing_toggle_clicked

The first two need no code. GA4 starts collecting them the moment the tag is live, and enhanced measurement is on by default for new properties. The other two are where most tracking work happens: a recommended event like purchase only appears if your site or tag manager actually sends it, with the right parameters attached. This is the single most common gap we find. The tag is live, the automatic events flow in, and the events that matter to the business were never set up, so the reports look healthy while the conversion data is missing.

What is a session in Google Analytics 4?

A session in Google Analytics 4 is a group of events from one visit to your site or app. When someone arrives, GA4 fires a session_start event, and every event that follows belongs to that session until the visit ends. So a session is not a separate thing GA4 measures; it is a container that events fall into, opened by an event and counted from that event.

By default a GA4 session ends after 30 minutes of inactivity, and the next event after that gap opens a fresh session. You can adjust that timeout in the data stream settings, anywhere from 5 minutes to 7 hours 55 minutes, per Google’s session documentation. Two behaviours from Universal Analytics are gone: GA4 does not restart a session at midnight, and it does not start a new session when the campaign source changes mid-visit. Both of those old rules inflated Universal Analytics session counts, which is part of why your GA4 numbers came out lower.

How do events and sessions fit together?

Events are the foundation and sessions are built on top of them. This is the part Universal Analytics users find hardest, because the old model worked the other way round: sessions were the primary unit, and events were secondary things that happened inside them. GA4 inverted that. Now the event is the atom, and a session is simply the set of events sharing one visit.

Picture a single visit: someone lands on a page, scrolls, clicks a link, adds an item to a basket, and buys. That is five events (page_view, scroll, click, add_to_cart, purchase) and one session. The session exists only because GA4 grouped those events under one session_start. Count the events and you know how much happened; count the sessions and you know how many visits it took. Get the events wrong and every session-level metric built on them is wrong too, which is why event setup is the thing worth checking first.

Why don’t my GA4 numbers match Universal Analytics?

Your numbers moved because GA4 and Universal Analytics count the same traffic with different rules, not because either one is broken. Sessions are the clearest example. Universal Analytics split a visit into a new session at midnight and whenever the campaign source changed, so one person browsing across those boundaries counted as several sessions. GA4 does neither, so the same behaviour often lands as a single, longer session and the total comes out lower.

Events changed even more. In Universal Analytics an event had a rigid Category, Action and Label structure, and pageviews were counted separately from events. In GA4 both are just events with parameters, so the raw event count usually jumps while the old “total events” metric no longer means the same thing. Comparing the two tools number for number is the wrong instinct; they are measuring on different definitions. If GA4 is showing no data at all rather than different data, that is a setup fault, and our GA4 no-data diagnostic walks through the usual causes.

How do you know your events are firing correctly?

You confirm events by watching them fire in real time, not by trusting that the reports look full. GA4’s DebugView shows events arriving as you click through your own site, and it is the fastest way to catch an event that never fires, one that fires twice, or a purchase missing its value parameter. A report can look perfectly healthy while the one event the business cares about is broken, because the automatic events keep flowing regardless.

For a quick outside check of what is loading on a page, Sonar, our free tracking checker, scans any URL and reports the tags, pixels and consent setup it can prove from the scan, free and in one click, with no account and nothing to install. We build and fix this event tracking for agency and in-house clients most weeks. It sees what a visitor’s browser sees, so it is the right tool for “is my tracking even on this page” rather than “is every event set up correctly inside GA4”. For the deeper checks, our GA4 audit checklist covers the events, key events and consent work a full review goes through, and the tracking pillar explains how we approach it end to end.

Where this leaves you

Events are the unit GA4 records, and sessions are groups of events from one visit. Once that hierarchy clicks, the rest of GA4 makes more sense: the four event types tell you what you get for free versus what you must build, the 30-minute timeout and dropped midnight reset explain your session counts, and DebugView tells you whether any of it is actually working.

If your reports look wrong and you want a person to look at the problem rather than another article, use the tell us what’s broken, or book a call.

Frequently asked

What is the difference between an event and a session in GA4?

An event is one interaction GA4 records, like a page view, a scroll or a purchase. A session is a group of those events from a single visit. In GA4 the event is the building block and the session is derived from events: the first event in a visit triggers a session_start event, and GA4 counts one session for each session_start. So events come first, and sessions are a way of grouping them.

What are the four types of events in GA4?

GA4 has four event categories: automatically collected events (like first_visit and session_start), enhanced measurement events (scrolls, outbound clicks, site search, video and file downloads), recommended events (named events with a fixed structure for a use case, like purchase or sign_up), and custom events you define yourself. The first two need no code; recommended and custom events usually need setup in Google Tag Manager or the site code.

Why did my session count change in GA4 compared to Universal Analytics?

Session counts moved because GA4 counts sessions differently from Universal Analytics. Universal Analytics restarted a session at midnight and when campaign source changed; GA4 does neither, so one long visit that Universal Analytics split into several sessions is often a single GA4 session. GA4 also estimates sessions from the session_start event rather than counting hits. Different rules, different numbers, even on the same traffic.

How long is a session in Google Analytics 4?

A GA4 session ends after 30 minutes of inactivity by default, and any event after that gap opens a new session. You can change the timeout in the data stream settings, between 5 minutes and 7 hours 55 minutes. There is no midnight cut-off and no restart when the traffic source changes, so GA4 sessions can run longer than the Universal Analytics equivalent.

Does every event start a new session?

No. Only the first event in a visit starts a session, by triggering the session_start event. Every event after that, until 30 minutes of inactivity passes, belongs to the same session. A page view, three clicks and a purchase in one visit are five events inside one session, not five sessions.

Talk to us

Where does your data stop making sense?

Tell us what's broken, or grab a time. Either way you hear from a person, not a sales script.

Send a message

We reply within one working day.

Add a few details (optional) The more we know up front, the faster we can tell you what's wrong and how to fix it.

Protected by an invisible spam check. Prefer email? olam@dolphinanalytics.co.uk

Calendly · 30 min

Book a call

Thirty minutes on Google Meet with the founder.

The booking lands on the same record as your message.