Google Analytics BigQuery Exports: Understanding The Difference Between All Five Tables

If you have connected a Google Analytics property with BigQuery, GA4 can now export four tables into your BigQuery dataset, five if you are a GA4 360 user. Each of these tables serves a distinct purpose, with specific advantages and caveats. However, some of them are underutilised or rarely explored by BigQuery users. In this article, I will break down the key points, benefits, and limitations of each table, along with their best use cases.


Here are the five available Google Analytics tables in BigQuery:

  • Event Daily Table (event_YYYYMMDD)
  • Event Intraday Table (event_intraday_YYYYMMDD)
  • Event Daily Fresh Table (event_fresh_YYYYMMDD)
  • Pseudonymous User Table (pseudonymous_user)
  • User Table (users_YYYYMMDD)



You can choose to connect these tables when linking a BigQuery project in Google Analytics UI’s. In GA4, navigate to Admin > Product links > BigQuery, where you will see the options on the right in below screenshot. On the left in this screenshot are the correspondent BigQuery tables each of these options enables: 


Understanding the purpose of each table allows you to maximize the value of your Google Analytics BigQuery export for different usages. 


1. Event Daily Table (event_YYYYMMDD)

The daily event table is the most commonly used table containing fully processed event data for each day. GA4 exports a new table for the 24 hour period of the chosen time zone every day. This table takes about 10 hours to process and typically drops between 8 AM - 11 AM every day. The arrival time of this table is often within the same hour every day for each Google Analytics property, however delays can sometimes occur.

Each row in this table represents an event hit on site and contains values based on this GA4 schema:

Key Details and Use Cases

  • Event daily table contains the most accurately processed data, meaning all traffic source processing, consent flags, and session-level processing are complete.
  • The data in this table should closely match the GA4 UI when using observed reporting identity in GA4 Admin > Data Display > Reporting identity settings
  • You can access historical data by selecting multiple tables using a date range. Here is an example query for retrieving data from January 1, 2025, to February 1, 2025: 
Formatted SQL Query
 SELECT *
FROM `yourproject.analytics_123456.events_*` 
WHERE _TABLE_SUFFIX 
BETWEEN '20250101' AND '20250201' 

2. Event Intraday Table (event_intraday_YYYYMMDD)

The intraday event table is often called the streaming table because it provides nearly real-time event data for debugging and monitoring purposes. The Event intraday table uses identical schema as the daily event table. If “Streaming (best-effort)” option is ticked in GA4, this table will be exported in the same BigQuery dataset as the daily event table. The data refreshes almost in real-time, sometimes within minutes but occasionally taking up to an hour. 

Key Details and Use Cases

  • It only contains hit-level traffic source data (All fields under ‘collect_traffic_source’), session-level or user-level traffic source fields such as those under ‘session_traffic_source_last_click’ and ‘traffic_source’ are not yet processed.
  • If consent is given later in the session, the ga_session_id and user_pseudo_id may not be updated for earlier hits within the same session.
  • The intraday table is only available for the current date; historical intraday tables do not exist.
  • This table is useful for real-time debugging, anomaly detection, and immediate event tracking validation. (Note current day data is not available in Google Analytics UI)

3. Event Daily Fresh Table (event_fresh_YYYYMMDD)

The event fresh table uses the identical schema as the daily event and intraday event tables, but it differs in two key ways:

  1. It drops much earlier than the daily table, typically around 2 AM, making it useful for time-sensitive and automated ETL processes.
  2. It is less accurate than the daily event table, and slightly more accurate than the intraday event table, because some processing has not yet been completed, especially around session-level traffic source processing.   
  3. It gets modified a few times throughout the day to re-process certain fields and improve accuracy throughout the day.

Key Details and Use Cases

  • UTM parameters and other attribution values may not yet be fully processed, leading to incomplete traffic source data (more details available in a linked blog).
  • The above caveat can be addressed by applying custom SQL to obtain UTM values from the landing page URL, therefore construct the session level traffic information.   

4. Pseudonymous User Table (pseudonymous_user)

The pseudonymous user table contains user-level data such as first touch timestamp, life time value and user actvitiy predictions, etc. This table use GA generated pseudonymous identifiers (pseudo_user_id). This identifier is generated by Google Analytics using a combination of business provided user ID, Google Signals and User Device ID. 

This table is updated when data is updated for a user. Sometimes, you may notice that the pseudo_user_id is the same as user_pseudo_id in the event tables, this is because the client cookie ID is used as the user’s pseudonymous identifier for that user.

Key Details and Use Cases

  • This data can be used in conjunction with other first party user data to build customer focused models.
  • The ‘Audiences’ configured in Google Analytics interface are available in this export. This means you can export Google Analytics audience list to GCloud using this table.
  • The user tables (both pseudonymous user table and the user table) are much cheaper to query than the event tables. 

5. User Table (users_YYYYMMDD)

The user table has very similar schema as the pseudonymous user table. But instead of using a Google generated identifier, it uses business provided user ID as the user identifier. In fact, this table will only be enabled if user_id tracking is enabled and collected in GA4.

Key Details and Use Cases

  • If the User ID can be joined with the business’s first-party user data, you would be able to build single customer view for advanced analytics.
  • You can bucket business-identified online users into GA4 audience groups, this enables personalised user experiences and more effective CRM targeting.

Summary

Each of these tables plays a role in the GA4 360 BigQuery ecosystem:

  • The event tables (daily, fresh, and intraday) provides online interactions at an event level, as well as contain values that can help you create session level view from the event data.
  • The pseudonymous user table helps you build online user insight by leveraging Google Signals and Cookie values.
  • The user table enables businesses to integrate online data with offline first party data, creating a more comprehensive view a user’s lifetime interactions.


Are you using all of these tables or are they just sitting there and waiting for you to unlock their powers? As always, if you need any help on using Google Analytics’s BigQuery data, contact us

Want to have a chat? 

Chat through our services with our team today and find out how we can help.

Contact us
Share by: