Google Analytics 4
Google's event-based analytics platform and the default measurement tool on the open web, with a native BigQuery export.
INTEGRATES: google-tag-manager · bigquery · google-ads · looker-studio
ALTERNATIVES: adobe-analytics · piwik-pro · matomo · plausible-analytics · snowplow
GA4 is the baseline every other analytics tool is measured against. Its event model, free BigQuery export, and ubiquity make it the default — but its UI, data thresholding, and modeling choices push serious teams toward warehouse-native analysis on the raw export.
How it models data. Everything is an event with parameters — there are no separate pageview, transaction, or social hit types as in Universal Analytics, and sessions are derived from events rather than being the primary unit. GA4 collects website and app data into one property to model the customer journey across both. Events fall into four tiers: automatically collected, enhanced measurement (toggled per web stream), Google-recommended names, and fully custom. Automatically collected and enhanced measurement events don’t count toward collection limits; your own events do, and the limits are real — 40-character event names, up to 25 parameters per event, 40-character parameter names, 100-character parameter values (a few parameters like page_title get 300). App streams cap distinctly named events at 500 per app user; web streams have no such cap.
Implementation notes. Web collection runs through gtag.js or Google Tag Manager; apps use the mobile SDKs. The Measurement Protocol handles server-to-server and offline events, so a server-side pipeline is possible — but it’s designed to supplement client collection, not replace it wholesale. Mark conversions as key events, and keep those event names well under 40 characters: GA4 appends a suffix internally, and an over-long name silently fails to report as a key event.
Real gotchas. Data thresholding is the one that surprises people: when reports involve demographics or Google-signals data, GA4 withholds rows to prevent identifying individual users, and the thresholds are system-defined — you cannot turn them off in the UI. Widening the date range helps; the real fix is querying the BigQuery export, which is unthresholded (though Google-signals data isn’t exported). Retention is the second trap: standard properties keep user- and event-level data for at most 14 months (360 goes to 50), and this bites explorations and funnels specifically — standard aggregated reports are unaffected. Third, the standard BigQuery daily export caps at 1 million events per day (360: up to 20 billion); the streaming export is faster but billed per GB and carries no completeness guarantee.
Migration considerations. Universal Analytics stopped processing data on July 1, 2023 (360 properties: July 1, 2024), so migration is history — but teams still carrying UA-era mental models should expect sessions, bounce rate, and goal semantics to differ, because the underlying data is events, not hits. Plan the BigQuery export from day one if you’ll ever want raw data — the export only accumulates from the moment you link it.
Use it when you need broad, free coverage and Google Ads integration. Look past it when you need unsampled, unthresholded fidelity in the UI itself, full data ownership, or first-class server-side collection without engineering effort — the raw-export workaround assumes a team comfortable in SQL. Full reference lives at developers.google.com/analytics.