Building a GA4 dashboard in Looker Studio that doesn't sample
The GA4 connector samples above your property's quota and shows no warning. Where that happens, why blends are slow, and what BigQuery does and doesn't fix.
Short answer: if a decision hangs on the number, connect Looker Studio to the GA4 BigQuery export rather than the Google Analytics connector. The connector inherits GA4's sampling quota, and unlike the Explore interface it gives you no indication when a chart has been sampled — Google's own documentation says so. Two caveats before you commit to that route: the daily BigQuery export on a standard property is capped at 1 million events, and a report built from blends can be slower and more expensive than the connector it replaced. The dashboard that survives contact with a stakeholder is a small one built on unsampled data, not a wall of tiles.
The connector samples above your quota and shows no warning
This is the failure mode that matters, because it produces a wrong number that looks exactly like a right one.
GA4 applies sampling by quota, not by date range: "Data sampling may occur when the number of events used to create a report, exploration, or request exceeds the quota limit for your property" (Analytics Help, checked 17 August 2026). On a standard property that limit is 10 million events; a 360 property runs to a default of 100 million events per query and can reach 1 billion.
Inside GA4 you find out when it happens. "When your results use sampling, it is indicated in the data quality icon with the percentage of data used to create the results" (Analytics Help, checked 17 August 2026). Looker Studio has no equivalent. Its documentation states that "if a chart in Data Studio creates an ad hoc request for data in Google Analytics, standard sampling rules will come into play", that "the actual sampling rate is determined by Google Analytics at the time of the data request" and cannot be changed from Looker Studio, and — the sentence to remember — "Data Studio doesn't indicate if data from Google Analytics is sampled" (Looker Studio documentation, checked 17 August 2026).
So the connector can hand you a sampled figure with no icon, no footnote and no colour change. A monthly revenue tile that quietly switched to a sample in the property's busiest month reads as a soft month rather than as a measurement artefact.
Two smaller limits are worth knowing before you design around the connector. GA4 segments and comparisons "are not available using the Google Analytics connector", and reports on GA4 data are "subject to Google Analytics Data API (GA4) quotas", with an error message when a report exceeds them (Looker Studio documentation, checked 17 August 2026). The error at least announces itself. The sampling doesn't.
| Google Analytics connector | BigQuery export | |
|---|---|---|
| Sampling | Above the property quota, unannounced | None — raw event rows |
| Setup effort | Minutes | A dataset, SQL, and someone to own it |
| Segments and comparisons | Not available | Rebuilt in SQL |
| Standard-property ceiling | 10 million events per query | 1 million events exported per day |
| Cost | None | BigQuery storage and query charges |
A blend aggregates each table before it joins, which a SQL join does not
Reach for a blend and you've changed the arithmetic, not just the plumbing — this is the single most common source of a Looker Studio number nobody can reproduce.
A blend holds up to five tables and supports inner, left outer, right outer, full outer and cross joins (Looker Studio documentation, checked 17 August 2026). That vocabulary makes it look like SQL. It isn't. "Before tables are joined, Data Studio groups and aggregates rows in each table based on the dimensions included in that table. If the dimensions that you select don't include a unique identifier for each record, identical rows are collapsed during this pre-grouping phase" (Looker Studio documentation, checked 17 August 2026).
Google spells out the consequence: this "can result in a lower row count than you might get from running a SQL join query directly on the same data, because SQL joins evaluate rows independently before aggregation" (Looker Studio documentation, checked 17 August 2026). Aggregate-then-join and join-then-aggregate give different answers, and the blend picks the first without asking. If your blend's dimensions don't carry a unique key, rows that were distinct in the source arrive at the join already merged.
The slowness comes from the same design. "The data for each table in a blend is queried before that data is joined into the final blend", and "charts that are based on blends calculate all rows in the blend even if they are not used in the chart" (Looker Studio documentation, checked 17 August 2026). A chart showing one metric still pays for every field in the blend, and the chart can't render until the slowest of its five queries returns. Google's own warning is that "blending can create very large datasets, which can lead to slow performance and possibly higher query costs for paid services such as BigQuery" (Looker Studio documentation, checked 17 August 2026).
Filter placement then decides the result. A date range or filter applied to a table inside the blend "takes effect before the data is joined", while one applied to the chart lands after the blend has been created (Looker Studio documentation, checked 17 August 2026). Same filter, two positions, two different numbers — and the report gives no sign which one you chose. If the data already lives in BigQuery, write the join in SQL and let the blend do nothing.
The BigQuery route has a ceiling nobody mentions
"Just use BigQuery" is the right advice and an incomplete one, because the free export has a hard limit that bites exactly the properties big enough to be sampled.
The daily export "exports all the raw, unsampled event data once per day from the previous day", typically arriving mid-afternoon — that's the property you're buying. But "standard properties have a daily BigQuery Export limit of 1 million events" (Analytics Help, checked 17 August 2026). A site generating more than a million events a day is comfortably inside GA4's 10 million sampling quota for most queries, and comfortably over the export limit. That gap is real, and it's where the honest answer becomes "you need 360, or you sample deliberately at collection".
Streaming export sidesteps the daily job but carries its own bill: "additional BigQuery costs... at the rate of $0.05 per gigabyte of data", with roughly 600,000 events to a gigabyte, and it runs without a completeness service-level objective (Analytics Help, checked 17 August 2026). It's a realtime feed, not a more generous version of the daily export.
Check your daily event volume before you plan the migration. It takes one query and it determines whether the whole approach is available to you.
A dashboard is precise about whatever reached the property, which is a different thing from being right. If tags fire before a visitor has chosen, or a consent signal never resolves, the unsampled BigQuery figures you just spent a fortnight building are unsampled measurements of an incomplete population — and nothing downstream will flag it. Our free cookie scanner shows which tags and cookies actually fire before consent on your site, so you know what the dashboard is counting before you put a target next to it.
Build three questions, not thirty tiles
A dashboard earns its place by answering questions somebody has already asked out loud. Most don't, which is why they get opened twice and then bookmarked out of politeness.
The metric wall is a symptom of building from the connector's field list instead of from a decision. Every available dimension gets a tile, nothing is ranked, and the one number that would change what somebody does next sits in row four of a table below the fold. Front-load instead: the decision at the top, its inputs underneath, everything else on a second page or deleted.
Three questions is a workable ceiling for a single page. Which channels are worth more money next month; which are being credited for revenue they didn't cause; and what changed since last month that nobody has explained yet. If a chart doesn't serve one of those, it's reference material, and reference material belongs somewhere people go deliberately.
What to do before the next reporting request
Open your busiest month in Looker Studio and rebuild the same chart in GA4's Explore interface. If the data quality icon in Explore reports sampling, your Looker Studio version was sampled too and said nothing about it. That's a five-minute check and it tells you whether the connector is viable for your property at all.
Then run the volume query. Under a million events a day on a standard property and the BigQuery export is open to you; above it, the decision is 360 or a deliberate reduction at collection, and it's better made now than after somebody has built on top of the assumption.
And if the reason the reporting is under scrutiny is that the advertising numbers stopped making sense, the dashboard is downstream of the problem. What reaches the bidding platform is set by the consent signal and the tagging layer long before it reaches a chart — repairing that chain is what we do.
Sources
- 1.Looker Studio documentation — Google Analytics 4 sampling · Checked 2026-08-17
- 2.Analytics Help — [GA4] About data sampling · Checked 2026-08-17
- 3.Looker Studio documentation — Connect to Google Analytics · Checked 2026-08-17
- 4.Looker Studio documentation — How blends work in Looker Studio · Checked 2026-08-17
- 5.Looker Studio documentation — Blending tips and advanced concepts · Checked 2026-08-17
- 6.Analytics Help — [GA4] BigQuery Export · Checked 2026-08-17