ARTICLE

Your tracking plan is a product spec

Web Analytics

Most tracking gets built the way you would never build a product: as an afterthought, at the end, by whoever has time. The site is nearly done, launch is looming, and someone remembers analytics. Tags get bolted on in a hurry. Six months later the data is a mess, nobody trusts the dashboard, and the post-mortem blames the tool. The tool was fine. The process was backwards.

A tracking plan deserves the same rigour as a product specification, because that is what it is. It defines what you will collect, what each event means, and what shape the data takes. Get it wrong and everything downstream, from dashboards to attribution to tests, inherits the error. You cannot analyse your way out of data that was broken at collection.

Start with the order of operations. A measurement plan comes before implementation, and it starts from questions, not tags. What does the business actually need to know? Which user actions answer those questions? Only once you have mapped questions to events to parameters do you touch a tag. Skip that step and you end up instrumenting whatever is easy to instrument, then discovering the numbers you needed were never captured. Collecting more is not the same as collecting the right things.

The dataLayer is where this becomes a contract. When a developer knows exactly which event fires on which action, with which parameters and what naming, tracking becomes predictable instead of a guessing game between whoever built the site and whoever reads the data. Write the dataLayer specification like an API contract, because for your analytics, that is what it is. Both sides agree on the interface. When the interface holds, the data holds.

Naming is where discipline pays off later. It looks trivial in the moment: call the event whatever, ship it. But an event named on a whim, inconsistently across pages, is the seed of the mess you will curse in a year. "purchase" here, "Purchase" there, "buy_complete" on the third template, and now every report needs a workaround. Conventions are boring, and they are the difference between data that stays usable and data that quietly rots. Decide the rules once, apply them everywhere, write them down.

Then there is QA, the step that separates a plan from a hope. A tag that exists is not a tag that works. Before launch, every event should be verified firing correctly: the right trigger, the right parameters, no duplicates, consent handled properly. Preview mode and debug tools exist for exactly this. Ten minutes of checking before go-live saves weeks of forensic work explaining why two systems disagree after the fact.

The reward for all this is not elegance for its own sake. It is trust. When the plan is designed up front, documented, and QA’d, the dashboards become something a team actually uses to decide, instead of exports people quietly ignore because the numbers never quite add up. That trust is the whole point of the function, and it is built in the plan, not in the report.

So treat the tracking plan like a spec. Design it before you build. Version it. Enforce the naming. QA it before launch. It is unglamorous work, and it is the foundation everything else stands on. A dashboard is only ever as trustworthy as the plan beneath it.

15

Share It

El Mahdi Khiyat

Digital analyst who reads the data, shapes the experience, and builds the page that answers it.

PARIS · GMT+1

© 2026 El Mahdi Khiyat. All rights reserved.

I care about the person behind the click.