Skip to main content
Posts with Tag

Minimal Analytics

When I developed my Minimal Google Analytics 4 snippet, I thought about preventing it from being blocked by various AdBlockers.

Along with AdBlock Plus, I am also using the DuckDuckGo Privacy Protection extension in Safari. I am using the DuckDuckGo browser on its own as well.

DuckDuckGo, along with restrictive ad blockers, tends to block requests heading to the google-analytics.com domain. This is done on purpose, and I fully understand that.

This is why I described mitigation techniques (Minimal Analytics 4 - masking (hiding) requests).

This technique allows you to utilize Redirect 200 to mask requests to external domains under your domain.

By implementing a redirect as follows:

/g/collect https://www.google-analytics.com/g/collect 200

Instead of calling the address below in a script

https://www.google-analytics.com/g/collect

I am calling this

https://www.example.com/g/collect

Behind the scenes, thanks to Redirect 200, I am sending requests to Google Analytics that are not blocked by either AdBlock Plus or DuckDuckGo.

This solution, however, has 2 major flaws.

When Google announced that they would force us to move away from Universal Analytics to Google Analytics 4 I wasn’t happy. Due to a lack of alternatives in minimal analytics, loading official (bloated) tracking code that weighs 171kB (in my instance), which is liable for blocking by various AdBlockers, wasn’t something that I had been looking forward to.

I started searching for a solution. Due to the lack of it, I decided, by hit-and-miss approach, to create my own, and I think I did it. It currently weighs 3kB minified (version 1.10). Its main purpose is to track page views (page_view, session_start and first_visit) on our website in Google Analytics 4 property. Since version 1.06 it detects and tracks site searches (view_search_results), from 1.07 search query (search_term), from 1.09 scrolls (scroll) capturing scroll events each time when a visitor gets to the bottom of a page (90% and below) and from 1.10 it got ability to track <a href links to files with specified extensions (see below) and all these links where there is a download attribute specified independently of the extension of the file.

On the 16th of March 2022 Google announced its plans for a shutdown of Universal Analytics property and replace it fully with Goole Analytics 4 (v4) that been in the market since late 2020.

Google like to kill off their services. Luckily, this is not about shutting down Google Analytics but only the method, how analytics data are collected from websites. If you have been using Google Analytics for some time, then it’s more likely that you have been using Universal Analytics. You will know that by looking at your tracking code that will carry UA- on front of the numbers.

Analytics in its 4th version (UA is 3rd) has been developed for some time, but it wasn’t adopted as quick as Google could expect (or want), this is why they forcing a change by shutting down one in favour of another.

You may say what you want about Google Analytics, especially about how “they” are, apart from displaying data for you, using data gathered for “their” business purpose (forget about privacy). If you are a website owner and you are looking for a reasonable tracking method for your visitors, this is the solution that you will pick in the first place.

The problem with Google Analytics is that their tracking script weights a lot and that is slowing down your website.

When I moved into a static website made using Hugo I optimised almost everything, including the Google Analytics script. Instead of bulky code loaded from Google, I used Minimal Analytics.

Initially, I put it as always, in the head of my website. Later on, I added it to my 404.html page. I created my own 404 page to override the default Netlify landing page that appears when the visited URL was not found.

The idea was initially to find broken links that visitors are using and to fix them with relevant redirection. However, it didn’t take long until my analytics were spammed by stupid people (and their bots) trying to find a way to break in to my site.

Categories