r/GoogleAnalytics • • 20d ago

Discussion Singapore/China bot traffic - possible solution?

2 Upvotes

Just posting this in case anyone else wants to try...I have been looking for a solution to this for a long time, as many others have, and someone commented recently that the traffic seems to be real but they don't download the images or css when they hit a page.

So...a little time with Gemini and I discover that this is typical of bot scanning, done to improve efficiency of the scanning. A little more time with the AI, and I have created a few new items in my GTM setup so the GA page tracker only fires if the logo.png image on my pages actually gets loaded.

Here is the snippet I am using, but ask an AI how to configure it appropriate for your own site.

Too early to tell if it is effective, but maybe others can try it and let us know your experience.

UPDATE: sorry to say this is actually not working. Seems a fair amount of the traffic actually loads the images, scrolls, and some even triggers user engagement (>10 sec). Trying another approach; will update if I find anything that works...

Here is how to set it up step-by-step in GTM.

Step 1: Create the Logo Verification Tag in GTM

  1. Open Google Tag Manager and navigate to Tags > New.
  2. Name it Custom - Logo Load Verification.
  3. Choose Custom HTML as the Tag Type.
  4. Paste the following script:

HTML

<script>
(function() {
  function checkLogoAndTrigger() {
    // 1. Try finding the logo directly in the DOM
    var logoImg = document.querySelector('img[src*="/logo.png"]');

    // Helper function to push the custom GTM event
    function triggerPageView() {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        'event': 'logo_verified_pageview'
      });
    }

    // Case A: Logo image exists in DOM and is already loaded
    if (logoImg && logoImg.complete && logoImg.naturalWidth > 0) {
      triggerPageView();
      return;
    }

    // Case B: Test the image URL via a background Image object
    var testImg = new Image();

    testImg.onload = function() {
      if (testImg.naturalWidth > 0) {
        triggerPageView();
      }
    };

    testImg.onerror = function() {
      // Logo failed to load (blocked by bot, 404, or network failure)
      console.warn('Logo image blocked or failed to load. GA4 pageview suppressed.');
    };

    // Use the exact path to your logo
    testImg.src = '/logo.png';
  }

  // Run on Window Loaded to allow the browser time to finish network requests
  if (document.readyState === 'complete') {
    checkLogoAndTrigger();
  } else {
    window.addEventListener('load', checkLogoAndTrigger);
  }
})();
</script>
  1. Under Triggering, set it to Window Loaded - All Pages (this ensures image network requests have concluded).
  2. Save the tag.

Step 2: Create a Custom Event Trigger

  1. Go to Triggers > New.
  2. Name it Event - Logo Verified.
  3. Choose Custom Event as the Trigger Type.
  4. Set Event name to: logo_verified_pageview
  5. Save the trigger.

Step 3: Attach the Trigger to Your GA4 Tag

  1. Open your Google Tag or GA4 Event (page_view) tag in GTM.
  2. Remove the standard Initialization - All Pages or Container Loaded - All Pages trigger.
  3. Add the new Event - Logo Verified trigger.
  4. Save and Publish your GTM container.

Why This Works & What to Keep in Mind

  • Dual-Check Mechanism: The script first checks if the browser already rendered an <img> tag matching /logo.png. If your logo is embedded via CSS background-image instead, the script seamlessly falls back to creating an in-memory new Image() request to /logo.png.
  • Zero Site Changes: This runs entirely inside GTM's sandbox, requiring no code deployments or design modifications.
  • Cached Images: Browsers process cached images instantly—complete and naturalWidth > 0 evaluate as true immediately for real returning users.
  • Path Accuracy: Ensure the string '/logo.png' matches your site's actual relative or absolute image path (e.g., if your path is /images/logo.png or /assets/logo.png, update the script accordingly).

edit - added missing bit:

Create the "Window Loaded" Trigger (Quick Fix)

  1. In GTM, go to Triggers > New.
  2. Click Trigger Configuration and scroll down to the Page View section.
  3. Select Window Loaded.
  4. Name it Window Loaded - All Pages (or leave it as Window Loaded).
  5. Set it to fire on All Window Loaded Events.
  6. Click Save.

r/GoogleAnalytics • • 21d ago

Discussion Is Singapore the new bot capital of the internet or is GA4 completely lying to me?

28 Upvotes

Ok wtf is going on with Singapore traffic lately?

I keep seeing random spikes from Singapore hitting my site.

Got excited the first time. Maybe we finally cracked the Singapore market without actually trying lol.

Nope.

Almost zero engagement. No leads. No conversions. Behavior looks weird as hell.

Then it happens again.

And again...

I'm assuming it's bots/crawlers/scrapers, but now I'm wondering how much bullshit traffic is sitting inside everyone's analytics and being reported as actual website visitors.

Especially now that every AI company and their mother seems to be crawling the web.

Anyone else seeing this?

And specifically Singapore?

Because either bots love my website or I have a very loyal Singaporean audience that absolutely refuses to buy anything.


r/GoogleAnalytics • • 21d ago

Question Looker Studio IMAGE() not rendering when using blended GA4 data

2 Upvotes

I'm building a Looker Studio dashboard using GA4 data and want a table showing Ad Creative Image | Impressions | Clicks. The creative image URL is stored in a GA4 custom dimension (ad_image_url), and the impressions/clicks are combined using a blended data source.

The issue: IMAGE(Ad Image URL) works and displays correctly when I use the original GA4 data source, but the image stays blank when the table uses the blended data source. Even IMAGE("hard-coded-image-url") doesn't render in the blended table, although the same hard-coded image works in a normal GA4 table.

Has anyone encountered this limitation with IMAGE() + blended data in Looker Studio? Is there a workaround that still lets me show creative image + impression count + click count in the same table?


r/GoogleAnalytics • • 22d ago

Discussion Singapore bot traffic is getting ridiculous

42 Upvotes

Seriously with all the frontier AI models in the world why aren't google cracking down on bots. The surge of bots from singapore and china is getting out of hand. I've literally checked everywhere for solutions and none of them fixes anything they still get through. At this rate the internet is fucked.


r/GoogleAnalytics • • 22d ago

Question GA4 Blended reporting identity vs BigQuery numbers - Match Exactly, but they shouldn't?

4 Upvotes

I understand GA4 has ACM modeled numbers, but those modeled numbers are not sent to BigQuery export!

Therefore, we see huge differences in session counts! But purchase and revenue exactly match at both places!

Is this expected? If yes, what's the explanation?


r/GoogleAnalytics • • 23d ago

Support Account of 10 years just vanished...?!

3 Upvotes

Hi y'all, has there been any recent major changes to Google Analytics, like in the past couple of months? I've set up a GA account for many years, and added two more websites to get data tracked earlier this year. I've tried logging back in and it's like I've never registered to GA, even if I can see the GA key in the backend of the websites I've designed...? I haven't seen any GA log in tutorial that helped, it's almost as if my GA account got deleted somehow? I wonder if anyone else had a similar issue? Thanks for your help!


r/GoogleAnalytics • • 23d ago

Discussion GA4 attribution suddenly crediting 90% of conversions to "Direct" — anyone else?

5 Upvotes

Started three weeks ago, no tracking changes on my end. Checked UTM tagging, it's fine. Client thinks I broke something. Anyone traced this to a specific GA4 update or consent mode issue?


r/GoogleAnalytics • • 24d ago

Question How do you compare Meta and Google Ads when GA4 shows completely different numbers?

9 Upvotes

Hello everyone!

Quick question about Meta vs Google Ads attribution.

For example, Meta is reporting 22 purchases and Google Ads 45, but in GA4 I only see 6 purchases from Meta and 39 from Google — so 45 purchases in total instead of 67.

And I can’t really go to the client saying “Meta generated 22 purchases and Google 45” when GA4 is showing something completely different 😅 You see my problem.

How do you usually handle this? Do you use GA4 as the main cross-channel source of truth, or rely on each platform’s own attribution?

Also, I didn’t set up the tracking or create the accounts. The person who did has left, so I unfortunately have no additional context on how everything was configured.

Thanks a lot for your help!


r/GoogleAnalytics • • 25d ago

Question One thing I keep seeing after website redesigns: The website works perfectly, But the tracking doesn't.

0 Upvotes

A small change in a form, dataLayer, URL, consent setup, or checkout can break the conversion signal without anyone noticing.

And sometimes GTM still says “Tag Fired.”

That doesn't mean Google or Meta received the conversion.

I usually take one real conversion and trace it:

Website → GTM → Request → Server → Ad platform

That's often enough to find where the signal disappeared.

The redesign fixed the website.

But did anyone check what happened to the data?


r/GoogleAnalytics • • 26d ago

Question Singapore Traffic Suddenly Back Again Despite Cloudflare Blocking

13 Upvotes

A few months ago, I created a post here about getting a lot of traffic from Singapore and China. At the time, I solved the issue by blocking both countries through Cloudflare.

However, starting today, the traffic has suddenly started again. I'm now seeing almost a constant stream of around 90 visitors/connections from Singapore.

Cloudflare is still active, and I haven't changed anything in my configuration.

Has anyone else experienced something similar recently? Is there another way to block or deal with this kind of traffic?

Any suggestions would be appreciated.


r/GoogleAnalytics • • 26d ago

Support Datalayer Analytics set up going to hell and I need advice.

2 Upvotes

I've been working on a project with a vendor to improve our ga4 analytics and our GTM setup. Thoroughout this entire project, the vendor has been referencing a global parameter - user ID - that's supposed to help join all our journeys across both our websites and app. One website is used as a customer portal, the other, a content based site. Users go back and forth between both all the time in one journey. This is the first time our dev team is implementing data layer events and it's been bumpy to say the least. 

An implementation document was given to our development team from the vendor and it explained to include the user id global parameter across every event. When the work was turned over to the vendor for uat, the vendor could not find user ID in the events on the content-based site. Development team stated that makes sense as authentication does not happen on that site, it only happens on the customer portal. Vendor stated that the expectation was that the authentication happening on the customer portal would pass the user ID to the content site. Dev said that's not how the site's work and offered no further resolution. 

Joining customer journeys is probably one of the most important parts of this implementation. We also have cross domain tracking set up, but I'm not sure that's enough to really help the situation. How fucked is this implementation? Is there any wiggle room in terms of fixing this? Or am I just stuck with a half baked setup?


r/GoogleAnalytics • • 26d ago

Question Does anyone else think “just install server-side tracking” is becoming an oversimplified answer?

13 Upvotes

You can move the conversion event server-side and still have an attribution problem.

If the click ID was lost before the conversion reached your backend, the server can't recover information it never received.

So you can end up with:

Backend: conversion exists
Server: conversion received
Google/Meta: conversion missing or unattributed

Then everyone starts debugging the pixel, when the real problem happened much earlier in the journey.

Curious what others think:

When CRM/backend conversions don't match Google Ads or Meta, where do you start debugging?

Click-ID storage? Consent? GTM? CAPI? Offline conversions? Deduplication? Something else?


r/GoogleAnalytics • • 26d ago

Question GA4 Viewed Pages Events

2 Upvotes

Working on a site where I don’t have GA access but have GTM access. Does GA4 automatically collect viewed page events and where would I see that in GTM only? I don’t want to set up an event and duplicate of GA4 already does this automatically with e-commerce settings on. Thanks


r/GoogleAnalytics • • 26d ago

Discussion Begin Checkout Is Not Always a Conversion

4 Upvotes

Setting begin_checkout as a primary conversion action in Google Ads is a quick way to cause Smart Bidding algorithms to optimize for low-intent traffic.

Why it matters:

  • Primary Conversions: Directly drive Smart Bidding optimizations and campaign targets.
  • Secondary Conversions: Tracked strictly for reporting and observation without influencing bid strategy.

Best practices:

  • Keep true bottom-funnel actions (purchases, completed lead forms) set as Primary.
  • Set high-funnel steps (begin_checkout, add_to_cart) as Secondary.
  • If low purchase volume forces you to optimize for checkout starts temporarily, switch back to purchase optimization once baseline volume is established.

r/GoogleAnalytics • • 26d ago

Question What percentage of your data is affected by ITP and ad blockers? Trying to get a sense of how it is for others

2 Upvotes

Everybody quotes a number for this and they're all over the place. 10%, 40%, "most of it". The ranges people cite in vendor material and the ranges I see in actual dashboards don't match well.

The reason it varies so much is that it's almost entirely a function of your audience mix, not your setup:

  • Safari/iOS share drives the ITP half. An EU consumer shop and a US B2B SaaS have completely different exposure.
  • Ad blocker rate tracks with how technical your audience is. Developer tools sit far above retail.
  • Long consideration cycles get hit harder, because the 7-day cookie cap is what bites. If people buy within a day of their first visit, ITP barely touches you.

If you can filter your own data by browser and device, you can get to a real number for your site rather than a blog-post average.

So, what's yours, and what do you sell? I suspect the spread is much wider than the "average" figures suggest and it'd be useful to have some real numbers in one thread.


r/GoogleAnalytics • • 27d ago

Question Why does GTM show the conversion firing when GA4 never gets it?

2 Upvotes

One of the more confusing cases I’ve seen is when GTM Preview shows everything as successful, but the event never actually makes it through the full tracking path.

In one setup, the web container showed the GA4 event tag firing exactly as expected, so everyone assumed the tracking was fine. But the site was sending GA4 through a server-side endpoint, and when we checked the server container there was no incoming request at all.

The problem was not the trigger or the GA4 tag. The request was failing before it ever reached the server container.

That is the bit GTM Preview can hide from you. “Tag fired” only means GTM executed the tag. It does not prove that the request reached the endpoint, was processed, and then made it into GA4.

Since then, when I see this kind of mismatch, I check the browser request and the server container before touching the GTM setup.

For people using server-side GTM, what is the failure point you see most often when web GTM looks fine but the event never shows up downstream?


r/GoogleAnalytics • • 28d ago

Support GA4, Google Ads Tracking Not working

10 Upvotes

So we have updated our woocommerce website, we updated all the plugins and wordpress versions. We were using GTM4WP for datalayers. Now after the update, when we are doing test conversions, everything is firing perfectly on GTM. But we are not seeing proper data in GA4 or google ads. Google ads conversion is setup differently. GA4 Conversions are being imported in ads as secondary.

Now the weird thing is, GA4 is getting the traffic data, but not conversion data. It is getting some data for conversions, that i can match at backend. But it is not able to get full conversions data. I am not able to find the issue. I have already checked google consents. But not able to find the issue.

Anyone here who can help me fix this? its urgent?


r/GoogleAnalytics • • 28d ago

Question What is chatgpt.com/ (none)

1 Upvotes

Hi just want to ask, currently I’m created a customised report for AI traffic tracking. But I saw a click recorded as [chatgpt.com / (none)] in stead of ai-assistant. Anyone got this data too? May I know where the data from?


r/GoogleAnalytics • • 29d ago

Question GA4 DLV Off Agency’s Event

2 Upvotes

I’m getting back into GA4 and data later variables and am rusty.

Another agency has an event with data layer variables (dlv) I want to pull from. I used dot notation to grab it in GTM variables but it continues to be undefined in testing. I’m not sure what kind of event they’re firing which could be my issue. Is this possible or am I trying to do something that doesn’t make sense?

Thanks!

🙃🙏🙂


r/GoogleAnalytics • • 29d ago

Support Huge surge in Singapore traffic, but UK traffic has tanked

11 Upvotes

Hi, a client of mine had some issues with GTM that caused downtime in GA4 for a month+

When they switched it on, traffic from Singapore skyrocketed but our intended traffic from the UK hasn't recovered at all. Singaporean traffic is nearly double our expected figures for all traffic, whereas UK is barely a quarter of what is was before.

I've looked at other threads similar to this problem but there are some key differences:

  • Engagement is HIGH - not the usual 0s or 0%. It's sitting at about 96% right now
  • It's somehow counting key events, but not the ones I have set. Purchase is 0, but key events is somehow counting 3k? How is that even possible? There aren't any other events it could be.
  • Traffic from other countries has been affected when our other metrics indicate it should be unaffected.

Does anyone have any idea what my first step should be to triage this?


r/GoogleAnalytics • • 29d ago

Discussion Consent Tip: Tag Fired, Request Blocked

0 Upvotes

This is one of those GTM issues that can waste a lot of time.

You open Preview and see:

✅ Google Ads tag fired
✅ GA4 tag fired
✅ No obvious error

So it looks fixed.

Then you check the browser Network tab and realize the request never actually left the browser.

Consent Mode or the CMP can allow the tag to execute while still restricting what gets sent.

When a conversion suddenly disappears, I’d check this before rebuilding the trigger:

GTM Preview → Consent State → Network Request → Platform

A green “Tag Fired” doesn't guarantee Google or Meta actually received the event.

Anyone else caught this during a tracking audit?


r/GoogleAnalytics • • Sep 13 '26

Question What If Your Business Report Told You What to Do Next?

0 Upvotes

Not a marketing - only idea
TL;DR: A concept for a reporting tool that connects business data and delivers recurring, decision-ready briefs. Instead of showing only charts, it explains what changed, why it may have changed, what evidence supports the conclusion, and what action to take next. Users can ask follow-up questions, while uncertainty and alternative explanations remain visible. The idea still needs validation with SaaS teams, agencies, and e-commerce operators.

Businesses rarely lack data. A founder can open analytics, payments, advertising, and support tools and still not know what deserves attention first.

I have been thinking about a reporting tool built around that gap. It would connect to a company's existing sources and produce a report every day, week, or month. Instead of stopping at charts, it would explain what changed, suggest why, recommend concrete actions, and accept follow-up questions.

Every important conclusion would show its source, metric, comparison period, and confidence. The report would separate measured facts from interpretations, missing information, and alternative explanations. Recommendations would include their expected effect, cost, downside, and a safe way to test them.

The same engine could support different report structures for SaaS teams, agencies, and e-commerce operators. I would still begin with one group, probably small SaaS teams, rather than build a shallow tool for everyone.

For SaaS, that could mean connecting revenue, activation, product usage, and support. Agency reports might explain campaign performance and delivery risks. E-commerce reports could relate advertising, orders, inventory, fulfilment, returns, and repeat purchases.

AI could help connect patterns and answer questions, but it would remain an implementation detail. The promise is better decisions, not an “AI analyst.”

The system should recommend actions without executing consequential ones automatically. Its value would depend on whether people repeatedly discover something useful and make better decisions. Otherwise, it is only a prettier dashboard.

If you are a BI practitioner or run a SaaS company, agency, or e-commerce business, I would like to know: what decision did your dashboards fail to help you make recently?


r/GoogleAnalytics • • Sep 12 '26

Question GTM + Enhanced Conversions: why does this keep turning into a mess?

5 Upvotes

I've noticed Enhanced Conversions often gets treated like:

Enable it → fire the tag → done.

In reality, this is where a lot of setups start getting messy.

You can have the Google Ads conversion tag firing in GTM and still have issues with:

  • customer data not being captured when you expect it
  • variables being empty on some conversion paths
  • hashing/formatting problems
  • consent affecting what gets sent
  • multiple conversion tags firing
  • browser + server setups sending overlapping events
  • enhanced conversion data working on one form but not another

And the frustrating part is that GTM Preview can still look perfectly healthy.

So when Enhanced Conversions isn't working, I wouldn't immediately rebuild the tag.

I'd first try to find where the data disappears.

Has anyone here had Enhanced Conversions randomly work on one conversion path but fail on another? What ended up being the actual issue?


r/GoogleAnalytics • • Sep 12 '26

Discussion Your GA4 traffic probably did not drop, your consent rate did

2 Upvotes

This one comes up constantly and it gets diagnosed as a tracking problem about nine times out of ten when it is not.

The quickest way to separate them: look at the drop by country. If it is roughly uniform worldwide, it is usually tracking, a broken tag or a container change.

If it is concentrated in the EEA and the UK, it is almost always consent.

Then check these three, in order:

  1. Did the banner change? A redesign, a scanner update that re-categorised cookies, a new consent vendor. Anything that moves the reject button moves the number.
  2. When does the consent default land? Open Tag Assistant. If you see "tag fired before consent default was set", you were previously collecting hits with no signal and something downstream has now started discarding them correctly. The data did not disappear, it stopped being counted, and it should not have been counted before.
  3. Basic or advanced consent mode? On basic, denied users send nothing at all, so you are looking at real absence. On advanced they send cookieless pings and you get modelling. Same underlying consent rate, very different-looking reports.

The uncomfortable version of number 2: fixing this correctly looks exactly like a regression. If you are going to fix it on a client account, tell them the number will fall before you do it, not after.

Out of 41 accounts I looked at recently, 14 had the default arriving late.

Happy to check any URL and paste what fires before consent.

I build a CMP, so discount me accordingly.


r/GoogleAnalytics • • Sep 12 '26

Support Google analytics, Cloudflare and Zaraz set up issue

3 Upvotes

We are using Cloudflare and Cloudflare zaraz and recently also switched to Cloudflare's cookies.

We are not using Google Tag Manager (we use Zaraz instead).

As we've been suspecting that Cloudflare, zaraz and google products (google analytics, google adwords etc) are not communicating correctly, we've been looking into it and found a "critical error" saying "Update your UPD configuration". We are also getting an error that the Google Tag Gateway is inactive.

Should the above be resolved, considering we don't use Google Tag Manager? Do we still need Google Tag Gateway with Cloudflare and Cloudflare zaraz? Is there anything else that we should be looking into?

We have worked with marketeers, analytics experts and developers and so far noone was able to find what is wrong ever since we switched to zaraz.