Exporting data from Google Analytics 4
The three documented ways to get data out of Google Analytics 4, what each one can carry, and which parts of the record stop being available later.
- checked 2026-09-18
- The table of tools →
How to export data from Google Analytics 4
Google Analytics 4 has three documented routes out: download a report from the interface, query the Analytics Data API, or link the property to BigQuery. A download gives you the table in front of you. The API returns the same kind of aggregated rows on a schedule you control. BigQuery is the only route that carries the raw events: Google describes it as an export of all of your raw events, queried afterwards with an SQL-like syntax.
The route follows from the question. Figures for a monthly report belong in a spreadsheet. A dashboard that refreshes belongs on the API. Anything that asks about sequences of events, or about a definition Google does not offer, belongs in a warehouse. Leaving for another tool is a fourth case, and it runs on a different clock: what you did not export stays behind.
Downloading a report or an exploration
In Reports, the route is Share this report in the upper right, then Download File, with Download PDF, Download CSV and Export to Google Sheets. Google states that a CSV or Google Sheets download holds up to 100,000 rows of data. You need the Viewer role on the property to share or export at all.
Explorations behave differently and have their own menu: Export data offers Google Sheets, TSV, CSV, PDF and PDF (all tabs). Google states that the Sheets, TSV and CSV exports carry all the data available in the selected visualization, which may be more than is currently displayed, while a PDF saves only what is on screen.
What arrives is the report as Analytics computed it, with its conditions attached. If the query crossed the sampling limit, the file holds the sample. If a dimension exceeded the row limit of the underlying table, the less common values arrive folded into a single row called (other). If a row was withheld by a data threshold, it is missing from the file as well, and Google states those thresholds are system defined and cannot be adjusted.
The Analytics Data API
The API returns report rows: dimensions, metrics, filters, date ranges. It does not return the events behind them. A request without a row limit returns 10,000 rows, and Google states that the API returns a maximum of 250,000 rows per request no matter how many you ask for, so anything larger is a paging job.
Quotas are counted in tokens against the property. A standard property has 200,000 core tokens per day, 40,000 per hour, 14,000 per project per property per hour, and 10 concurrent core requests; an Analytics 360 property has ten times the tokens and 50 concurrent requests. Realtime and Funnel methods draw on separate quotas of the same size. Google states that most requests charge 10 tokens or fewer, and lists what raises the cost: more rows, more dimensions and metrics, complex filter expressions, longer date ranges, high-cardinality dimensions such as page path, and a property with a high event volume. Adding returnPropertyQuota to a request returns what that call spent and what is left, which is the only reliable way to budget a nightly pull.
One more ceiling sits next to the quota: properties are allowed 120 potentially thresholded requests per hour, and the dimensions Google names as potentially thresholded are the demographic and audience ones.
The BigQuery export
The link is made in Admin under Product Links, where you choose a daily export, a streaming export or both, and select which data streams to export and which events to exclude. Google states that data should start flowing within 24 hours of the link being complete, and that daily export writes one file each day holding the previous day’s data, generally during early afternoon in the property’s reporting time zone.
The limit that decides whether this route stays open is the daily one. Standard properties have a daily BigQuery Export limit of 1 million events for the daily batch export. Streaming has no event limit but is billed by volume, and Google states that it operates without a completeness service level objective and may contain data gaps. If a property consistently exceeds the daily limit, Google states that the daily export will be paused and previous days’ exports will not be reprocessed; editors and administrators are emailed each time the limit is passed, and a property significantly over the limit may have its exports paused immediately. The documented remedy is filtering: exclude data streams or named events from the export.
Three details matter for anyone treating the warehouse as an archive. Daily tables are updated for up to two calendar days plus today with events that arrive late. Streaming export leaves out user-attribution data for new users, specifically traffic_source.name, traffic_source.source and traffic_source.medium. And if the export stops because the payment method in Cloud is invalid, Google states it is not able to re-export the data for that time.
Consent mode does not empty the export. Google states that where consent mode is implemented, cookieless pings are present in the BigQuery export along with customer-provided data such as user_id and custom dimensions.
What you cannot collect later
Retention is the first boundary, and it is shorter than most people assume. A standard property can keep event data for 2 months or 14 months; 26, 38 and 50 months exist for Analytics 360. Google states that the setting does not affect standard aggregated reports and only affects explorations and funnel reports, that data is deleted automatically on a monthly basis once it passes the period, and that an increase applies to data you have already collected and have not already deleted. The explorations documentation adds the default: properties retain 2 months unless the setting is changed. There is also a forced case: when a standard property becomes Large, the event-level retention setting is reduced to 2 months automatically and older event-level data is permanently deleted.
Sampling is the second. Google states that the quota for event-level queries is 10 million events for a standard property, and that beyond it Analytics uses a portion of the data and scales up, showing the percentage used in the data quality icon. Even the unsampled counts are approximations for some metrics: Google states it uses HyperLogLog++ to estimate distinct counts of users and sessions, with discrepancy rates usually under 1 per cent.
The third is the export that was never made. When Universal Analytics was shut down, Google’s own page told owners to download or export first, and said that data not exported through one of the listed methods would be permanently deleted and would not be recoverable. Google states that from the week of 1 July 2024 most users lost access to the interface, to the API and to current and historical Universal Analytics data.
Before you move to another tool
Importers carry aggregates, not events, and vendors say so. Plausible documents an import from Google Analytics 4 through a linked Google account and states that data is imported in aggregate for each date, from your first Google Analytics visitor until your first Plausible visitor; its page also states that retention limits inside Google Analytics decide how far back the import can reach. Matomo publishes a Google Analytics Importer plugin, listed on its marketplace as importing reports from a Google Analytics account into Matomo. The card for each tool in the table records what its own importer covers and when that was last checked.
A workable order of operations: decide which reports you will actually reopen in a year, download those; write down the definitions you rely on, since the next tool will not share them; link BigQuery now if there is any chance you will want events later, because the schedule Google documents starts at the link; and keep the old property running alongside the new one until the two sets of numbers stop surprising you. The guide on tracking website traffic covers the second half of that move, and the market log records the closures that make the first half urgent.
Questions and answers
Can I export raw event data from Google Analytics 4?
Yes, through BigQuery, and only through BigQuery. Google describes that export as all of your raw events, queried with an SQL-like syntax, while report downloads and the Analytics Data API return aggregated rows built from dimensions and metrics. The link is free to create, the warehouse is billed for storage and queries, and standard properties are held to 1 million events a day on the daily export.
How many rows can I download from a report?
Up to 100,000 in a CSV or Google Sheets download, as stated in Google’s documentation. Explorations export separately, and there the Sheets, TSV and CSV options carry all the data in the selected visualization, which can be more than the screen shows, while a PDF holds only what is displayed. A download can still be incomplete for other reasons: sampling, data thresholds, or values condensed into the (other) row.
Does the BigQuery export include data from before I linked it?
Not by any route Google documents. The setup page describes the export as starting once the link is complete, with a daily file holding the previous day’s data, and offers no export of events collected earlier. That makes the link worth creating well before you need it, even if nobody queries the warehouse for a year.
What happens if my property goes over one million events in a day?
Google emails the property editors and administrators each time the daily limit is exceeded and states that the daily export will be paused if the property consistently exceeds it, with previous days’ exports not reprocessed. A property significantly over the limit may have exports paused immediately. The documented way to stay under it is data filtering: exclude selected data streams or named events from the export while keeping collection unchanged.
Is an export worth doing if I am staying on Google Analytics?
For anything you will need beyond the retention window, yes. Event-level data behind explorations and funnel reports lives 2 or 14 months on a standard property, and a property that grows into the Large category has that reduced to 2 months automatically. Standard aggregated reports are not subject to the setting, so a monthly download of the reports you rely on, or a BigQuery link that keeps the events, covers what the interface will eventually stop showing.
Tools named on this page
Each card shows the values we check, with the date of the last check.

Google Analytics 4
Cloud web analytics, with an optional cookieless mode.

Matomo
Cloud or self-hosted web analytics, with an optional cookieless mode, open source.

Plausible
Cloud or self-hosted web analytics, cookieless by default, open source.
Values in this guide come from the directory and carry the date they were checked. Seehow we check every value and thefull table of tools.