Przejdź do głównej treści
Wpisy z tagiem

Redirect 200

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. The official tracking code is notoriously bloated — weighing in at around 171kB in some instances—and is frequently blocked by various ad-blockers. Given the lack of lightweight alternatives, I wasn’t looking forward to compromising my site’s performance.

I started searching for a solution, but finding nothing that met my needs, I decided to take a “hit-and-miss” approach and build my own. What began as a simple snippet has now evolved into a highly refined, professional-grade tool. With the release of version 1.11 (the “Gold Master”), the script is more robust than ever, while remaining incredibly lean.

The Evolution of the Script

While the primary purpose remains tracking essential metrics like page views (page_view), session starts (session_start), and returning users (first_visit), each iteration has added powerful capabilities:

  • Version 1.06 - 1.07: Introduced site search detection (view_search_results) and search query capturing (search_term).
  • Version 1.09: Added scroll tracking (scroll), firing an event when a visitor reaches 90% of the page depth.
  • Version 1.10: Implemented file download tracking for specified extensions and any links containing the download attribute.
  • Version 1.11 (The “Gold Master”): This latest update represents a total architectural overhaul. It introduces UTM persistence to fix attribution gaps, accurate Average Engagement Time via the Visibility API, and Outbound Link Tracking.

By moving to a dedicated GitHub repository, I’ve also implemented a modern Event Delegation model and Storage Safety Checks to ensure the script runs flawlessly even in strict private browsing modes.

Kategorie