Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

How to Reduce BigQuery Costs with GA4 Streaming?

Hi everyone,

I’m analyzing our GA4 data in BigQuery to understand daily user behavior. However, I’ve noticed that the costs are much higher when using BigQuery’s streaming option in GA4 (as opposed to a daily batch load), likely due to the additional streaming charges.

Our service generates around 50 million user events daily, which exceeds the daily batch load limit, so we had to use the streaming option. Our current cost breakdown for BigQuery is roughly streaming: loading: analyzing = 20: 10: 1.

Are there any best practices, or alternative methods, to reduce the cost of streaming and loading data into BigQuery? I couldn’t find specific documentation, so any advice would be appreciated!

Thank you!

ps. GPT translated.

Solved Solved
0 3 500
1 ACCEPTED SOLUTION

Hi @Qorh,

Welcome to Google Cloud Community!

Streaming a huge volume of data to BigQuery can be costly. Here are some suggestions and best practices that may help reduce the cost of streaming and loading data in BigQuery:

  • Control Query Cost: When you're loading large amounts of data, you can estimate the cost of a query before running it to avoid any unexpected fees. Use the query validator to see how many bytes will be read, then calculate the cost with the pricing calculator. Another method is to use dry run to estimate costs before actually executing the query.
  • Streaming Ingestion: To reduce cost during GA4 streaming, reduce the volume of data sent to BigQuery. Filter events so only the needed data is sent to BigQuery.
  • Batch loading:  As much as possible use batch loading for data that does not need real-time processing.
  • Optimized Queries: Avoid processing unnecessary data by querying only the columns you need. You can use SELECT * EXCEPT instead of SELECT * and partitioned tables. For best practices, check out the BigQuery query optimization documentation.
  • Setup Budget Alerts: To keep track of your GA4 streaming costs to BigQuery, set up budget alerts. These will notify you when you’re exceeding the budget amount you’ve set.

I hope the above information is helpful.

View solution in original post

3 REPLIES 3

Hi @Qorh,

Welcome to Google Cloud Community!

Streaming a huge volume of data to BigQuery can be costly. Here are some suggestions and best practices that may help reduce the cost of streaming and loading data in BigQuery:

  • Control Query Cost: When you're loading large amounts of data, you can estimate the cost of a query before running it to avoid any unexpected fees. Use the query validator to see how many bytes will be read, then calculate the cost with the pricing calculator. Another method is to use dry run to estimate costs before actually executing the query.
  • Streaming Ingestion: To reduce cost during GA4 streaming, reduce the volume of data sent to BigQuery. Filter events so only the needed data is sent to BigQuery.
  • Batch loading:  As much as possible use batch loading for data that does not need real-time processing.
  • Optimized Queries: Avoid processing unnecessary data by querying only the columns you need. You can use SELECT * EXCEPT instead of SELECT * and partitioned tables. For best practices, check out the BigQuery query optimization documentation.
  • Setup Budget Alerts: To keep track of your GA4 streaming costs to BigQuery, set up budget alerts. These will notify you when you’re exceeding the budget amount you’ve set.

I hope the above information is helpful.

Hi @marckevin 

Thanks for your kind reply. I filtered events only BigQuery uses for my queries to get activated user counts.  It reduces the cost to 1/10. 

However, the problem was with the GA4 dashboard.

Since I changed BigQuery link to filter events, there were huge drops in ga4 dau aggregation like the screenshot.

Qorh_0-1731722183976.png

I searched for this anomaly in the official documents but couldn't find any of it. Can this happen from BigQuery filtering triggered?

I just noticed it was not BigQuery problem. But then how can it happen? After Nov, 14 dashboard returned to normal 

Qorh_0-1732064378930.png

Are there any GA4 issues internally?