Superform Labs GA4 BigQuery
export data generator

Finally, a free, open-source, up-to-date GA4 BigQuery export demo dataset!

Learning, teaching and testing GA4 in BigQuery all need realistic data. A real export holds personal data and business figures you would rather keep to yourself. Google’s public sample stopped in January 2021: its schema is out of date, and it covers only a few use cases.

So we built a free, synthetic, open-source GA4 export generator, in the exact schema Google ships today. Its data is available in two flavours.

Public demo datasets, one for each of the app’s four templates, refreshed every morning, that you can query straight away, or subscribe to in Analytics Hub for free.

The dataset generator app, which builds your own dataset in a Google Cloud project you own. It is entirely customisable: start from one of four ready-made business types, or run the open-source generator yourself and edit its mixer to shape any dataset you need, from traffic volume and channels to devices, countries, consent and campaigns.

A real query on the public dataset, run on 23 October 2026.
FreeCC0 data, no licence fee
Open sourceGenerator under GPL-3.0 or later
Up to dateCurrent GA4 export schema
Built for the communityFor anyone working with GA4

Query our demo dataset, or generate your own.

Our public demo dataset and the datasets you generate come from the same open‑source generator, so they share the same schema and the same behaviour.

Query the public demo dataset

Four ready-made BigQuery datasets, one for each template of the generator, ready to query from your own project. Nothing to install.

  • Raw events_YYYYMMDD tables
  • Every column of the current GA4 export
  • US and EU locations
Get the dataset IDs →

The dataset generator app

Builds your own dataset in a Google Cloud project you own, using our web app.

  • Entirely customisable, from traffic to campaigns
  • Any history length, any of six locations
  • Optional daily refresh
Build your own dataset →

Public demo dataset

Four GA4 BigQuery exports, one for each template of the dataset generator app, in both the EU and the US and refreshed every day at 06:00 UTC. They live in the project ga4dataform-demo-public. Any signed-in Google account can query them from its own project, with nothing to set up. To have them in your own project instead, subscribe in Analytics Hub: you get a linked, read-only copy that updates every day.

Demo datasets

DatasetDataset IDBigQueryAnalytics Hub
Showcase websiteVisits, pages and searches, no shop QueryQuery SubscribeSubscribe
EcommercePlans sold online, the full shop funnel QueryQuery SubscribeSubscribe
PrivacyEU visitors, close to half refuse consent QueryQuery SubscribeSubscribe
Lead generationDemo bookings, the lead funnel QueryQuery SubscribeSubscribe

Choose a region with the toggle, click a dataset ID to copy it, then query it in BigQuery or subscribe to it in Analytics Hub.

What is inside

The Ecommerce dataset, used in the examples on this page: a fictional software website that sells its plans online. Everything in it is made up, but it behaves like a real GA4 web property, rough edges included.

HistoryOne table per day since 15 June 2026, in the property’s time zone (Europe/Tallinn).
SchemaAll 31 top-level columns of the current web export. Every row is checked against a schema captured from a live GA4 export before it loads.
Events18 event names, from first visit to purchase:page_viewadd_to_cartpurchaseand 15 more
TrafficOrganic and paid search, paid and organic social, email, referrals (an AI assistant among them) and direct.
And moreConsent mode, signed-in and cross-device visitors, server-side purchases and visitors from 52 countries.
first-query.sql
-- Daily totals, last 7 days
SELECT
  PARSE_DATE('%Y%m%d', event_date) AS day,
  COUNT(DISTINCT user_pseudo_id) AS users,
  COUNT(DISTINCT CONCAT(user_pseudo_id, '.', (
    SELECT CAST(value.int_value AS STRING)
    FROM UNNEST(event_params)
    WHERE key = 'ga_session_id'))) AS sessions,
  COUNTIF(event_name = 'purchase') AS purchases,
  ROUND(SUM(ecommerce.purchase_revenue), 2) AS revenue
FROM
  `ga4dataform-demo-public.analytics_770000002.events_*`
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d',
        DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
GROUP BY day
ORDER BY day DESC;
Your first query: daily users, sessions, purchases and revenue over the last 7 days. Copy it and run it from any project.

The dataset generator app

A free web app that installs a synthetic GA4 export dataset in a Google Cloud project you own, and can keep it up to date every morning.

  1. Sign in with Google

    The app asks only for the permissions it needs to set up the dataset in your project.

  2. Answer a few questions

    Pick a project, a type of business, a BigQuery location, how much history you want and whether to refresh it daily. Guided walks you step by step, Automated decides for you, Pro shows every setting on one page.

  3. Query your dataset

    The app creates a BigQuery dataset, a Cloud Run job that fills it and, if you ask, a Cloud Scheduler job that adds new data each day. A 90-day history is ready in about five minutes.

config/ecommerce/mixer.yaml
volume:
  new_visitors_per_day: 1200
  seasonality:
    amplitude: 0.28
    peak_day_of_year: 330
channel_mix:
  organic_search: 34
  direct: 24
  paid_search: 14
  # ...
consent:
  analytics_granted: 0.88
calendar:
  - name: spring-release
    from: "03-10"
    to: "03-16"
    traffic: 1.2
    channels: {paid_social: 2.0, email: 2.0}
An excerpt of mixer.yaml from the Ecommerce configuration. Edit it to shape any dataset you need.
The events_20261017 table of the public dataset open in the BigQuery console, with its schema on the left and the daily totals query and its results on the right.
The public dataset in the BigQuery console: the events table schema, and the first query with its results.

Side by side comparison

Pick the right solution for your needs: our public demo dataset, a dataset built with the dataset generator app, or Google’s GA4 sample.

Public demo datasetDataset generator appGoogle’s GA4 sample
Up to dateYes, refreshed every morningYes, with the daily refreshNo, ends 31 January 2021
HistorySince 15 June 2026, growing dailyAs long as you choose92 days
Current export schemaYes, all 31 top-level columnsYes, all 31 top-level columnsMissing 8 columns added since
Masked valuesNoneNoneYes, such as <Other>
Business typeA software website, seen through the app’s four templatesAny: four ready-made types, or your own configurationOnline store
LocationUS or EUUS, EU, or a single region in Europe, the US, Asia or AustraliaUS
OwnershipOur project, you query itYour project, you own itGoogle’s project

Get product updates

New dataset types, schema changes and new features. A few emails a year, no spam.

Help us improve it

Found something wrong in the data? Report it on GitHub, where every issue is public so you can follow it. Missing a feature? Write to us.

FAQ

Is any of this real visitor data?

No. Every visitor, session and order is invented by the generator from hand-written settings. It reads no real analytics data at any point, so there is nothing personal to leak.

How close is it to a real GA4 export?

The schema is identical: it was captured from a live GA4 web export, and every generated row is checked against it in both directions before it loads. An unknown field or a missing field stops the load. The values follow the same rules a real property does, such as traffic source fields set on the first events of a session and rows without a user_pseudo_id when consent is denied.

It is a clean, fictional property, not a statistical copy of any real one.

Can I use it in a course, a blog post or a commercial product?

Yes. The generated data is dedicated to the public domain under CC0 1.0. You can copy, change and publish it, commercially or not, without asking and without credit. The generator’s code is under the GNU GPL version 3 or later.

What does querying the public dataset cost?

The storage is on us. Your queries run in your own project and BigQuery bills them to you, but Google gives every billing account 1 TiB of queries free each month. The full history of each dataset is between 1 and 2.5 GiB.

Do I need GA4Dataform to use it?

No. The raw tables are a standard GA4 export, so they work with any SQL, dbt or Dataform project, notebook or BI tool.

How do I access it in the US or the EU?

Every dataset exists in both the US and the EU, and each has a free Analytics Hub listing in its region. Subscribing creates a linked, read-only dataset in your own project, which you query like any other. Every dataset also accepts queries from any signed-in Google account, without a subscription.

Where do I report a problem?

Open an issue on the generator’s GitHub repository, or write to support@superformlabs.eu.