Your UTM Spreadsheet Is Lying to You
A UTM tracking spreadsheet documents intent. It can't enforce anything. Why every UTM spreadsheet drifts into chaos and what governance actually requires.
The spreadsheet always dies the same way
Every marketing team we talk to has been through this cycle at least once. Someone senior gets fed up with the GA4 reports, declares a UTM cleanup, and builds The Spreadsheet. Tabs for allowed sources, allowed mediums, campaign naming syntax. A row per link. Maybe conditional formatting if they're fancy.
For about six weeks, it works.
Then the new hire tags a campaign without reading it. An agency partner uses their own conventions because nobody sent them yours. Someone builds links directly in the Google Ads UI on a deadline. A second spreadsheet appears, "just for the product launch," and now there are two sources of truth. By month four, the spreadsheet describes maybe 60% of the links actually in the wild, and the reports are drifting back to the mess that started everything.
Sound familiar? It should. We've watched this happen at two-person startups and at companies with entire marketing ops teams. The size doesn't matter because the failure isn't about effort.
Documentation isn't governance
Here's the core problem: a spreadsheet documents intent. It cannot enforce anything.
Nothing stops a wrong value from entering the world. The spreadsheet says utm_source must be "facebook," and someone ships "FB-paid" anyway, and the spreadsheet just sits there. It has no opinion. It finds out about violations the same way you do, weeks later, in a broken report.
Compare that to how engineering teams handle conventions. Nobody documents "please indent with two spaces" in a wiki and hopes. They put a linter in the build. Wrong format, build fails, fix it now. The convention enforces itself at the moment of creation, not at the monthly review.
UTM governance means bringing that same enforcement to link creation. The convention needs to live inside the tool that builds the links, where it can actually say no.
What enforcement looks like
Four properties separate governance from documentation. Real enforcement is:
Constrained at input. Link builders offer dropdowns of approved values, not free-text fields. You can't type "FB-paid" because "FB-paid" is not on the menu. Typos become impossible rather than discouraged. This single change eliminates the majority of UTM chaos, and it's why we made curated dropdowns the default in Attri rather than an option.
Owned. One named person controls the taxonomy. Adding a new utm_medium is a decision they make, not a thing that happens. Without an owner, values accumulate like browser tabs.
Auditable. You can list every link created last quarter and see who made it, with what values. Drift gets caught in days. With a spreadsheet, drift gets caught when a quarterly report looks wrong, which is months of dirty data too late.
Inescapable. The governed path has to be the easy path. If your official builder is slower than typing parameters by hand, people will type parameters by hand. Deadlines beat policies every single time. Make compliance faster than violation and the policy enforces itself.
The agency multiplier
Running campaigns through agencies? Multiply everything above. External partners never absorb conventions from a shared Google Sheet. They have six other clients, each with their own spreadsheet they're also ignoring.
The only thing that works is giving partners access to your link builder with your conventions baked in. They build links inside your guardrails, and their output comes out indistinguishable from your in-house team's. We've seen this single change end year-long convention wars between agencies and clients. One workspace per client also keeps their data walls clean, which is how we set up agencies on Attri.
Keep the spreadsheet, demote it
The spreadsheet isn't useless. It's a fine place to draft your taxonomy, argue about it, and record why decisions got made. Planning artifact, yes.
Runtime system, no. The moment the taxonomy is settled, it belongs inside tooling that enforces it. Our naming conventions guide covers what the taxonomy itself should look like. Whatever you settle on matters less than making it impossible to deviate from.
Clean data is a workflow property, not a discipline property. Teams with clean UTMs aren't more careful than you. They've just removed carefulness from the equation.