Level – Commercial Aviation
Centralizing GA4 Reporting
with Supermetrics and BigQuery
“Every step of our booking funnel is measured in sessions, so we needed session figures in BigQuery that agree with GA4 at every breakdown we report on.”
THE CHALLENGE
DISCIPLINES
OUR APPROACH
One Reporting Layer,
The Right Path for Every Metric
Uptimal partnered with Level to centralize its GA4 reporting in BigQuery. Working from Level’s table architecture, we configured its Supermetrics workspace from scratch to carry most of the reporting. Supermetrics maintains the API connections, which reduces long-term maintenance. For the few metrics whose condition must apply before GA4 aggregates a session, we built a daily Cloud Run service in Level’s own Google Cloud project.
In testing, filtering ancillary sessions after GA4 had aggregated them counted the same visit more than once. Figures came through close to double what GA4 reports, and the gap varied by day and country. The daily service places the condition inside the GA4 request instead, so the data arrives already filtered. A second service brings the booking funnel through hourly, and scheduled queries apply the remaining definitions in one governed SQL layer.

-
Scope & Table Design
We mapped the metrics, dimensions and table granularity Level defined onto a Supermetrics table design, keeping session tables apart from metrics tables so session counts stay GA4’s own while funnel steps are calculated downstream. -
Validation & Diagnosis
We checked every reporting table against GA4 and traced each difference to its cause instead of adjusting for it, which is how we found the ancillary over-count and a missing route exclusion on connection sessions. -
Rebuild & Monitoring
We resolved both through the daily Cloud Run service, then rebuilt and backfilled the affected tables. We filled route group and country ISO code gaps in historical data, and added three alert policies that email Level on hard failures.
“We kept ingestion, storage and calculation separate, so most funnel definitions can change in SQL without touching how data is collected, and the raw data can always be checked against GA4.”
Senior Data Analyst

RESULTS
Goals accomplished!
13
reporting tables rebuilt automatically, twelve daily and one every hour
100%
of reporting tables checked directly against GA4, one metric at a time
24
months of history backfilled, reaching September 2024 wherever tracking exists
reporting tables rebuilt automatically, twelve daily and one every hour
of reporting tables checked directly against GA4, one metric at a time
months of history backfilled, reaching September 2024 wherever tracking exists
Header photo: Daniel Luis Gómez Adenis, CC BY 2.0, cropped. Illustration: Data illustrations by Storyset.
Questions? A project in mind? Talk to us.
- Analytics, tracking or data questions: real humans answer, fast
- Enterprise: audits, sGTM, GA4 360, BigQuery and MMM engagements
- Tell us your stack and goals, we reply within one business day