Skip to main content

Blog

How data moves between Google Analytics 4, BigQuery and Data Studio

Daniel Perry-Reed29 January 20214 min read

Over the last year or so I have been getting myself familiar with Google Analytics 4 (GA4 - previously App+Web), especially since it came out of beta back in October 2020 and became the default property type overnight. To be honest, this was a crash course as up to this point I had very little to do with Firebase, or app analytics in general!

The more time I have spent setting up GA4 on websites and apps, the more I have come to appreciate how different it truly is from Universal Analytics (UA or GA3). I know this sounds obvious, but the messaging from Google has been one that alludes to it being a natural and simple process to get it dual tracking alongside UA. In their defence, it is rather easy to get the code on the sites and apps, especially as there are a number of automatically collected and Enhanced Measurement events that don't require any additional tagging to work!

For me however, one of the big nice-to-have features in GA4 is the Google BigQuery (BQ) connection for the raw event-level data daily and stream exports. But then I quite quickly came to a crossroads when it came to building some dashboards in Google Data Studio (GDS) - do I use the native GDS-GA4 connector through the Data API, or use the native GDS-BQ connector? At the surface-level, it probably doesn't matter either way assuming you have the SQL skills-to-pay-the-bills. However, there are some dimensions that are not available in the BQ export/stream that are in the API such as Age and Gender and some metrics that are just easier to have pre-calculated such as ARPU, Engaged Sessions, etc.

My prediction over the coming year(s) is that the data available in the GA4 Data API will diverge from the data fed into BQ, mainly due to data privacy and sharing policies. For example, data from Google Signals is used in GA4 to identify users across browsers and devices as well as providing demographic data. This is not exported to BQ as it is all anonymised and aggregated (to us) behind the scenes. Google isn't about to share their secret ad profiling recipe as easily as this - especially as ad revenue is 70+% of their total!

Anyway (tangent over), to make better sense of this I have made a few attempts to draw out how all the data feeds work all centred around GA4 (of course).

Need to connect your data?

Join marketing, customer and product data with tested models and documentation your team can use. Start with the sources needed for your question.

google analytics 4 data map workings out

A few pages later, I felt I had a good enough grasp to move it to a Google Drawing (ignore the random choices for shapes and colours, I just went with whatever!):

google analytics 4 data map

As you may be able to tell, it was a bit more complicated than I naively first thought. As I drew each component it was apparent that I needed to consider all data feeds and transfers that I could possibly think of.

I'm by no means suggesting that this is technically correct behind the scenes, I'm sure there's loads I don't know and am ignorant to - however it's a 'v1.0' and helps my colleagues and I get a better feel for how all the data flows, pipes, lakes and oceans start to come together.

Please get in touch if you spot anything I have missed out, misrepresented or want to suggest updates - it would be great to keep this as up to date as possible. My email is daniel@measurelab.co.uk, or you can use our contact us form.

We've recently designed a GA4 training course for teams that want to kickstart their use of the new tool. Get in touch if you want to book in and get a head start!

Need to connect your data?

Join marketing, customer and product data with tested models and documentation your team can use. Start with the sources needed for your question.

Have a question or project in mind?

Bring data to connect, a question to investigate or something to fix or build. We can agree a focused scope directly.

Suggested content

Blog

How to make an AI agent accurate in BigQuery

A year ago, I wrote about getting a BigQuery warehouse ready for AI ( Easy ways to prepare your BigQuery warehouse for AI) , but didn't look properly into Knowledge Catalog (known as Dataplex at the time). We decided to go back and look through Google's Knowledge Catalog properly: what's actually in there, how it works and what it relates to. What Knowledge Catalog is Knowledge Catalog is Google's metadata layer for BigQuery data (and a few other sources). It sits alongside your tables rather

Katie Kaczmarek15 Sept 2026

Blog

What's actually in Google's Knowledge Catalog

Google's Knowledge Catalog has been renamed four times. Data Catalog, then Dataplex Catalog, then BigQuery universal catalog, then Dataplex Universal Catalog, and now Knowledge Catalog, as of 10 April 2026. The API, gcloud and IAM roles still all say "dataplex". If you land on a page that mentions Dataplex and wonder whether you're reading something out of date, you're probably not. That's just the product's fifth name in four years. I spent some time looking through the different sections of K

Katie Kaczmarek15 Sept 2026

Blog

BigQuery Tips: When your query is technically correct but BigQuery won't run it

There is a particular kind of frustration that comes from staring at a query you know is correct and watching it fail. No syntax error. No logic problem. Just a wall. We hit two of them on the same project. What we were building The job was to migrate ga4_daily_snapshot for a large enterprise client from a BigQuery scheduled query into a proper Dataform pipeline. The scheduled query had been added to over time until it was too large to maintain with any confidence. Moving it to Dataform w

Katie Kaczmarek17 Aug 2026