Questi appunti fanno parte di un progetto di Learn in Public. Ogni settimana leggo e riassumo un capitolo di Designing Data-Intensive Applications di Martin Klepmann. Gli appunti sono presi in inglese e tradotti in Italiano da Claude. Contestualmente al libro sto lavorando ad un progetto di creazione ed ingestion di …
If you’ve ever read this blog, you know I work in analytics and data collection in MarTech. And if you’ve ever read this blog, I will never know it. Despite what I do for a living, this site has no way of tracking you. I even installed the Google Fonts on my own server so your IP address never reaches Google, and I …
Last month I wrote hexdump from scratch and admitted I didn’t know a good alternative to printf per row. I found it: one fwrite per 64 KiB chunk instead of 128 million calls into stdio, and a 23× speedup, most of it from the part I thought was boring.
Yes, I’m saying we should remigrate them. No — deport them. All of them, down to the last one. They live here, in our country, the one we had the privilege of being born in, and with sheer ingratitude they drain our resources, take our jobs, and drive prices up.
Sì, dico di remigrarli. Anzi, deportarli tutti. Tutti, dal primo all’ultimo. Stanno qui nel nostro paese, dove noi abbiamo avuto il privilegio di nascere, e con ingratitudine sfruttano le nostre risorse, ci tolgono il lavoro e fanno alzare i prezzi.
Questo è il primo episodio di una serie dedicata a Google Tag Manager. L’obiettivo non è il solito tutorial “clicca qui, poi qui”: voglio spiegare come funziona GTM davvero, sotto l’interfaccia, e demistificare alcune convinzioni che negli anni si sono sedimentate attorno allo strumento. Si parte dal client-side, la …
Say we want to inspect a corrupted file. To figure out its real type we can check its signature, the first few bytes of the file. On Unix-like systems, the tool for the job is hexdump: a program that shows the hexadecimal content of a file or of a data stream.
After reading the rules on Wikipedia, I set out to understand 2D grids. I spent a good hour drawing grids and numbering indices to see how they move across rows and columns. I knew I’d need two nested loops to walk the cells, so I wanted to first understand the foundation of the problem: what the game’s world is made …
A PySpark TypeError that looked like a schema bug was actually three steps upstream. Pandas can’t represent what BigQuery hands it, (nested structs, nullable integers, timezone-aware timestamps, arbitrary-precision numerics) so every downstream line is a patch against a loss that happened at the moment pandas entered …
Four lines of Spark config to read BigQuery. Underneath: a gRPC read session, one stream per Spark partition, Arrow end-to-end, server-side column and filter pushdown, and dynamic rebalancing when executors finish early. A walkthrough of what those lines actually trigger — and why the middle format isn’t replaced with …
A large-sized Italian tourism operator running hop-on-hop-off bus tours and experience bookings across three domains came to me with a common problem: their advertising platforms were not receiving reliable conversion data. Meta, LinkedIn, Google Ads, and TikTok dashboards told conflicting stories. Attribution was …
Server-side GTM promises better performance, more accurate data, and longer cookie lifetimes. But the benchmarks tell a more complicated story than vendor blogs admit. This article compares client-side and server-side GTM across five dimensions — page speed, data accuracy, cookie durability, cost, and complexity — …
I audited the Adobe Analytics data layer implementation across 8 European websites of a major grocery retailer. Two different data layer architectures, inconsistent page type taxonomies, and diverging product data. Here is what a real-world multi-market audit looks like and what you can learn from it.
Browser tracking is losing signal. Safari caps cookies at 7 days, ad blockers strip requests to googletagmanager.com, and Firefox blocks third-party resources by default. Google Tag Gateway and server-side GTM both solve this, but they take fundamentally different approaches. This guide compares them head-to-head with …
Managing GTM at scale is tedious. Creating GA4 ecommerce tracking means 12+ tags, matching triggers, and variables—each requiring careful configuration. I built an open-source MCP server that connects Claude and ChatGPT directly to the GTM API. Describe what you need in plain English, and the AI handles the …
When users move between your domains, GA4 treats them as new visitors by default—inflating user counts and breaking attribution. This guide covers proper cross-domain configuration in GA4 and GTM, troubleshooting self-referrals, handling payment gateways, and testing to ensure session continuity.
GA4 default parameters cover most cases, but custom dimensions unlock business-specific insights. This practical guide explains when you actually need them, the three scope types (event, user, item), implementation via GTM, quota management, and real examples for ecommerce and lead generation sites.
Open any GA4 report and look at Total Users. Then run COUNT(DISTINCT user_pseudo_id) in your BigQuery export. The numbers won’t match. They’re usually within a percent or two, and there is no setting that makes them. That gap isn’t a bug, and it isn’t sampling. It’s a deliberate engineering decision: GA4 never actually …
Google Consent Mode V2 became mandatory for EEA advertisers in March 2024. Without it, you lose remarketing audiences and conversion data. This practical guide covers the two new parameters (ad_user_data, ad_personalization), basic vs advanced modes, GTM implementation with popular CMPs, and verification steps.
DebugView is essential for validating your GA4 implementation, but it often refuses to show data when you need it most. This practical guide covers all methods to enable debug mode, diagnose why events are not appearing, and fix the 18+ common issues that break DebugView.
Implementing GTM Server-Side on self-hosted infrastructure reduces costs from €50-150/month (Google Cloud) to €5-20/month while ensuring on-premise compliance essential for regulated industries. This technical guide covers complete Docker implementation: container setup, DNS configuration, Caddy reverse proxy with …
Lavorando nel Digital Marketing sai quanto sia cruciale avere un tracciamento preciso dei dati per prendere decisioni strategiche. Tuttavia, chiunque abbia implementato il tracciamento ecommerce di GA4 si sarà scontrato con alcune problematiche che possono rendere la gestione dei dati più complessa del necessario. Lo …
Sebbene GA4 offra capacità avanzate di tracciamento e modellazione, la chiarezza nell’attribuzione delle conversioni e nella valutazione del rendimento delle campagne rimane una priorità assoluta. Qui entrano in gioco i parametri UTM.
Google Analytics 4 (GA4) è una piattaforma potente per raccogliere e analizzare dati sul comportamento degli utenti. Ma cosa fare se vuoi inviare dati personalizzati a GA4, magari da un’applicazione o un sistema che non usa un browser? È qui che entra in gioco il Measurement Protocol.
Come il listener per i form di Elementor blocca la Consent Mode ovvero sul perché non copincollare gli script da Internet Per un cliente con Elementor ho integrato uno script trovato online per tracciare gli invii dei form dal suo sito. E mi ha causato due settimane di mal di testa. Ora, prendiamoci la manina e seguimi …
Il tracciamento server-side sposta l’elaborazione dei dati dal browser dell’utente ai server aziendali, offrendo maggiore controllo, precisione e conformità alla privacy. Questa guida tecnica spiega come funziona GTM Server-Side, quando ha senso implementarlo, e perché bypassare gli adblocker non è una buona ragione …
Server-side tracking shifts data processing from the user’s browser to company servers, offering greater control, accuracy, and privacy compliance. This technical guide explains how GTM Server-Side works, when it makes sense to implement it, and why bypassing adblockers is not a good reason to adopt it.
The Problem If you’re running a Single Page Application (SPA) built with frameworks like Nuxt.js, Next.js, React Router, or Vue Router, you might notice an unusually high percentage of Direct traffic in your Google Analytics 4 reports.
This happens because:
SPAs don’t trigger traditional page loads - When users …