GA4 Data Freshness: One Guide – All Answers

Once you install Google Analytics 4 using my checklist of not, the following day you open it, you see the situation below. New users experienced a 28.6% decrease. 

You start to check everything to understand why it happened and then realise that somehow Google Analytics 4 doesn’t show the data about today and does not even fully present yesterday’s data. 

-26% due to GA4 Data Freshness (Incomplete data)
-28.6% due to GA4 Data Freshness (Incomplete data)

GA4 Data Freshness” is the term that stands for that. This article will go you through that wild world and show solutions to regain real-time analytics. More importantly, this article is based on my 2.5 years of using Google Analytics 4 therefore, you can rely on it and see it in action.

What’s data freshness in Google Analytics 4?

As I mentioned above, “data freshness” is the term that Google uses to describe how fast Google Analytics 4 process data. Universal Analytics has the term “data processing latency”, which means precisely the same. 

By processing, I mean how much time passes between GA4 receiving website data and GA4 will show it in inbuilt reports (BigQuery later in the article). GA4 is a complex solution, and there are a few elements of its processing. 

First, it should receive the data from your website and store it somewhere.

Second, it should process the data using multiple solutions, including attribution modelling (channel grouping, first channel grouping, etc.) that requires 24+ hours. 

Third, after all of the above is done, it should reshape the data into the correct format for visualisation. 

How long does GA4 data take to process the data? 

So, these three steps can require considerable time, and according to the GA4 documentation, it can require 24+ hours. 

GA4 Intervals of data freshness Official Documentation
GA4 Intervals of data Freshness

My experience tells me it’s NOT up to 24 hours for every company. For instance, for my website, GA4 shows the complete previous date data after 6 pm the next day; sometimes, it requires even me to wait till 10 pm. 

It limits me from making decisions and taking action about last week on Monday since the data is not presented, and I make such decisions on Tuesday.  Websites with 100k+ daily traffic can receive complete data into GA4 in 48 hours. It means that GA4 became almost Search Console with its lagging. 

Of course, it’s the worst element of Google Analytics 4, which makes many people think about selecting other analytics solutions (Mixpanel, Amplitude, etc.). 

However, a few solutions exist to overcome it and make your analytics real-time. 

How to get real-time analytics if GA4 data refresh takes so much?

There are many ideas on how to get a real-time report using Google Analytics 4 Realtime API or BigQuery.

#1 Google Analytics 4 Realtime API

I need to tell you first that the GA4 Realtime API report allows you to see data or your last 30-60 minutes, but it doesn’t mean it will give you real-time analytics. 

Please don’t allow someone to convince you. You can collect and store data from this report and get real-time reporting. Still, it will be limited because, according to Google documentation, a list of dimensions and metrics is available in this report, and you won’t be able to get 100% of your data.

For instance, source, medium and default channel grouping are not available, and event-scoped custom dimensions are also not supported by API.  You can read my other article about GA4 realtime report to understand what dimensions and metrics are available. 

Thus, you or your developer teams can work on it, and create it, and you realise that it’s limited and, more specifically, it’s not updated automatically as BigQuery.

So, here let’s talk about BigQuery. 

#2 BigQuery integration

I recommend using this solution; however, it’s NOT free. 

Yes, you can use BigQuery for free, but you have only 60 days table expiration. If you collect today’s data, it will be deleted automatically from BigQuery in 60 days. You have 60 days of history.

There is an even more crucial thing I need to mention. Realtime reporting means using BigQuery integration with streaming frequency. It’s not free, according to official Google documentation. 

Therefore, if you need real-time reporting, please be prepared to allocate the budget. It’s not a significant amount of money to get everything in BigQuery and then visualise your data in Google Data Studio, but it’s not free. It will cost you $0.05 per gigabyte of data. 1 gigabyte equates to approximately 600,000 Google Analytics events, though that number will vary depending on event size.

And last but not least, BigQuery integration itself has limitation of marketing attribution. Yes, all data GA4 receives is stored in BigQuery within 5 minutes, but the data about the source, medium, campaign, and default channel grouping is missed.  These are values under “traffic_source” record in the BigQuery dataset.

Only after Google fully understand the source (sometimes up to 72 hours), it updates the rows in the table with the correct values.

For instance, we wait ~ 48 hours for one of my clients to get this data. You can see below that the data about yesterday and today is incomplete. Sometimes this client has events_intraday_(3); in this case, we have two last days of incomplete data.

Bigquery intraday 2
2 days are not still in intraday tables

Of course, it’s a massive limit, and you should consider this aspect when deciding. 

#3 BigQuery integration + Custom Solution

However,  there is a custom solution that I offer you. We can use “page_referrer” event parameter for “first_visit” event in BigQuery and apply custom grouping. 

WHEN (SELECT params.value.string_value FROM UNNEST(ev.event_params) params WHERE params.key = 'page_referrer') is null THEN 'direct'
WHEN (SELECT params.value.string_value FROM UNNEST(ev.event_params) params WHERE params.key = 'page_referrer') in ('') THEN 'organic'
ELSE 'referral'
END as default_channel_grouping,
COUNT(ev.event_timestamp) as events_count

FROM `{Your Table ID }` as ev

WHERE ev.event_name = 'first_visit'


This way, you have the default channel grouping that we all remember. You can also read my article about GA4 default channel grouping to replicate GA4 default channel grouping in BigQuery. 

After you have this data in BigQuery, you can use Data Studio to visualise the data and talk about business performance every Monday, having the proper data on time.


Google Analytics 4 weakness is data freshness. To process website data, it takes too much – up to 72 hours. Universal Analytics didn’t have this. 

Therefore, if you need real-time analytics, you should use BigQuery integration. To have real-time data there, you should pay for streaming frequency. It’s not free and has a few limitations. 

The fundamental limitation is traffic attribution. However, your can try my custom solution for that.

If you have more questions about data freshness, please let me know in the comment section below. I will be happy to assist you.

Frequently Asked Questions

What is data freshness in GA4?

Data freshness is the term that Google uses to describe how fast Google Analytics 4 process data. Universal Analytics has the term “data processing latency”, which means precisely the same.

Why does GA4 not show today’s data?

GA4 analytics is not realtime anymore. GA4 should receive, store and process data. Processing mean finding all routes of the user to define right traffic attribution. Therefore, it takes so much – up to 72 hours. 

How long does GA4 data take to refresh?

Google Analytics 4 takes up to 72 hours to process your data. For most websites, it usually takes up to 24 hours. 

Leave a comment

Your email address will not be published. Required fields are marked *