You build an Explorations report in GA4, add "Conversions" as a metric, and get a number. Then a colleague sends you the same report built a different way and the conversion count is 30% higher. Neither of you changed the date range. So what happened?
Nine times out of ten, one of you is looking at event-scoped data and the other is looking at session-scoped or user-scoped data. Scope is the single most common source of unexplained number discrepancies in GA4, and it is almost never explained clearly in Google's own documentation.
This guide cuts through it. You will understand what each scope actually means, see where the confusion comes from in practice, and know exactly which scope to reach for in an e-commerce or lead gen context.
What "scope" means in GA4
Every dimension and metric in GA4 lives at a particular level of the data hierarchy. GA4 has three main levels: the event (a single action), the session (a group of events within one continuous visit), and the user (all sessions from one person over time). Items — the individual products in an e-commerce transaction — form a fourth, nested level that sits inside events.
When you mix dimensions and metrics from different scopes in the same report, GA4 has to decide how to aggregate. It does not throw an error. It just quietly picks a method that can produce results you did not expect.
The core rule: A metric is only meaningful when the dimension describing it lives at the same scope or a higher scope. Mixing lower-scope metrics with higher-scope dimensions inflates counts; mixing higher-scope metrics with lower-scope dimensions collapses them.
The three scopes compared
Here is a side-by-side view of what each scope covers, the kinds of events that live there, which metrics they affect, and when you should actually reach for them.
| Scope | Definition | Typical events / dimensions | Metrics it governs | When to use it |
|---|---|---|---|---|
| Event | A single hit sent to GA4. Each trigger of gtag('event', ...) or a GTM tag is one event. |
page_view, click, scroll, form_submit, custom events. Parameters attached to that specific hit. |
Event count, conversions (counted per event occurrence), event value. | Counting how often something happened. Funnel analysis. Measuring raw volume of a specific action. |
| Session | All events fired during one continuous visit. A new session starts after 30 min of inactivity or at midnight. | Session source / medium / campaign, landing page, session default channel group, session_start. |
Sessions, engaged sessions, session conversion rate, session duration, sessions per user. | Traffic analysis. Channel performance. Evaluating whether a visit resulted in a conversion — regardless of how many conversion events fired in that visit. |
| User | All events and sessions attributed to one person (device) over the selected date range. | User first/last touch dimensions, user lifetime metrics, user ID, audience membership. | Total users, new users, returning users, user conversion rate, lifetime value. | Understanding your audience. Retention and loyalty analysis. Reporting the proportion of people who ever converted, not just how often. |
| Item | An individual product record nested inside a purchase or add-to-cart event. | item_name, item_id, item_category, item_brand, item_variant. |
Items purchased, item revenue, items added to cart, item list clicks. | Product-level performance. Which SKUs are driving revenue. Category and brand analysis in e-commerce. |
Why the numbers diverge
Consider a single user who visits your site and completes a purchase form three times in one session — perhaps they had a payment error and retried. At event scope, that counts as three conversion events. At session scope, it is one converting session. At user scope, it is one converting user.
"Conversion rate" in GA4 is not one number — it is three different calculations depending on whether the denominator is events, sessions, or users. All three can be correct; only one will be appropriate for the question you are actually asking."
This is not a bug. All three numbers are accurate descriptions of what happened — they are just answering different questions. The problem arises when a report label says "conversions" without making the scope obvious, and readers assume they are comparing the same thing.
Common mistakes and how to avoid them
Mixing session dimensions with event metrics in Explorations
The most frequent mistake: you add Session default channel group (a session-scoped dimension) to a free-form exploration, then add Conversions as a metric. GA4 will count a conversion for every conversion event that occurred in sessions attributed to each channel — which means a single session containing two purchase events contributes two conversions to the channel total. This inflates channel-level conversion counts compared to what you would see in the standard Traffic Acquisition report.
The fix: when analysing channel performance, either use the Traffic Acquisition report (which is session-scoped by default) or be deliberate about using session conversion rate rather than raw event conversions. Read more about how event parameters feed into these dimensions.
Using user-scoped conversion rate to optimise paid campaigns
User conversion rate answers: "of all the people who visited, what fraction ever converted?" That is a useful retention metric. It is a poor metric for evaluating a Google Ads campaign, where you want to know whether the traffic from this campaign converted during the session it drove. Session conversion rate — or even event-level key events tied to your GA4 conversion configuration — is the right choice here. Using user-scoped rate for campaign optimisation underweights campaigns that drive quick, single-session purchases and overweights brand campaigns where users return later.
Pulling item revenue without matching item dimensions
Item revenue is an item-scoped metric. If you combine it with a session-scoped dimension like Session campaign, GA4 has to fan out: every item in every purchase event in every session attributed to that campaign gets counted. For orders containing multiple products, each product's revenue is attributed to the campaign separately, which can make a campaign's "revenue" appear much higher than the actual order total. Use item dimensions (item_name, item_category) when reporting item revenue, and use event-level purchase revenue when you want campaign-level attribution. Your dataLayer implementation needs to populate both correctly for this to work.
Practical scope selection: e-commerce
For an online store, here is a straightforward decision tree:
- Which products sell best? Item scope. Use
item_nameoritem_idwith items purchased and item revenue. - Which channel drives the most revenue? Session scope. Use the Traffic Acquisition report or session-scoped dimensions with
purchaseevent revenue. - What share of visitors ever buy anything? User scope. User conversion rate with the purchase key event.
- How many times did the checkout complete? Event scope. Raw conversion count on the
purchaseevent. - Did this campaign pay for itself? Session scope, cross-referenced with your attribution model. Session conversion rate and event value tell you revenue per converting session.
Practical scope selection: lead generation
Lead gen sites do not have item scope to worry about, but the session vs. user distinction still matters significantly.
- How many enquiry forms were submitted? Event scope. Count of the
generate_leadorform_submitkey event. - Which landing pages convert visitors into leads? Session scope. Landing page dimension with session conversion rate. This shows whether a given page turns a visit into a lead submission — not whether the same person submitted multiple forms.
- Are returning visitors more likely to convert? User scope. Segment by new vs. returning users and compare user conversion rate. This is where sampling limits can bite you if your property has heavy traffic.
- Do leads from paid search look different from organic? Session scope with source/medium dimensions. Watch for the scope mismatch issue described above — use session conversion rate, not event conversion count, when comparing channels.
A note on how GA4 surfaces scope in the UI
The standard reports (Acquisition, Engagement, Monetisation) are pre-built with consistent scoping — Google has made the scope decisions for you and they are generally sensible. The risk is highest in Explorations, where you can drag any dimension next to any metric with no warnings. If a number looks wrong in an Exploration, the first thing to check is whether your dimensions and metrics are at the same scope.
In BigQuery exports, every row is a single event, so you are always starting at event scope and aggregating upward deliberately — which is actually cleaner for avoiding these mistakes, even if it requires more SQL. If your GA4 numbers diverge from a BigQuery query, scope is again the first suspect.
Understanding scope also clarifies some of the discrepancies between Search Console and GA4 — Search Console reports at the session level (one click = one visit) while GA4 event metrics can count multiple hits per session, widening the gap.
Summary
Scope is not a technicality — it determines what question your data is actually answering. Before you build any custom report, ask yourself: am I trying to count actions, visits, or people? Pick the scope that matches, use dimensions from that same scope, and the numbers will make sense. When they still do not, check whether a colleague built the same report from a different scope. That is almost certainly the explanation.