Modeling the GA4 BigQuery Export Without Losing Your Mind
A pragmatic dbt-style approach to turning the raw events_* tables into clean session, user and conversion models you can actually report on.
My Digital Technique
March 19, 2026
The GA4 export is powerful and brutal. One row per event, repeated records for parameters, and no session table. Here's the layered model we ship.
Layer 1 — staging
Flatten event_params and user_properties once. Cast types. Standardize timestamps to UTC and the user's local zone. This layer is partitioned by event_date and clustered on event_name.
Layer 2 — sessions
Reconstruct sessions using ga_session_id + user_pseudo_id. Compute session start, end, duration, landing page, source/medium attribution and engaged flag. One row per session.
Layer 3 — marts
Funnels, cohort retention, attribution. These models are what Looker Studio and your CRM consume — never the raw export. Costs drop 80%, query times go from minutes to seconds.
Need help shipping this in production?
Talk to the studio →Keep reading
Designing a GA4 Event Taxonomy That Actually Scales
Most GA4 setups break the moment a second team ships an event. Here is the naming convention and governance model we deploy at every client.
Server-SideServer-Side Tagging: The Real Benefits Beyond 'Better Tracking'
Server-side GTM is sold as a tracking band-aid. The real value is data ownership, vendor decoupling, and a 30–60% lift in measured conversions.
Looker StudioLooker Studio Dashboards That Get Used (Not Just Built)
Most dashboards are abandoned within 6 weeks. Here is the format, cadence and governance that keeps stakeholders coming back every Monday.