The complaint that GA4 is not receiving data usually describes two different scenarios: reports stay empty from day one, or regularly flowing numbers drop noticeably one morning. Even though Google Analytics appears not to be showing data, the cause is usually a single link: the tag, consent setting, filter, processing time, or browser side. This guide lists nine reasons from quickest to eliminate to hardest to spot; each heading includes the symptom, verification method, and fix.

The menu names, timeframes, and thresholds mentioned are taken from Google’s official help and developer pages; sources are linked in the text. Onur Freelance is not Google’s official support channel; the audit is conducted on behalf of the site owner, not on behalf of Google. Which measurements should be planned from the start is also covered in the What Should Be Tracked with GA4 article.

GA4 Report Empty? Start with a Free Preliminary Check

When the site URL is sent via WhatsApp, the free preliminary check examines whether the tag loads on the page, how many times it loads, and whether the measurement request leaves the browser. The first steps can be done without access to the GA4 account.

GA4 Not Receiving Data: Problem Type, Diagnostic Tools, and 10-Minute Sequence

The first step is to separate the problem type; no data at all, delayed data, and sudden drop point to different causes. Four scenarios are distinguished as follows:

  • No data at all: Real-time report is also empty. Suspicion goes first to measurement ID, tag loading, and blockers (reasons 1, 6, 7).
  • Real-time full, standard reports empty: Usually a processing time or filter issue (reasons 4 and 5).
  • Data dropped suddenly: Look for something that changed recently: cookie banner, plugin, filter, or duplicate tag cleanup (reasons 2, 3, 5, 6).
  • Pageviews exist, but a specific event is missing: GTM publishing and key event setting are examined (reason 8).

Four tools are used in the audit. Real-time report (Reports > Realtime) shows active users in the last 5 and 30 minutes. DebugView (Admin > Data display > DebugView) lists events from a device in debug mode with their parameters; according to Google’s DebugView page, Tag Assistant opens this mode by adding a parameter to the site URL.

GTM Preview (Workspace > Preview) shows which tag fired with which trigger, or why it didn’t. The fourth tool is the browser developer tools Network tab: Google’s developer troubleshooting guide recommends searching for requests to google-analytics.com/g/collect or analytics.google.com/g/collect and defines a 200 OK status code as a successful send.

When the tools are used in the following order, nine reasons are scanned in a short session; when a step finds the issue, it is fixed and noted with the date before moving on:

StepWhereWhat to Look ForRelated Reason
1Reports > RealtimeTest visit visible in last 30 minutesIf empty: 1, 6, 7, 9
2Admin > Data streamsG- ID matches site, property correct1
3Network tab, incognitog/collect request exists, 200 OK, how many1, 2, 6
4Browser consoleCSP violation or JavaScript error6, 7
5GTM PreviewGA4 tag firing count, which trigger2, 8
6GTM version historyLast change pushed live with Submit and Publish8
7Cookie bannerDefault consent and tag behavior after “Reject”3
8Admin > Data filtersActive filter, scope, activation date5
9DebugViewExpected event name and parameters arriving8
10Calendar24–48 hours passed since last change4

1. Reason: Measurement ID Wrong, Tag Not Loading, or Property Mixed Up

The most common reason in the GA4 no-data table is that the G- ID on the site does not match the data stream of the property being viewed. Google’s troubleshoot tag setup on website page states that the Measurement ID in the stream details must match the ID in the Google tag. The ID is found under Admin > Data collection and modification > Data streams > Web, on the first line of the stream details.

Symptom: Real-time report is completely empty, or traffic appears in another property. In accounts with multiple GA4 properties (an old setup, a second property created by an agency, a test property), data may be flowing but you’re looking at the wrong property. Check: The G- ID visible in page source or Tag Assistant is compared with the ID in the stream details; the account and property selector is verified to have the correct property open.

Fix: The correct ID is written into the tag and it is verified that the tag is present on every page. Google reminds that Analytics only collects data from pages containing the code, that the Google tag should be placed after the opening <head> tag, and that the code should not be copied from a word processor. If this is the first installation, it can take up to 24 hours for data to process and appear in the real-time report.

2. Reason: Tag Loading Twice; Drop in Numbers May Be a Correction

When code added in theme settings, an analytics plugin, and GTM all run at the same time, the GA4 tag can load multiple times on the same page. Google states that either the Google tag or Tag Manager should be used, not both together, and notes that using both can lead to unwanted results such as inflated data.

Symptom: Pageviews per session are unusually high, the same page_view appears twice in a row in DebugView. Check: Network tab shows how many collect requests fire on a single page load, and GTM Preview shows how many times the GA4 tag fired. Fix: One installation method is kept, the others are removed.

A common misinterpretation occurs here: when the duplicate tag is cleaned up, pageviews drop and this drop is read as a breakage. Because the previous numbers were inflated, the drop is actually the measurement correcting itself; the cleanup date is noted and comparisons are read separately from that date.

Page Contents

GA4 not receiving data: illustration of flattening analytics graph on laptop screen, code tag under magnifying glass, checklist, hourglass, cookie and shield, gear, and warning icon

3. Reason: Cookie Consent and Consent Mode v2 Not Counting Visitors Who Don’t Consent

If the cookie banner initializes analytics_storage consent as “denied” by default, GA4 does not perform cookie-based measurement for visitors who don’t consent; this is not a bug but the expected result of the consent mechanism. Google’s Consent Mode developer guide requires the default consent to be set on every page before commands that send measurement data, and states that defaults won’t work if commands are called in the wrong order. Consent Mode v2 added ad_user_data and ad_personalization parameters alongside ad_storage and analytics_storage.

The implementation type changes the outcome. According to Google’s GA4 Consent Mode page, there are two paths:

  • Basic implementation: Google tags are blocked until consent is given; no data comes from visitors who don’t consent, and no modeled data fills the gaps.
  • Advanced implementation: Tags load before the consent prompt; if consent is denied, a cookieless ping is sent and GA4 uses these pings for modeling.

Modeling does not activate on every site. Google’s behavioral modeling page requires the property to collect at least 1,000 events per day with analytics_storage=’denied’ for at least 7 days, and to have at least 1,000 daily users who consented in at least 7 of the previous 28 days; meeting these thresholds alone does not guarantee eligibility. On small sites with daily visitors below this level, the gap from visitors who reject remains as a blank in the report.

When a cookie banner is installed as a legal requirement, part of the drop in GA4 is permanent; hiding the reject option or setting the default to “granted” is not a solution. To see the real volume, compare with organic clicks in Search Console, because Search Console data comes from Search Console’s own records, not from the tag on the site. The same consent issue’s impact on the Meta side is covered in the Meta pixel not working article.

4. Reason: Report Delay; Present in Real-Time, Absent in Standard Reports

A visit visible in the real-time report but missing from standard reports is usually due to processing time. Google’s data freshness page gives typical times for standard properties as follows:

Data typeTypical processing timeNote
Real-timeUsually a few minutesOnly a limited set of dimensions and metrics
Intraday (standard property)2–6 hoursShows part of the day early, refreshes throughout the day
Daily12 hoursFull day’s data, once per day
Late-arriving dataUp to 7 daysSome data may arrive late

The same page also states that data processing can take 24–48 hours and that report numbers may change during this period. When today’s and yesterday’s numbers look incomplete, waiting two days before deciding reduces false alarms. If GA4 shows no data and the real-time report is also empty, delay is not the explanation; the issue is on the tag or blocking side.

Real-Time Also Empty? Let’s Test the Tag Together

If the real-time report has been empty for hours, waiting won’t fix it. When the site URL is sent via WhatsApp, the measurement request, tag count, console errors, and cookie banner’s reject behavior are examined in order in the free preliminary check.

5. Reason: Internal Traffic or Developer Traffic Filter Incorrectly Active

An active data filter permanently excludes matching events; an incorrectly defined IP rule can remove real visitors from reports as well. According to Google’s internal traffic filter page, the rule is created under Data stream > Configure tag settings > Define internal traffic; the filter itself is under Data collection and modification > Data filters. The filter has three states: Testing, Active, and Inactive.

Symptom: Traffic drops after the filter’s activation date. If a broad IP range was written, the excluded audience may be larger than expected. Check: The filter is first set to Testing; Google states that matches in this state are marked with the “Test data filter name” dimension so the effect can be seen in explorations.

Fix: The rule is narrowed. According to Google, an active filter’s effect is permanent, excluded data is never processed, and historical data is untouched; filter application can take 24–36 hours. The developer traffic filter excludes events in debug mode. If the debug_mode parameter is accidentally left on for all users on the live site and this filter is active, normal visits can also get caught; Google writes that setting the value to false is not enough to turn off debug_mode, the parameter must be removed.

6. Reason: Cache and JavaScript Defer Plugins Holding Back the Tag

JavaScript defer, combine, or minify settings in performance plugins can delay the GA4 tag until the visitor’s first interaction, or break the code’s execution; a visitor who leaves without interacting is then not counted at all. Google wants the Google tag immediately after the opening <head> tag, and the GTM code as high as possible in <head>. The defer setting effectively changes this order.

A typical sign of this issue is that the drop coincides with a plugin update or settings change. The check is done in this order:

  1. The page is opened in an incognito window; the Network tab shows whether the collect request fires on page load or only after the first scroll or click.
  2. If the request waits for interaction, googletagmanager.com and gtag phrases are added as exceptions to the cache plugin’s defer setting.
  3. The plugin, server, and CDN cache (if any) are cleared; the test is repeated and the request is confirmed to fire at load time.

Old HTML in the cache can continue serving the old tag even after the ID is changed; a test taken without clearing the cache gives a misleading result.

7. Reason: Content Security Policy (CSP) Blocking Google Domains

The server or a security plugin sends a Content-Security-Policy header that does not include Google’s domains, so the browser blocks the tag or the measurement request. The symptom appears in the browser console: a content security policy violation error mentioning googletagmanager.com or google-analytics.com appears, and the collect request shows as blocked in the Network tab.

Google’s CSP guide lists the following for a GA4 setup without advertising features: add https://www.googletagmanager.com to script-src-elem, add https://www.googletagmanager.com and https://*.google-analytics.com to img-src, and add those plus https://*.google.com to connect-src. If advertising features are on, the list expands and Google’s country-specific domains must be written one by one, because CSP does not allow wildcards on the right side of the domain.

Fix: The header is edited. On WordPress sites, this header can come from a security plugin, server configuration, or .htaccess file. After the change, it is verified that the console error is gone and the collect request returns 200.

8. Reason: GA4 Event Not Showing; GTM Not Published or Key Event Waiting

When pageviews arrive but a specific event like form submission doesn’t appear, it’s usually due to a missing GTM publish or the reporting latency. In GTM, changes to tags, triggers, and variables stay in the workspace; according to Google’s container publishing page, the Submit button in the top right must be pressed, followed by Publish, for changes to take effect on the site. A tag working in Preview but not live suggests this step was skipped. GTM’s basic structure is explained in the What Is Google Tag Manager article.

The second check is timing. Google writes that data for an event appears in the Events report within 24 hours after it fires. When an event is marked as a key event, it can take 24 hours to reflect in standard reports, while real-time reports update within a few minutes. Marking is done in Admin > Data display > Events by clicking the star next to the event, and it does not change historical data.

An event that has never arrived can also be pre-marked as a key event; the limit in standard properties is 30 events. If a key event is being sent to Google Ads but shows zero in Ads, a separate chain applies: that scenario is covered in the Google Ads not recording conversions guide, and a from-scratch setup in the conversion tracking setup article.

9. Reason: Ad Blockers and Browser Protections

Ad blockers and privacy extensions can stop the GA4 script from running; this loss appears in a portion of traffic, not all of it. Google’s developer troubleshooting guide notes that some browser extensions can block Google Analytics scripts and recommends testing in an incognito window with extensions off or in a different browser. Browsers with built-in tracking protection can cause similar loss; Google has not published a specific rate for this loss.

A typical symptom: the tester’s own browser shows an empty real-time report, but the same visit appears in another browser without extensions. This reason does not produce zero data site-wide; if traffic is completely zero, the problem is almost certainly one of the first seven reasons.

What Does It Mean If GA4 Dropped but Search Console Clicks Are Rising?

If organic traffic in GA4 drops while Search Console clicks stay flat or rise, the drop is most likely a measurement change, not a real visitor loss. The two tools get data from different places: Search Console records clicks in search results on its own side, while GA4 relies on events sent by the tag running on the site. When the tag, consent setting, or filter changes, only GA4 is affected.

  • GA4 dropped, Search Console rose or flat: Measurement changed. Look for a cookie banner added on that date, duplicate tag removed, filter activated, or plugin update.
  • Both dropped together: High probability of real visibility loss; check indexing, rankings, and technical issues. First checkpoint is the pages not indexed guide.
  • GA4 organic sessions spiked, Search Console flat: Duplicate tag possibility (reason 2) is examined.

In the comparison, the two tools’ numbers are not expected to match exactly; what matters is whether the direction and the break date align. According to Google’s Search Console linking page, Search Console data becomes available in both Search Console and Analytics 48 hours after collection; therefore, a comparison including the last two days will be incomplete.

Don’t Make Budget Decisions Before Measurement Is Clear

When GA4 data is not reliable, decisions about ad budget, content plan, or site changes rest on wrong numbers. When the site URL is sent via WhatsApp, the nine reasons are scanned in order in the free preliminary check and the fix for the found issue is explained. Measurement is also part of the Google Ads management service; at Onur Freelance, Google Ads management starts from 9,000 TL per month, and the ad budget paid to Google is not included in this fee.

Frequently Asked Questions

If the real-time report is also empty, it means no data is arriving at all; measurement ID, tag loading on the page, CSP blocking, and ad blockers are checked in order. Google notes that if this is the first setup, it can take up to 24 hours for data to process and appear in the real-time report.

According to Google, real-time data usually appears within a few minutes, intraday data for standard properties in 2–6 hours, and daily data in 12 hours. It is also stated that data processing can take 24–48 hours and that report numbers may change during this period.

When analytics_storage default is “denied”, visitors who don’t consent are not measured with cookies. In the advanced implementation, a cookieless ping is sent, but modeling only activates on properties that meet Google’s data thresholds; on small sites, this gap remains as a blank in the report.

DebugView shows events immediately, but reflection in the Events report can take up to 24 hours after firing. If the event only works in Preview and not live, check whether the GTM change was published with the Submit and Publish steps.

No; according to Google, data filters do not affect historical data. However, once active, the data they exclude is permanently not processed; testing the filter in Testing mode first reduces this risk.

Google states that the Google tag and Tag Manager should not be used together; using both can lead to inflated data. When a single method is kept, the drop in numbers is not a breakage but an expected correction.

The two tools measure different things: Search Console records clicks in search results, GA4 records events sent by the tag on the site. In the comparison, look not for exact equality but for alignment of direction and break date.

Account, property, or product errors are the domain of Google’s own support channels; Onur Freelance is not Google’s official support channel. For the tag on the site, cookie banner, GTM, and filter settings, a free preliminary check can be requested by sending the site URL via WhatsApp; phone 0532 690 9924.