How much will the GA4 BigQuery Export cost?

James StandenGA4, Google BigQuery

One of the best new things about GA4 is that the BigQuery detailed events export is available to everyone.  This provides a much more sophisticated and useful level of access to your GA4 data. In fact, if you are seeing “(other)” in your reports and in tools using the Data API, BigQuery is the way to avoid it.

But we’ve found that many companies are concerned about potential BigQuery costs, often unnecessarily.  BigQuery is a remarkably cost effective way to query huge amounts of data and for smaller and medium amounts of data costs almost nothing.  In fact, Google includes 1 TB of processing and 10 GB of storage for free! 

Still, every site is different, so in this post, we’ll explore how to calculate the GA4 BigQuery export cost for your site, and how some simple techniques can save you 90% or more on your BigQuery bill.

BigQuery GA4 export costs - typical cost breakdown

How to calculate GA4 BigQuery Export Cost

There are two components of BigQuery cost:

  1. Storage - the total storage used by your tables about $20 per TB per month ($0.02/gb/mo of active storage, and $0.016/gb/mo for long term storage in a specific region. Multi-region pricing is lower). The first 10GB of Active and 10GB of Long Term storage is free.  

  2. Query Processing - the bytes that are processed by the queries you run, billed at $5 per TB queried per month.  Bytes are calculated by looking at the data stored in the columns used for the date range queried.

GA4 BigQuery Storage Costs

Monthly Storage Cost Calculation:
(GB of Active Storage * $0.02) + (GB of Long Term Storage* $0.016).

Storage is generally a very small cost.  The main driver for storage is how many events you have per day and how big those events are. 

You can find the size of your events in the BigQuery Console.  Click on the events_ group of tables, then under Details > Storage Info, you'll see both the number of rows and total bytes for the table.

Image

After 90 days without an update, the daily tables are moved to long-term storage, which costs less. 

We estimate that on the very high-end, a single event will be 1,500 bytes.  With 1,000,000 events per day, that would be just $6.06/month in storage costs in the US multi-region location. 

Using the BigQuery Storage Calculator, enter your estimated amount Active Storage for 90 days, and Long-Term storage for 275 days to get your estimated monthly cost after 1 year. 

Image

Using the storage calculation above and our conservative estimates for total events and event size,  if you have a GA4 property that records 50,000 events and 36.37  megabytes per day, after 90 days it will store 3.2 gigabytes.  Over 275 days it will hold 9.76GB.  After 1 year, the GA4 BigQuery export cost for storage is $0 (zero) per month.   

The bottom line is, storage of the raw GA4 data does not cost much and for many sites will cost nothing at all. 

GA4 BigQuery Processing Costs

Query processing is $5 per TB per month (multi-location), where the bytes are the total bytes stored in all the columns required within the query. If the table is partitioned or sharded, only the bytes in the partition or shards are counted.

Query Processing Calculation:

(Events per Day) x (bytes per event) x (days of data in the query) x (est'd% of data used in the query) x (# of queries / mo) = Total Bytes Processed

(Total Bytes/1,099,511,627,776) x $5 = $BigQuery Processing Cost /month

Query processing is likely to be the larger factor but still reasonable. Using the same example for the underlying data, imagine you run 1000 queries a month and that each query accesses about 10% of your year's data. 

That means in the above example that about 6.6 TB would be queried, and it would cost about $30 a month for those 1000 queries.  

In other words, 1,000,000 events per day x 1500 bytes per event x 365 days of data x 10% of data used in each query x 1,000 queries in a month = 54,750,000,000,000 bytes.  This is 49.8 TB queried in the month x $5/TB in processing charges = $249/mo in query processing costs.  

Those queries can be made from anywhere, including the BigQuery console or your BI tools. Each query counts for every user (and every agency, and every consultant) who is hitting the raw tables.

Overall the cost is reasonable, however what happens when you have a dashboard connected directly to the raw tables with multiple charts and tables that is being accessed by multiple users, some of whom are interacting with the dashboard?  Well, potentially, each user is causing a full refresh and each interaction is causing even more queries.  This is where your costs will really start to add up!!  

But I’ve heard horror stories about HUGE BigQuery costs, what’s that about?

⚠️ AVOID HIGH PROCESSING COSTS!
Create summary tables and incrementally load them to reduce query costs by 90% or more.
LEARN MORE

There is a lot of uncertainty and fear around runaway BigQuery costs, and certainly when someone gets a huge unexpected bill, the story often spreads.  The most common reason for an overly large bill is an issue with repeated, high frequency queries involving all the history over the raw events tables.  Here are some other reasons for high BigQuery costs: 

  • automation that is set to run too often
  • a badly written script 
  • a reporting tool that generates a lot of queries from very large tables for each person who views the report (ahem, Looker Studio)
  • inexperienced users writing bad SQL 
  • development activity that is querying the entire dataset instead of a small sample
  • production reporting that is hitting the raw event tables 

BigQuery does have budget control features, which can limit any issues. Setting these up properly will ensure you avoid any large and unexpected costs.  

Controlling GA4 BigQuery Export costs

The number one way to minimize BigQuery costs is to make smaller summary tables and update them incrementally. The image below illustrates a typical example of querying the raw event tables vs an incrementally loaded summary table. 

other in GA4 reports

Here are some other easy techniques to keep your query costs in check:

  1. Do not constantly re-query the raw event_yyyymmdd tables as this queries the maximum amount of data each time.  Instead, create summary tables for routine reports that are loaded incrementally (just with fresh + reprocessed data) and query against those.  For ad-hoc reporting, land queries into summary tables and continue the analysis against these smaller tables, rather than against the raw event tables.

  2. Limit access to the raw event tables. If users can only query against the smaller, curated summary tables, you eliminate the risk of them querying over the full data set. 

  3. Implement your BigQuery cost controls in the Google Cloud Console to ensure no one can blow your budget.

  4. Use data-prep and reporting tools that have cost controls built-in. This allows more seasoned users to have more quota available, and limits new users to smaller queries that won’t break the bank.

  5. Use data-prep and reporting tools that are designed to minimize your BigQuery costs by
    1. landing your data in curated, date-partitioned summary tables
    2. providing an environment for all users to work with the curated summary tables 
    3. querying only what is required, when it is required

Controlling GA4 BigQuery Export Costs with Analytics Canvas

Analytics Canvas gives you an easy to use, visual query builder for querying against the raw event tables.  It then lands those queries into summary tables, incrementally loads them, and makes them available to other users within your subscription. 

User and subscription level cost controls are central to the application.  This ensures that new or inexperienced users won't blog the budget!
GA4 other
When loading data, users can start with a small time period that enables them to preview data and refine the query as necessary without incurring large load charges.  The query can then be modified to load more history, and to keep the dataset updated on an incremental basis. 
This means that instead of querying over the full time period with each load, Canvas will cache the results in a BigQuery summary table.  When refreshed on a daily basis, it will reload only the last 5 days (to account for data reprocessing).  This minimizes the daily load cost even further since it queries over the fewest possible rows in order to update the dataset.
Image

For further data profiling and processing, Canvas provides a block-and-connector based model that allows analysts to develop queries visually all while minimizing the number of queries made. As an added benefit, the Canvas is a fully auditable trail that shows how the data is processed for reporting.

Image
Better still, for Starter, Pro, and Premium plan customers, the only direct BigQuery cost is the query that generates the summary tables.  All further processing done within Canvas is covered by your subscription and doesn't charge your BigQuery account! For reporting and visualization, Canvas offers connectors to Looker Studio and Tableau which generate extracts.  These extracts are queried in your reports and do not incur BigQuery processing or storage costs. 

How much will the GA4 BigQuery export cost for my site?

Storage costs will be incredibly low relative to the size of your site and your overall analytics spend. They can be as low as few cents to a few dollars for small to mid-size sites, and $20-$100 for mid to very large sites.  The query processing costs are where things can add up. 
Every site is different.  There will a variable number of users, sessions, and events, and those events can vary in size.  That said, we've put together a rough estimate in our post, 'Avoid this costly mistake when connecting GA4 BigQuery to Looker Studio'. 
Shown below is an example of what the costs can look like depending on the size of your site and the tools / techniques being used for processing.  If you're using a tool that connects live to BigQuery, like Tableau, PowerBi, or Looker Studio, your costs can sky rocket if you're not careful!

If you exclusively use Analytics Canvas for working with GA4 data in BigQuery, the your query processing costs are $0/mo.  This is because the query processing costs are directed to your Analytics Canvas subscription, where the costs are controlled and capped by your budget.

With all of the query optimization techniques native to Analytics Canvas, the majority of customers need only 1x the Cloud Quota plan at $99/mo.

Image

Wrapping Up

While there is a cost to the GA4 BigQuery export, the incredible level of detail is worth it.  What’s more, the costs will generally be very low, especially if you’re using the techniques outlined above.  Incrementally load data for routine reports into summary tables, land ad-hoc queries into summary tables for exploration and processing, and whatever you do, don’t point your reporting and visualization tools at the raw export tables!

The GA4 connectors in Analytics Canvas are built by data engineers with over a decade of experience working with GA and Analytics360 data. With an Analytics Canvas subscription, you can minimize your BigQuery costs and enjoy all the benefits of our Data Prep software. Choose from our Starter, Pro, Premium or Enterprise plans based on the needs of your business.   

Next Steps

Whenever you’re ready… here are 3 ways Canvas can help you with your GA4 reporting challenges:

  1. Extract data from all your properties using the API or BigQuery without writing code
  2. Profile, analyse, and prepare data for reporting in a visual, no-code editor
  3. Publish your data into summary tables for reporting for maximum performance and minimum cost. 

Ready for the next step?

  • Start an instant 30 day risk-free trial. No credit card or sales call required. 
  • Schedule a demo for you and your team.
  • Contact us to discuss plans and pricing or activate your subscription 

Wondering if Canvas is right for you? Check out the related articles to learn more about our GA4 connectors.