Articles
Writing about measuring a site honestly: what the numbers mean, which ones are lying to you, and what to do about it.
- Analytics without a cookie banner
When website analytics needs consent, when it does not, and why storing an id in localStorage counts as a cookie under the ePrivacy rules.
- Is Google Analytics legal in the EU?
What the data protection rulings actually said, what the Data Privacy Framework changed, and what still has to be true for a GA4 setup to be defensible.
- When analytics revenue does not match your orders
Why the revenue in your analytics disagrees with your order database, ranked by how often each cause is the real one, and how to tell them apart.
- Measuring an app and a site in one place
What actually goes wrong when a mobile app and a site are measured by two different tools, and what has to be true for one tool to cover both.
- Self-hosted or hosted analytics
What running your own analytics actually costs once the install is done, when it is clearly the right answer, and when the hosted option wins.
- How long to keep analytics data
How to choose a retention period from the reports you actually run, what the GDPR requires, and why the default in most tools is shorter than you think.
- What bounce rate actually measures
Why a high bounce rate is not automatically bad, why GA4 changed the definition, and how to tell a satisfied visitor from a disappointed one.
- Direct traffic is not a traffic source
Direct is where analytics puts visits it could not attribute. Here is what is actually in that bucket, and how to get most of it back.
- When your analytics is showing you an estimate
Sampling, modelling and thresholding all replace counts with estimates. How to tell which one your tool is doing, and when it matters.
- Why paid clicks show up as organic traffic
An untagged ad click looks identical to an organic one in the referrer. Here is why, what it does to your reported cost per acquisition, and the fix.
- Why your heatmap and your analytics disagree
A heatmap counting fewer visits than your page views is not broken. Four reasons the two are measured differently, and which number to trust for what.
- When you need session recordings, and when you do not
Recordings answer questions counting cannot, and they cost more than anything else you collect. A short guide to turning them on for a reason and off again.
- Collecting visitor feedback without a survey tool
What a feedback widget answers that a survey does not, why anchoring a comment to a page matters, and where a widget stops being the right instrument.
- Spotting a bad release in your app numbers
Why an app's version has to be on every screen and every error, what a crash-free rate does and does not tell you, and how to date a release on the chart.
- Do you need three analytics tools?
Most teams end up with one tool for traffic, one for behaviour and one for feedback. What that actually costs, and the cases where it is still the right answer.
- Switching analytics without losing your history
You cannot import years of traffic into a new tool and get the same numbers. What to export, how long to run both, and which comparisons survive the move.
- Why your traffic dropped overnight
A sudden fall is almost never a sudden fall in visitors. Nine causes in the order they are worth checking, starting with the ones that are your own doing.
- Why two analytics tools never agree
Running two tools side by side always produces two answers. Seven reasons they differ by design, and how to tell an expected gap from a broken install.
- Why Search Console and analytics disagree
One counts clicks in a results page, the other counts arrivals on your site. Six reasons the gap is expected, and what each tool is actually the authority on.
- How long before analytics tells you anything
A new site produces numbers immediately and answers almost nothing for weeks. What is readable on day one, what needs a month, and what needs a year.
- Do heatmaps and session recordings need consent?
Session replay raises two separate legal questions, and most tools only answer one. What storage, masking and a lawful basis each have to do with it.
- App analytics without Firebase
What you actually give up and gain by taking Google Analytics for Firebase out of an app, including the piece you should keep, and the ones nothing else replaces.
- Three ways ClickHouse gave us the wrong number
Aggregate states that are not numbers, an average over nothing that is not null, and a table you must read with FINAL. Three quiet wrong answers and what they cost.
- Designing MCP tools a model will not misread
Six decisions in an analytics MCP server, and what each one is defending against, including why an outage returns an error rather than zeroes.