GA4 Data Organization in BigQuery
In this post, we’ll walk through how GA4 data is organized inside BigQuery, so you know exactly where everything lives and how to navigate it.
To get started, open BigQuery here:
https://console.cloud.google.com/bigquery
This takes you to the BigQuery interface (often called the BigQuery console).
Understanding the BigQuery Structure
At the top of the console, you’ll see a project selector (a dropdown). This shows all the projects you have access to.
If you’re just getting started, you’ll likely see only one project.
BigQuery organizes everything in a hierarchy. This hierarchy is important because it controls:
- Access and permissions
- Billing
- Quotas
- Resource management
Here’s what that hierarchy looks like at a high level:
- Organization
- Billing Account
- Projects
- Datasets
- Tables / Views

If you’re in a large company, your IT team usually manages the Organization and Billing Account.
If you’re working independently or in a smaller company, you’ll likely manage everything yourself.
Where You’ll Spend Most of Your Time
As a digital analyst, most of your work happens at the Project level and below.
Once you select a project from the dropdown, you’ll see it in the left panel. Expanding it shows you:
- Datasets → Containers for your data
- Tables → Actual data (this is where GA4 data lives)
Think of it like this:
- Project = Workspace
- Dataset = Folder
- Table = File
GA4 Tables in BigQuery
When you connect GA4 to BigQuery, it automatically creates datasets and tables for you.
Depending on your setup, you may see up to four types of tables.
Let’s go through them.
1. Events Tables (Daily Export)
This is the most important table.
It contains:
- All GA4 events
- Event parameters
- User and session data
If you selected Daily Export in GA4, BigQuery creates one table per day.
Naming format:
events_YYYYMMDD
For example:
events_20260318events_20260319
In the UI, these are grouped together as:
events_(#)
Where # = number of days of data.
2. Events Intraday Tables (Streaming Export)
If you enabled Streaming Export, you’ll also see intraday tables.
These are near real-time tables that capture data throughout the day.
Naming format:
events_intraday_YYYYMMDD
Important notes:
- These are temporary/staging tables
- Data may be incomplete
- Some fields may be missing
At the end of the day, this data is finalized and moved into the daily events_ tables.
3. Pseudonymous Users Tables
These tables contain data about anonymous users.
By default, GA4 treats users as anonymous unless you implement User ID tracking.
Naming format:
pseudonymous_users_YYYYMMDD
These include:
- Device-based users
- Cookie-based identifiers
4. Users Tables (Known Users)
If you enable User ID tracking, GA4 creates user tables for known users.
Naming format:
users_YYYYMMDD
These tables include:
- Identified users
- Cross-device tracking (if implemented properly)
Quick Summary
Here’s how to think about GA4 data in BigQuery:
- events_* → Your primary data (use this most of the time)
- events_intraday_* → Real-time, temporary data
- pseudonymous_users_* → Anonymous users
- users_* → Known users (if User ID is enabled)
What’s Next
In the next post, we’ll go deeper into:
- What’s inside the
eventstable - How to actually query it
- And how to make sense of nested GA4 data
One Quick Ask
If you found this useful, share it with your team or on LinkedIn. That’s what keeps me motivated to keep writing more of these.
Want to Go Deeper?
If you want to fast-track your BigQuery skills for marketing analytics, check out: