Since GA4 launched, it has been possible to export raw event data to BigQuery. This is one of my favorite features of GA4, but the export data requires a lot of transformation to be useful for reporting and analysis. Google just added another BigQuery integration: the GA4 transfer service, which transfers aggregated GA4 reporting tables to BigQuery. Below are my first impressions.
For my test, I chose to backfill data to 1/1/2025. The backfilling process is slow because Google enforces a 30-minute delay between each backfilled day. For example, backfilling a week takes about 3.5 hours (7 days × 30 minutes). While this delay is inconvenient, the export doesn’t support backfilling at all. Slow is way better than non-existent.
I tested the service with a low-traffic property, so I’m unsure whether high-traffic properties subject to sampling would experience the same behavior. My guess is they do.
What You Get
The transfer service provides most of the standard detail reports available in the GA4 UI. Here’s what’s included:
Tables and Views: The service generates date-partitioned tables with views that include a queryable _DATA_DATE column. The tables correspond to standard reports, similar to exporting reports as CSVs or Google Sheets.
- Most Standard Dimensions & Metrics: each report has most of the dimension and metric columns that are included in standard reports, though some exceptions are noted below.
- Accuracy: I compared metrics to the UI for several reports, and they were nearly identical. The main exceptions were sessions and session-based metrics. This is probably because the transfer is a daily snapshot, and some sessions span midnight. In my case the difference was less than 0.25%, but the property I tested doesn’t get a lot of late-night visitors.
What You Don’t Get
The transfer service has some significant limitations:
- Lack of Join Keys:
Reports generate summary data, so there are no join keys to add detail. For instance:- The userAcquisition table includes a summary conversions column.
- The conversions table provides details on individual conversions, however, there’s no way to link the two to break down conversions by traffic source.
- No Secondary Dimensions:
The service doesn’t support secondary dimensions. For example, if you want to analyze page metrics by device type, the data structure won’t support it. - Missing User Metrics:
Total and Active user metrics are not included. This omission is likely because the transfer is a daily snapshot, while calculating users requires a unique count of user IDs over a period. Summing daily active users over a longer time period will produce inflated numbers since some users will be counted multiple times. Personally, I would have preferred if Google included them anyway, but I understand the choice. - Inconsistent User-Derived Metrics:
Some user-related metrics are included. For instance, the pagesAndScreens view provides:- screen_page_views_per_user
- user_engagement_duration (appears to be a total number of engaged seconds, but without session or user metrics to use as a denominator in metric calculation, it’s not very useful).
Below are the fields that are included in the pagesAndScreens table:
- No event detail
The event_count and conversions columns in reports provide summary counts of all events. Note that the events and conversions tables do provide counts by event_name, but per above they can’t be joined to other tables. - Empty Demographic Data:
In my test, the demographicDetails table was empty. This means no geographic data.
Summary
The GA4 transfer service is useful if:
- You don’t need user metrics.
- Your goal is to replicate basic, standard reports available in the UI.
However, if you’re trying to build dashboards from this data, you’ll quickly encounter frustration due to the shallowness of the data. The service is currently in ‘Preview’ status, so it may get more comprehensive over time. But at the moment, I don’t plan to implement the GA4 transfer service for any of the properties Two Octobers manages.
Not sure what the right data architecture is for your marketing data? Let’s work on a project together: Reach out.