GA4

Data sampling in Google Analytics 4: limits and how to avoid it

Google Analytics 4 samples when a query needs more events than the property's quota: 10 million for standard properties. This guide covers how to recognise sampled data, how sampling differs from thresholding and the (other) row, what reduces it inside GA4, and a tested BigQuery query that returns exact counts.

GA4Ievgen Krasovytskyi6 min read

Data sampling in Google Analytics 4: limits and how to avoid it

Google Analytics 4 samples data when a report, exploration or API request needs more events than the property’s quota allows: 10 million events for a standard property. Above that limit GA4 reads a portion of the events and scales the result up. The numbers are estimates, and the interface tells you so with the data quality icon.

This guide covers the documented limits, how to tell sampling from the two other things that change GA4 numbers (thresholding and the (other) row), what reduces sampling inside GA4, and how to get exact counts from the BigQuery export when the interface cannot give them.

What data sampling is in GA4

What data sampling is in GA4

Google’s definition: sampling “may occur when the number of events used to create a report, exploration, or request exceeds the quota limit for your property. When this happens, Analytics uses a portion of the data and then scales up to provide directionally accurate results” (Google Analytics Help, checked October 2026).

“Directionally accurate” is the phrase to remember. A sampled result is good for seeing which way a trend goes. It is not a number to reconcile against orders in your shop system or to put into a budget.

The sampling limits

The sampling limits

Property type Events per query before sampling
Standard GA4 10 million
Analytics 360 up to 1 billion (100 million by default, raised on request in Explore)

The limit counts the events the query has to read, not the events in the property. That is why the same exploration is unsampled for one week and sampled for one year, and why adding a segment or a longer date range can switch sampling on.

Google also notes a specific case: filtering a large dataset by country can cause sampling in standard reports and in Explore.

The Turning Point

OWOX Data Marts

See your first report built in real time. 15 minutes.

  1. Connect your data warehouse
  2. Pick your metrics
  3. Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

Book a Demo

We'll use your actual use case

How to tell that a report is sampled

How to tell that a report is sampled

Look at the data quality icon at the top of the report or exploration. When results are sampled, it shows the percentage of data used. A green check mark means the result is based on all available data.

GA4 Demographic details report with the data quality icon opened. The message reads that the report is unsampled and based on 100% of available data.

The lower the percentage, the wider the error. A result built on 70% of the events is usually close. A result built on 5% of the events should not be used for a decision about money.

Sampling, thresholding and the (other) row

Sampling, thresholding and the (other) row

Three different mechanisms change what a GA4 report shows. They have different causes and different fixes, and they are often confused.

Mechanism What happens Cause Can you remove it in GA4
Sampling Numbers are estimated from part of the events The query exceeds the event quota Sometimes: shorter date range, simpler query
Thresholding Rows are withheld Too few users, in reports with demographic or search query data No. Thresholds are system defined
(other) row Less common values are merged into one row The table exceeds its row limit Sometimes: fewer high-cardinality dimensions

Thresholding protects user identity. Google’s page says thresholds “are system defined. You can’t adjust them.” A wider date range can bring withheld rows back.

The (other) row appears when a dimension has too many distinct values. Google treats any dimension with more than 500 values as high-cardinality. Page paths with query parameters and custom dimensions holding an ID are the usual sources.

GA4 Pages and screens report where the first row is (other) with 233,966 views. Less common page titles were merged because the table exceeded its row limit.

How to reduce sampling inside GA4

How to reduce sampling inside GA4

These follow from how the limit works:

  • Shorten the date range. Fewer days means fewer events to read. Run the same exploration month by month and add the results up where the metric is additive, such as events or revenue. Do not add up users across months: one person is counted in each.
  • Use standard reports where they answer the question. They read pre-aggregated tables, so they reach the limit later than explorations do.
  • Remove what the question does not need. Each segment, filter and extra dimension makes the query heavier.
  • Analytics 360 raises the limit to up to 1 billion events per query. It is a paid edition; whether it pays off depends on how often the standard limit is hit.

None of these removes the limit. A property that collects several million events a month will meet sampling whenever someone asks about a year.

Where GA4 stops

Where GA4 stops

Three things cannot be changed in the interface:

  • The 10 million event quota of a standard property.
  • Data retention for explorations. Event-level data is kept for 2 months by default and for 14 months at most on a standard property (Google Analytics Help). A year-on-year exploration by a custom dimension is not possible after that.
  • Distinct counts are approximated. Google states that GA4 uses HyperLogLog++ to estimate users and sessions, with discrepancy rates that are in most cases below 1% and can be higher when several such metrics are combined.

For a marketing team reading trends, this is fine. For an analyst who has to explain why GA4 shows 4,930 purchases and the shop system shows 5,012, it is not: the difference could be sampling, estimation, or a real tracking gap, and the interface cannot say which.

Get exact counts from the BigQuery export

Get exact counts from the BigQuery export

GA4 has a native export to BigQuery, available to standard properties. Google’s export page describes the daily export as “all the raw, unsampled event data” for the previous day (Google Analytics Help). Setup is covered step by step in the guide to connecting GA4 to BigQuery.

Once the events are in BigQuery, a count is a count. This query runs as written on Google’s public GA4 sample and reads three months of events:

SELECT
  device.category AS device,
  COUNT(DISTINCT user_pseudo_id) AS users,
  COUNT(DISTINCT CONCAT(
    user_pseudo_id, '-',
    CAST((SELECT value.int_value
          FROM UNNEST(event_params)
          WHERE key = 'ga_session_id') AS STRING)
  )) AS sessions,
  COUNT(*) AS events,
  COUNTIF(event_name = 'purchase') AS purchases
FROM
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
GROUP BY device
ORDER BY users DESC

Result on the sample:

device users sessions events purchases
desktop 158,917 208,942 2,498,330 3,226
mobile 109,195 143,185 1,704,069 2,355
tablet 6,250 8,002 93,185 111

Every row is computed from all 4.3 million events. There is no quota that turns it into an estimate, and COUNT(DISTINCT ...) is exact.

What the export does not give you, so that the numbers are not a surprise:

  • A standard property exports up to 1 million events per day in the daily export. Above that, the export has to be filtered or moved to streaming.
  • The export starts on the day you link it. It does not backfill history.
  • Numbers will differ from the interface. The export contains raw events without the modeling and Google signals data GA4 adds to its own reports. Google documents this difference; it is expected.

From a query to a number the team trusts

From a query to a number the team trusts

Running a query once solves today’s question. The recurring problem is different: the marketer still opens GA4, sees a sampled number, and asks the analyst which one is right. The analyst runs the query again.

OWOX Data Marts is where that query becomes something others can use. The analyst saves the SQL as a Data Mart on the warehouse that holds the export, with a description of what “session” and “purchase” mean in it, and publishes it. Reports on that Data Mart are delivered to Google Sheets or Data Studio (the former Looker Studio) on a schedule, so the marketer reads exact counts in the tool they already use.

OWOX Data Marts does not collect GA4 data and does not change it. It reads the tables the export wrote and runs the SQL the analyst approved. The step from raw export tables to tables a team can report on is described in GA4 export to BigQuery and data modeling, and the query patterns for the export are in how to query GA4 event data in BigQuery.

Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

  • No AI hallucinations
  • Analyst-governed definitions
  • Every number traces to SQL
Get started free

FAQ

Frequently Asked Questions

Why does GA4 sample data?

GA4 samples to return a result quickly when a query would have to read more events than the quota allows. The quota is 10 million events per query for a standard property and up to 1 billion for an Analytics 360 property.

How do I know if a GA4 report is sampled?

Open the data quality icon at the top of the report or exploration. When the result is sampled, it shows the percentage of data used. A green check mark means the result is based on all available data.

How do I get unsampled data from GA4?

Inside GA4, shorten the date range, use standard reports and remove segments and dimensions the question does not need. For results that are never sampled, link the property to BigQuery: the daily export contains the raw, unsampled events, and a query on it returns exact counts.

What is thresholding in GA4, and is it the same as sampling?

No. Thresholding withholds rows so that nobody can infer the identity of individual users, mostly in reports with demographic or search query data. Sampling estimates numbers from part of the events. Thresholds are system defined and cannot be adjusted; sampling can sometimes be reduced with a shorter date range.

What is data sampling in Google Analytics 4?

Data sampling in Google Analytics 4 means the result of a report, exploration or API request is calculated from a portion of the events and scaled up. It happens when the query needs more events than the property's quota. Google describes the results as directionally accurate.

Does the GA4 BigQuery export have limits?

Yes. A standard property can export up to 1 million events per day in the daily export, the export starts on the day you link it and does not backfill history, and the numbers differ from the GA4 interface because the export holds raw events without modeling or Google signals data.

Who wrote this

Ievgen Krasovytskyi

Ievgen Krasovytskyi · Head of Marketing

Ievgen Krasovytskyi is the Head of Marketing at OWOX, leading strategy across content, SEO, product marketing, and AI-powered automation. With deep expertise in analytics infrastructure, data warehouses, and marketing technology, he builds systems that connect marketing performance to business outcomes. Ievgen writes about SaaS growth, analytics workflows, and the future of AI in marketing operations.