GA4's dimensions and metrics are not static. Google regularly adds new dimensions, deprecates old ones, renames existing ones, and changes calculation methodologies. For teams that build reports, SQL queries in BigQuery, or Looker Studio dashboards on top of GA4 data, these changes break things. Understanding what has changed and why keeps your analytics infrastructure working reliably.
The structural changes teams should care about
User, session, and event scope still drive most reporting mistakes
UI and API terminology can shift, especially around key events
Maximum dimensions per API query
GA4 API quota documentation
Maximum metrics per API query
GA4 API quota documentation
Key events replaced conversions in much of the interface
Google shifted a large part of GA4 terminology fromconversionstokey events. The underlying idea did not disappear, but teams that maintain dashboards, API queries, and training material should expect naming differences between older documentation and current product surfaces. The naming change is one of the most visible parts of the broaderUA-to-GA4 migration.
This matters most when your reporting depends on hardcoded field names, metric labels, or stakeholder definitions. Always check the current Dimensions and Metrics Explorer and the relevant reporting interface before assuming an older label still maps cleanly.
Traffic source structures are more complex than they look
The number of traffic source-related dimensions in GA4 increased significantly from 2023 to 2025. The originalsession_sourceandsession_mediumwere supplemented withsession_source_platform,session_campaign_id, and various first-user variants. InBigQuery, the traffic source structure is split across three separate objects:traffic_source(first user acquisition),collected_traffic_source(raw hit-level data), andsession_traffic_source_last_click(last-click session attribution).
This complexity exists because GA4 stores attribution at multiple levels: user acquisition (first-ever session), session acquisition (the source of each session), and event-level attribution (the source when a specific event fired). Queries that mix these levels produce incorrect results. Always clarify which attribution level your analysis requires before selecting traffic source dimensions.
Engagement time metric behaviour
Average engagement time per sessionandaverage engagement time per userare calculated differently from what Universal Analytics called average session duration. GA4 measures engagement time as the time the page or app was in the foreground (active tab) rather than the time between the first and last hit. Sessions where a user opens your page in a background tab and never brings it to the foreground will show zero engagement time even if many minutes pass.
This change produces lower engagement time figures compared to Universal Analytics session duration for the same site with the same users, because UA counted any time between events. GA4 only counts active foreground time. Comparisons of these metrics across the UA to GA4 migration boundary are not meaningful.
Deprecated dimensions and removed metrics
GA4 has progressively removed Universal Analytics-era dimensions that had no direct GA4 equivalent. Hit-level dimensions from UA (like hit type) do not exist in GA4. UA metrics that relied on the session with a bounce model (traditional bounce rate, average pages per session with old calculation methodology) have been replaced by engagement-based equivalents.
Several dimensions related to Smart Goals and UA-specific features were removed or are no longer populated with data. Teams that migrated dashboards from UA to GA4 by mapping dimensions directly often find that some dimensions produce empty or incorrect data because they were incorrectly mapped to a GA4 dimension that measures something subtly different. Reporting on registeredcustom dimensionsoften hits this problem first because the field names look familiar but the scope rules differ.
Are your BigQuery queries referencing deprecated GA4 dimension names?
Working with scope constraints
One of the most common causes of unexpected results in GA4 reports and API queries is using dimensions and metrics from incompatible scopes. User-scoped dimensions report on users. Session-scoped dimensions report on sessions. Event-scoped dimensions report on events. Mixing them in a single report produces results that may look like valid numbers but represent a cross-product calculation that is mathematically misleading. The full breakdown is covered inincompatible dimensions and metrics.
For example, combining a user-scoped dimension like city with an event-scoped metric like event_count produces a result where event_count is summed across all events for all users in that city. This is fine if that is what you need. But if you intended to count sessions from that city and used a user-scoped dimension instead of a session-scoped one, the results will be incorrect. The same metric definition can also produce different numbers depending on whether you query through the UI, the Data API, or Explorations — seewhy API, UI, and Explore numbers diverge.
Keeping your GA4 dimension and metric references current
The most reliable single source for current GA4 dimension and metric names, scopes, and calculation definitions is the officialGA4 Dimensions and Metrics API reference. For BigQuery-based analysis, Google's documentation on theBigQuery export schemais the authoritative reference.
For teams that build automated reports or data pipelines, a validation check that compares your dimension and metric names against the current API reference is a recommended part of any quarterly audit. Dimension names that return empty data in a report when they previously returned data are a signal that the dimension has been renamed or deprecated.
Dimensions and metrics audit checklist
- Conversion-related dimensions in reports and API calls use current key_event naming where required
- Traffic source dimensions consistently use the correct attribution level (user vs session vs event)
- No UA-era dimensions are mapped directly to GA4 dimensions without validation that they measure the same thing
- Engagement time is communicated to stakeholders as foreground active time, not session duration
- BigQuery queries reference the current schema documentation for field names
- Dimension and metric names in Looker Studio reports are validated quarterly against the current API reference
Related guides to read next
GA4 Incompatible Dimensions and Metrics
A detailed reference for dimension and metric combinations that cannot be used together in the same GA4 API query.
GA4 BigQuery Export Parity
Why GA4 report numbers differ from BigQuery query results and how to reconcile them correctly.
GA4 Engagement Rate Explained
How engagement rate is calculated, how it differs from UA bounce rate, and when a low rate is expected.
GA4 API vs UI vs Explore
Why the same metric can return different numbers depending on which GA4 interface you use to query it.
Validate your GA4 dimensions and metrics setup
G4 Audits checks for deprecated dimension references, scope mismatches, and naming changes across your reports and queries.