Paolo Bietolini

Home | Feed Atom

Cross-Domain Tracking in GA4: Setup Without Data Loss

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 Custom Dimensions & Metrics: When and How to Use Them

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.

How GA4 Counts Millions of Users with 12 Kilobytes: The HyperLogLog Algorithm

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 …

GA4 Debug Mode: Complete Troubleshooting Guide

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.

Fixing Direct Traffic Inflation in GA4 for Single Page Applications

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 …