Writing on tracking quality
Concrete posts about GTM, Consent Mode v2, server-side tagging, and what we see across the public audit corpus. No fluff, no listicles — just the parts most teams get wrong, with data.
- 5 min read
GTM vs hardcoded gtag: when you do not need a tag manager
Tag managers are the default advice, but they are not always the right call. For a simple site with one or two tags, hardcoded gtag can be faster and simpler. Here is the honest line.
gtmgtagarchitectureRead the post
- 5 min read
Meta CAPI: Conversions API Gateway vs self-hosted vs GTM server
There are three common ways to run the Meta Conversions API, and they trade setup effort against control. Here is which one fits which team.
meta-capiserver-side-tagginginfrastructureRead the post
- 5 min read
Phone call conversion tracking: closing the offline-call gap
For service businesses, the conversion is a phone call — invisible to standard web tracking. Call tracking connects the call back to the click, campaign, and keyword that drove it.
call-trackinggoogle-adslead-genRead the post
- 5 min read
Where to host server-side GTM: Cloud Run, Stape, and the trade-offs
Decided you need server-side GTM? The next question is where the container runs. Self-hosted on Google Cloud, or a managed host like Stape — each has real cost and effort trade-offs.
server-side-tagginggtminfrastructureRead the post
- 5 min read
The pre-launch tracking QA checklist (before you ship the new site)
A site redesign is the number-one cause of broken tracking. This is the checklist to run before launch so you do not discover in three weeks that conversions stopped on day one.
tracking-qualityqalaunchRead the post
- 5 min read
The GA4 items array: event-scoped vs item-scoped data, explained
Ecommerce reporting lives or dies on the items array. Get its structure and scoping wrong and your product reports are empty even though "tracking works." Here is the anatomy.
ga4ecommercedatalayerRead the post
- 5 min read
Subdomains vs cross-domain: which tracking problem do you actually have?
blog.site.com and shop.site.com is a different tracking problem than site.com and checkout.otherbrand.com. Confusing the two leads to the wrong fix and split sessions.
ga4cross-domainattributionRead the post
- 5 min read
GA4 explorations crash course: funnels, paths, and cohorts
The standard GA4 reports barely scratch what the data can answer. Explorations are where the real analysis lives — funnels, path analysis, segment overlap, and cohorts.
ga4explorationsreportingRead the post
- 5 min read
Using Search Console and GA4 together (organic meets conversion)
GA4 tells you what visitors did; Search Console tells you what they searched to arrive. Linked, they answer the question neither can alone: which queries actually drive revenue.
ga4search-consoleseoRead the post
- 5 min read
Consent Mode v2 for Google Ads: what breaks without it
Since 2024, Google Ads needs Consent Mode v2 signals to use EU data for remarketing and measurement. Without them, your EU audiences shrink and conversions go unattributed.
consent-mode-v2google-adsgdprRead the post
- 5 min read
GTM workspaces, versions, and environments: a team workflow
Once more than one person touches a GTM container, "just publish it" stops being safe. Workspaces, versions, and environments are how teams change tags without breaking production.
gtmworkflowgovernanceRead the post
- 5 min read
Duplicate transactions in GA4: why your revenue is double-counted
If GA4 revenue reads higher than your store, duplicate purchase events are the usual culprit — a refreshed thank-you page, two tags, or a retry. Here is how to find and stop them.
ga4ecommercedata-qualityRead the post
- 5 min read
Engagement events: tracking scroll, video, and time without the noise
Scroll and video events tell you whether content works — or they flood GA4 with junk that inflates engagement. Here is how to track them so the numbers mean something.
ga4engagementcontentRead the post
- 5 min read
Building GA4 audiences for remarketing that actually convert
GA4 audiences feed Google Ads remarketing — but a badly-defined audience wastes spend on people who already bought or never cared. Here is how to build ones worth targeting.
ga4audiencesremarketingRead the post
- 5 min read
Debugging the Meta Pixel: from Pixel Helper to Events Manager
When Meta reports fewer conversions than you expect, the cause is almost always the pixel — not the algorithm. Here is the debugging path from browser to Events Manager.
meta-pixeldebuggingattributionRead the post
- 5 min read
Cookie consent platforms compared: Cookiebot, OneTrust, Osano, Klaro
The CMP you choose decides how painful Consent Mode v2 is to wire up. A practical comparison for teams that just need consent done right without enterprise overhead.
consent-mode-v2cmpprivacyRead the post
- 5 min read
Setting up GA4 for a lead-gen site (it is not ecommerce)
Most GA4 guides assume you sell products. If you generate leads, the ecommerce events are the wrong model. Here is the event map that actually fits a lead-gen funnel.
ga4lead-gengetting-startedRead the post
- 5 min read
Attribution models compared: last-click, data-driven, and the rest
Last-click is simple and wrong. Data-driven is better and opaque. Here is what each attribution model actually does to your channel credit — and which to use when.
attributionga4reportingRead the post
- 5 min read
Offline conversion imports: closing the loop from CRM to Google Ads
For considered purchases, the sale happens days after the click, in your CRM — not on the site. Offline conversion imports feed that back to Google Ads so it can optimize toward real revenue.
google-adsoffline-conversionslead-genRead the post
- 5 min read
GA4 data retention: the setting that is quietly deleting your data
GA4 defaults to a short retention window for the granular data behind explorations. If you have never changed it, you may be losing year-over-year analysis you assume is there.
ga4data-retentionconfigurationRead the post
- 5 min read
Tracking single-page apps: why your pageviews are wrong
In a React/Vue/SPA, the page never fully reloads — so GA4 records one pageview for a whole session of navigation. Here is how to fire virtual pageviews on route changes.
ga4spagtmRead the post
- 5 min read
How to actually verify Google Consent Mode is working
Installing a consent banner is not the same as Consent Mode working. Here is how to confirm the gtag consent signals are firing in the right order — before, not after, your tags.
consent-mode-v2debuggingprivacyRead the post
- 5 min read
Handling refunds and returns in GA4 (so revenue stays honest)
If you track purchases but never send refunds, your GA4 revenue is permanently inflated. The refund event fixes it — but only if you send it with the right transaction_id.
ga4ecommercerevenueRead the post
- 5 min read
Tracking form submissions in GA4 (the reliable way)
Form tracking breaks constantly because most setups listen for a button click instead of a real submission. Here is how to fire a clean generate_lead event that actually maps to submitted forms.
ga4formslead-genRead the post
- 5 min read
GA4 custom dimensions and metrics without blowing up cardinality
Custom dimensions unlock the parameters you are already collecting — but register the wrong one and you get "(other)" rows swallowing your data. Here is how to pick, register, and scope them.
ga4custom-dimensionsreportingRead the post
- 5 min read
Tag governance across 25 client sites without losing your mind
Managing tracking for one site is a checklist. For 25 client sites it's a governance problem — and the failure mode isn't dramatic, it's entropy: containers drift, a client's dev breaks a tag, and you find out when they email about missing conversions.
agencygovernancegtmRead the post
- 5 min read
Attribution windows: why last week's ROAS keeps changing
You pull ROAS for last week on Monday, then again Friday, and the numbers moved — even though the week is over. You're not going crazy; you're watching attribution windows do their job.
attributiongoogle-adsreportingRead the post
- 5 min read
Basic vs Advanced Consent Mode: which one you actually want
Consent Mode v2 comes in two flavours — Basic and Advanced — and the choice materially changes how much data you recover from users who decline. Most guides skip the trade-off. Here it is.
consent-mode-v2privacygdprRead the post
- 5 min read
Keeping PII out of GA4 (Google can delete your data if you don't)
Sending personally identifiable information to GA4 isn't just a privacy problem — it's a Terms of Service violation, and Google reserves the right to delete the offending data or your whole property. Most PII leaks are accidental.
ga4privacypiiRead the post
- 5 min read
Cross-domain tracking in GA4: stop your sessions splitting in two
If your funnel spans two domains — a marketing site and a separate checkout, or a third-party booking host — GA4 will, by default, count one user as two: session split, source lost, conversions misattributed. Here's the fix.
ga4cross-domainattributionRead the post
- 5 min read
Filtering bot and spam traffic out of GA4
Suspicious spikes from odd referrers? A conversion rate that looks worse than reality? Bot and spam traffic may be polluting your GA4. It filters some automatically — but not all, and the rest is on you.
ga4data-qualitybotsRead the post
- 5 min read
UTM tagging that doesn't wreck your GA4 channel reports
Inconsistent UTM tags are the quiet reason your GA4 channel report is a mess of "(other)", duplicate sources, and campaigns that don't add up. The fix is boring and total: one convention, enforced.
utmga4attributionRead the post
- 5 min read
Streaming GA4 into BigQuery: when raw event data is actually worth it
GA4's free BigQuery export is one of its best features and most over-hyped. Raw event-level data unlocks analysis the UI can't touch — and a maintenance surface most teams underestimate. Here's when it's worth it.
ga4bigquerydata-warehouseRead the post
- 5 min read
Shopify Customer Events and the Web Pixel sandbox: what you can and can't track
Shopify moved custom tracking into Customer Events and a sandboxed Web Pixel API, and it broke a lot of "paste your pixel in theme.liquid" muscle memory. Here's what the sandbox allows and where it bites.
shopifyweb-pixelsecommerceRead the post
- 5 min read
How to debug tags in the browser (without GTM Preview)
GTM Preview is great until you can't use it — a client site you don't have container access to, a production-only bug, a competitor teardown. You can debug almost any tag from the browser alone.
debugginggtmbrowser-extensionRead the post
- 5 min read
DataLayer design: event and parameter names that won't break in six months
Most dataLayer messes start on day one with sloppy naming. A small set of conventions — consistent event names, typed parameters, one push per real-world action — keeps GA4 and every downstream tag readable as your site grows.
datalayergtmga4Read the post
- 5 min read
Google Ads Enhanced Conversions, explained (and how not to leak PII doing it)
Enhanced Conversions recover attribution lost to ad blockers and iOS by sending hashed first-party data with each conversion. Done right it lifts match rates; done wrong it leaks plaintext email into your tags. Here is the safe path.
google-adsenhanced-conversionsprivacyRead the post
- 5 min read
Your conversions just dropped 40%: a 15-minute debugging runbook
Conversions cratered overnight and nobody deployed "anything." Before you blame the ad platform, run this ordered runbook — it finds the tracking cause in about 15 minutes, most of the time.
debuggingmonitoringgtmRead the post
- 5 min read
TikTok Events API: server-side setup that actually improves match quality
The TikTok Pixel alone loses a growing share of events to ad blockers and in-app browsers. The Events API sends conversions server-side — but match quality lives or dies on identifiers and event dedup. Here is the setup that works.
tiktokevents-apiserver-side-taggingRead the post
- 5 min read
The third-party cookie in 2026: where things actually landed
After years of "the cookie is dying," here is the honest 2026 status — what still works, what broke, and why first-party data plus server-side collection is the setup that survives regardless of which way the browsers jump.
first-party-datacookiesprivacyRead the post
- 6 min read
When to move to server-side GTM (and when it's a waste of money)
Server-side GTM is powerful and oversold. It genuinely helps with data control, page speed, and ad-blocker resilience — but for a lot of stores it's cost and complexity for a marginal gain. Here's how to tell which camp you're in.
server-side-tagginggtmarchitectureRead the post
- 5 min read
Conversion tracking on Squarespace: what you can and can't do
Squarespace makes basic analytics easy and real conversion tracking harder than it should be. Here's what the built-in tools cover, where the code-injection ceiling is, and how to get GA4 + ad pixels working within the platform's limits.
squarespacega4getting-startedRead the post
- 5 min read
BigCommerce tracking: GA4, Meta, and Google Ads without the data-layer gaps
BigCommerce has decent native tracking hooks, but the data layer has gaps that silently drop purchase values and item details. Here's how to wire GA4 and ad pixels so the ecommerce data is actually complete.
bigcommercega4ecommerceRead the post
- 5 min read
Wix tracking: the limitations nobody warns you about (and the workarounds)
Wix can run GA4 and ad pixels — but its rendering and event model create tracking gaps that catch teams off guard, especially around purchase events and the dataLayer. Here's what to watch for and how to work around it.
wixga4gtmRead the post
- 6 min read
WooCommerce conversion tracking: the plugin-sprawl problem and how to fix it
WooCommerce can track anything — which is the problem. Five overlapping plugins each inject their own pixel, you get double-counted purchases and conflicting GA4 events, and nobody knows which one is authoritative. Here's how to untangle it.
woocommercewordpressecommerceRead the post
- 5 min read
Google Signals sunset: what changed on June 15, 2026 (and what to do)
On June 15, 2026 Google Signals stopped acting as the ad-data co-controller in GA4. If you built remarketing audiences or cross-device reporting on it, the ground moved — and Google sent no dashboard alert when it did.
google-signalsconsent-mode-v2ga4Read the post
- 5 min read
GA4 renamed Conversions to Key Events — what breaks and what doesn't
Google renamed GA4 "Conversions" to "Key events," and the API surface followed: the Admin API resource moved from conversionEvents to keyEvents. If you have scripts or dashboards reading GA4, some of them are about to return nothing.
ga4key-eventsreportingRead the post
- 6 min read
Server-side conversion tracking in 2026: Measurement Protocol vs Data Manager API vs CAPI
"Server-side tracking" now covers three different things, and teams routinely pick the wrong one. A plain-English map of GA4 Measurement Protocol, Google's Data Manager API, and platform CAPIs — and when each is right.
server-side-taggingdata-manager-apimeasurement-protocolRead the post
- 5 min read
Why your Google Ads conversions don't match GA4 (and how to reconcile them)
"Google Ads says 240 conversions, GA4 says 190 — which is right?" Both, sort of. The mismatch is expected; the SIZE of the gap tells you whether it's a methodology difference or a tracking bug.
google-adsga4attributionRead the post
- 6 min read
Consent Mode v2 on Shopify: what actually works in 2026
Most Shopify sites we audit fail Consent Mode v2. The configuration is fiddly, the consent banner apps disagree about which TCF signal to send, and the docs hide the part that matters. Here's the path that actually works.
shopifyconsent-mode-v2gdprRead the post
- 5 min read
Why most GTM containers are quietly broken (and the 4-step fix)
The median audited site scores 49 out of 100, and 95% fail Consent Mode v2. Here is what actually breaks in a GTM container, why nobody notices, and the four checks that catch it.
gtmtracking-qualitymonitoringRead the post
- 5 min read
What is Google Tag Manager, really? A plain-English intro
If you've been told you "need Google Tag Manager" but nobody explained what it actually is, here is the honest version — no jargon, no 40-minute video. Tags, triggers, variables, and the dataLayer in one read.
gtmbasicsgetting-startedRead the post
- 6 min read
The GA4 events model, explained for people who aren't analysts
GA4 confuses everyone coming from Universal Analytics because it threw out the old model entirely. Events, parameters, custom dimensions, and key events — the whole thing in one read.
ga4basicseventsRead the post
- 6 min read
Meta Pixel vs Conversions API: what each does and why you need both
"Do I need the Meta Pixel or the Conversions API?" The honest 2026 answer is both — the Pixel for browser context, CAPI to survive ad blockers and iOS. Here is exactly what each does and the event_id trap that breaks setups.
meta-pixelmeta-capiattributionRead the post
- 7 min read
What a tracking audit actually checks (all 13, explained)
TagEasy's free auditor grades any URL out of 100 across 13 checks. Here is what each one looks for and why it matters — so the score means something to you, not just to us.
tracking-qualityauditingbasicsRead the post