MetricsWave blog

Analytics, privacy & performance

Practical writing on measuring what matters — privacy-first analytics, Google Analytics alternatives, SEO, and fast dashboards.

August 13, 2026 · Daniel Reeves

How to Build a Channel Grouping in Web Analytics

Raw source/medium data is unreadable at scale. Learn to build a deterministic, ordered rule set that classifies sessions into channels, sets UTM precedence, and stops Direct traffic from hiding your real acquisition sources.

Read article →
August 12, 2026 · Elena Roth

How to Design an Analytics Tracking Plan

A tracking plan maps your business questions to the exact events and properties that answer them. Learn to define goals, build the spec, assign owners, and keep it versioned so your instrumentation stays accurate.

Read article →
August 12, 2026 · Daniel Ostrowski

How to Debug Your Web Analytics Implementation

Analytics bugs are silent — no stack trace, no failed build, just missing or doubled events distorting decisions. A developer's guide to diagnosing broken events, duplicate counts, CSP blocks, and SPA tracking gaps before they cost you data.

Read article →
August 10, 2026 · MetricsWave Team

How to Track JavaScript Errors in Web Analytics

Most analytics setups are blind to client-side JavaScript exceptions that silently break features. Here is how to wire up browser APIs to capture front-end errors as analytics events — and turn your dashboard into an early-warning system for broken UX.

Read article →
August 7, 2026 · MetricsWave Team

How to Track 404 Errors in Web Analytics

A standard setup logs a broken URL as an ordinary pageview, so your 404s hide in plain sight. Here is how to fire a dedicated not-found event, capture the referrer that caused each broken link, and turn errors into an ordered fix-it queue.

Read article →
August 3, 2026 · MetricsWave Team

How to Track Scroll Depth in Web Analytics

A pageview says someone arrived; scroll depth says whether they read it. Percentage vs. element milestones, throttling the scroll event with rAF, deduping thresholds with a Set, IntersectionObserver, and sending exit-time depth with sendBeacon.

Read article →
August 3, 2026 · MetricsWave Team

How Cross-Domain Tracking Works in Web Analytics

One visitor across two domains reads as two people. Here's the mechanism that keeps a session intact across a domain boundary — link decoration, the client-ID handoff, and why third-party cookies no longer do the job.

Read article →
August 2, 2026 · MetricsWave Team

How to Send Analytics with the Beacon API (sendBeacon)

The most valuable analytics event — final engagement time, scroll depth, the outbound click that navigates away — has to leave the browser exactly when a normal fetch gets cancelled. Why navigator.sendBeacon wins that race, how to fire it on visibilitychange, and when to fall back to fetch keepalive…

Read article →
August 2, 2026 · MetricsWave Team

Why Your Analytics Undercounts Real Visitors

Everyone worries about bots inflating traffic; the quieter, costlier problem runs the other way — real people visit and never get counted. The five places visitors vanish (ad blockers, consent banners, JS errors, dropped beacons, browser caches) and how to recover them without invading privacy…

Read article →
August 1, 2026 · MetricsWave Team

Sessions vs Pageviews vs Unique Visitors Explained

Open any dashboard and three numbers greet you — pageviews, sessions, unique visitors — and they never match. What each one actually counts, why the gap between them is normal, and which metric to quote for content, engagement, and audience-size decisions…

Read article →
August 1, 2026 · MetricsWave Team

Why Your Referrer Data Is Disappearing (Dark Traffic)

Open any dashboard and Direct traffic keeps swelling — but most of it is dark traffic: real campaign visits whose source the browser stripped before it reached you. Where the HTTP referrer goes, why it quietly breaks your budget decisions, and five ways to recover attribution…

Read article →
August 1, 2026 · MetricsWave Team

UTM Parameters: A Developer's Guide to Campaign Tracking

A referrer tells you a visitor came from Twitter — not whether it was the paid promo, the founder's post, or the newsletter footer. UTM tags close that gap, but a loose convention quietly splits one campaign into a dozen near-duplicate rows. The five tags that matter and the rules that keep reports clean…

Read article →
August 1, 2026 · MetricsWave Team

Self-Hosting Web Analytics: A Developer's Trade-off Guide

Running your own analytics stack promises full data ownership and no per-event bill — but hands you a database to keep alive and an uptime SLA you now owe yourself. An honest look at the real costs, where self-hosting wins, and the middle ground most teams actually want…

Read article →
July 31, 2026 · MetricsWave Team

How to Track Custom Events in Web Analytics

Pageviews tell you which URLs opened; they say nothing about who clicked "Buy" or gave up at step three. A developer's guide to naming events, structuring properties, choosing client vs server side, and keeping the data clean…

Read article →
July 31, 2026 · MetricsWave Team

How to Collect Core Web Vitals as Real-User Data (RUM)

Lighthouse tells you how one synthetic run performed. It cannot tell you what your real visitors experienced on a mid-range phone — and that is the number Google ranks on. How to collect LCP, INP, and CLS from real users with the web-vitals library and route them into analytics you own…

Read article →
July 31, 2026 · MetricsWave Team

Marketing Attribution Without Third-Party Cookies

The cross-site cookie that powered a decade of attribution is effectively dead — but you do not have to guess where conversions come from. How first-party events, server-side data, and disciplined UTM tagging give you a picture that is often more honest than the old one…

Read article →
July 31, 2026 · MetricsWave Team

How to Filter Bot Traffic From Your Website Analytics

A surprising share of what analytics counts as visitors is never a person — crawlers, scrapers, monitors, and headless browsers inflate pageviews and crush your conversion rate. How to spot bot traffic and keep it out of your numbers, layer by layer…

Read article →
July 30, 2026 · MetricsWave Team

Server-Side vs Client-Side Analytics: A Developer's Guide

Where you collect analytics data — in the browser or on your own server — shapes what you can measure, how much it costs your page, and how exposed you are to blockers and privacy rules. How the two approaches differ, and how to pick the right mix…

Read article →