AnalyticsMay 12, 20267 min read

    GA4 + BigQuery: when the raw export is worth it and how to model it

    GA4's BigQuery export gives you raw, unsampled event data — but it's not a free lunch. When the export is worth switching on, what it costs, and how to model the event tables into metrics your team can trust.

    GA4's native reports are fine for top-line traffic questions. The moment you need unsampled data, custom attribution, funnel definitions that match your business, or joins against your own database, you need the raw events — and that's what the BigQuery export gives you: every event, every parameter, row by row.

    When the export is worth it

    • You've hit sampling or thresholding in GA4 reports and can no longer trust trends.
    • You need to join web analytics with backend data — subscriptions, LTV, CRM stages.
    • You want your own definitions of sessions, funnels, and conversions, stable across tool changes.
    • You're building marketing attribution on first-party data instead of Google's modeled view.

    If none of those apply yet, don't switch it on for vanity — raw event tables without modeling are a swamp, not an asset.

    What the raw data looks like

    The export lands as one date-sharded table per day (events_YYYYMMDD), one row per event, with parameters packed in a repeated key-value field. Every useful query starts byUNNEST-ing those parameters — which is exactly why you should query the raw tables only once, in a transformation layer, and never in dashboards.

    Model it once, in dbt

    The pattern that works: a staging model that flattens events and parameters into typed columns; an intermediate layer that rebuilds sessions and stitches identity; and marts that define funnels, conversions, and channel performance the way your business defines them. From there, dashboards read clean tables with agreed definitions, and "active user" means one thing everywhere. This is standard analytics engineering — the export is the raw material, not the product.

    Costs and gotchas

    • Query cost discipline: always filter by the date shard; partition and cluster your modeled tables.
    • Intraday vs. daily tables: intraday data can change; treat yesterday's daily table as final, not today's stream.
    • Consent and identity: the export contains only what consented tracking captured — pair it with server-side tracking if consent loss is eating your data.
    • UI parity is a trap: don't burn weeks reconciling to the GA4 UI; define your metrics, document the differences, move on.

    Done right, the export turns GA4 from a reporting UI into the entry point of a real analytics platform — one you own, can audit, and can join against everything else you know.

    FAQ

    Is the GA4 BigQuery export free?
    The export itself is free for standard GA4 properties (daily export; streaming has small costs). You pay for BigQuery storage and queries, which for most small-to-mid businesses runs from a few dollars to a few hundred dollars a month depending on volume and how disciplined the queries are.
    Why do GA4 reports and BigQuery numbers differ?
    The GA4 UI applies sampling, thresholding, attribution modeling, and Google-signals deduplication that the raw export doesn't. BigQuery contains the raw events; the UI contains a processed view. Once you model the raw data with your own definitions, treat BigQuery as the source of truth and expect small, explainable differences.

    More reading