Skip to main content

Introduction

Google Analytics 4 (GA4) is the current generation of Google’s web and app analytics platform. It replaces Universal Analytics with an event-based data model — every user interaction (page view, scroll, click, purchase) is recorded as an event with parameters, rather than being bucketed into the older pageview / session schema. GA4 measures users and sessions across web and mobile properties, supports cookieless measurement modes, and exposes both standard and custom events. The connector reads from the Google Analytics Data API (queries) and the Google Analytics Admin API (account, property, and metadata discovery). One data source is created per GA4 Property; connecting three properties produces three independent data sources. Available metrics and breakdowns — including any custom breakdowns or custom metrics defined in the property — are discovered dynamically from the GA4 Metadata API and surfaced in the field picker. As an analytics connector, session, event, and breakdown data are standardized so widgets can aggregate alongside ad-platform sources without additional configuration. To connect this data source, see How to connect Google Analytics 4 to Adriel.

Data refresh strategy

Architecture data

Architecture covers the GA4 Account → Property → Data stream hierarchy plus the per-property metadata catalog (standard breakdowns, standard metrics, custom breakdowns, custom metrics, channel groups). The metadata catalog is fetched from the GA4 Metadata API and cached for 12 hours per (account, property) pair. Newly defined custom breakdowns or custom metrics can therefore take up to 12 hours to appear in the field picker.

Reports data

Reports data is fetched on demand. Each dashboard load issues a live request to the GA4 Data API for the selected date range, breakdowns, metrics, and filters — there is no nightly snapshot or fixed refresh window. Returned rows reflect GA4’s current processing state; GA4 typically considers data for the prior day fully processed within 24–48 hours, so very recent rows may still shift slightly (Google Analytics Help — Data freshness). An internal cache accelerates recent queries: the last 3 days are re-fetched on each refresh cycle, and up to ~6 months of historical results are retained. Older ranges are always requested live from GA4. Sampling and the per-query row cap apply at request time (see Limitations).

Architecture levels

Account → Property → Data stream GA4 has no ad-hierarchy analog. A GA4 Property is the reporting boundary; Data streams (web, iOS app, Android app) feed events into the Property.

Date range limits

GA4 has no connector-side hard cap on the date range for a single query, but sampling likelihood and row-cap risk rise sharply with wider ranges. The values above are workspace defaults; wider queries succeed when the property’s event volume is low.

Metrics

Google Analytics 4 is a schema-flexible source. The fields below are the standard fields Adriel exposes; the exact fields you can report on depend on your Google Analytics 4 data. Data type uses Adriel’s vocabulary; API Key in code style is the literal source field; italic marks a value Adriel derives.

Google Analytics 4 fields

Date Calculation

Breakdowns

Google Analytics 4 fields

General

Date

Limitations

Based on the current connector, Google Analytics 4 has:
  • A 100,000-row cap per single query — wider results are truncated and a GA_ROW_LIMIT warning is raised.
  • Sampling on high-volume queries — the connector surfaces the sampling percentage as a GA_SAMPLED_DATA warning; sampled results are estimates. Sampling likelihood rises with wider date ranges, more breakdowns, or high-traffic properties (Google Analytics Help — Data sampling).
  • High-cardinality “(other)” row folding — GA4 folds high-cardinality breakdowns into a single (other) row once its per-property cardinality limits are exceeded (Google Analytics Help — Cardinality and (other) rows). This is a GA4 processing behavior, not a connector behavior.
  • No cohort fields — GA4 breakdowns and metrics whose API name contains cohort are excluded from the field picker.
  • A 12-hour lag on newly defined custom fields — property metadata is cached for 12 hours; new custom breakdowns and metrics only appear after the cache refreshes.
  • A rate limit of 9 concurrent calls per second per Property — higher volumes are queued and processed sequentially.
  • A ~6-month history cap on the internal report cache — older ranges are always fetched live from GA4.
  • API-layer thresholding — for privacy reasons GA4 may withhold rows with very small user counts; those rows do not appear even in unsampled queries (Google Analytics Help — Data thresholds).
  • Read-only OAuth scope — the connector requests analytics.readonly and cannot write back to GA4.
  • One data source per GA4 Property — connecting an Account provisions one Adriel data source per Property selected under it.

API references

See also