A free, plug-and-play UTM tracking system. Naming rules, a link builder, and a governed link library so your campaign data stays clean.
Stop losing campaigns to "Direct / None." This template gives your whole team one UTM taxonomy, one link builder, and one set of naming rules, so every link is tagged consistently and every channel gets the credit it earned.
Most of your "Direct" traffic is not direct. It is untagged.
That LinkedIn post that drove signups? Direct. The email campaign that closed a deal? Direct. The paid ad you spent real budget on? Direct. Every link that goes out without UTM parameters, or with inconsistent ones, dumps its credit into a black hole called "Direct / None."
The result is a reporting blind spot. You keep funding channels you cannot prove work and starving the ones that quietly do.
The fix is not more tools. It is one shared system: a fixed taxonomy everyone uses, a builder that enforces it, and a library so nobody reinvents a tag.
- Defines a UTM taxonomy: a fixed, approved set of
utm_sourceandutm_mediumvalues so "linkedin," "LinkedIn," and "li_paid" never split into three channels in your reports - Provides a UTM link builder with a live formula that assembles a clean, validated tracking URL from dropdowns
- Enforces a campaign naming convention so every campaign tag is consistent and readable
- Keeps a governed link library so every tracking link your team uses is in one place, versioned and reusable
- Runs live validation that flags a broken or malformed link before it ships
Anyone who runs marketing campaigns and needs the data to be trustworthy:
- Marketing and growth teams who want clean attribution
- Marketing operations and RevOps teams standardizing how the org tags links
- Agencies managing tracking across multiple clients
- Founders and small teams who want discipline without heavy tooling
It works with Google Analytics 4, any analytics platform that reads UTM parameters, and any CRM that captures them.
| Tab | What it covers |
|---|---|
| Start Here | The concept, why it matters, and how to use the workbook |
| UTM Taxonomy | The approved source and medium values and the campaign naming convention |
| UTM Builder | A live link builder with dropdowns and validation |
| Link Library | A governed, versioned record of every tracking link in use |
| Rules & Policy | The governance rules that keep the system consistent |
| About | About the template and author |
Every key cell carries a comment with guidance. Yellow cells are inputs; the rest calculates.
- Set your taxonomy. Open the UTM Taxonomy tab. Confirm the approved
utm_sourceandutm_mediumvalues match your channels. Edit them once, here, for the whole team. - Adopt the naming convention. Use the campaign convention (for example
product-geo-quarter-year) so every campaign tag reads the same way. - Build links in the builder. Pick source and medium from the dropdowns, enter the campaign, and copy the auto-built, validated URL. Thirty seconds per link.
- Log every link in the library. Keep the governed record so nobody rebuilds a tag from scratch or invents a conflicting one.
- Enforce the rules. Share the Rules & Policy tab. The taxonomy only works if everyone uses it.
Ad-hoc tagging fails quietly. One person writes utm_source=linkedin, another writes LinkedIn, a third writes li. Analytics treats them as three separate sources. Your channel reports fragment, and no single number is trustworthy.
A taxonomy enforces one truth: fixed values, a shared naming convention, and validation that catches errors before they ship. The payoff shows up in every pipeline review, when every campaign traces cleanly to a real source, medium, and campaign, with no "Direct" mystery and no credit fights between teams.
What is a UTM taxonomy?
A UTM taxonomy is a documented, agreed set of rules for how your team tags links: which utm_source and utm_medium values are allowed, and how campaign names are structured. It keeps tracking consistent so your analytics stay clean.
Why is so much of my traffic showing as "Direct"? Usually because links are going out untagged, or because referrers are stripped (common with dark social, apps, and email). Tagging every outbound link with UTMs is the fix this template enforces.
Does this work with GA4? Yes. UTM parameters are read by Google Analytics 4 and almost every analytics and CRM platform. This template just makes sure the parameters you send are consistent.
Can I use this in Google Sheets instead of Excel? Yes. The template works in Excel or Google Sheets. The builder formula and dropdowns work in both.
Do I have to use the suggested naming convention? No. The convention is a starting point. The important thing is that everyone on your team uses the same one. Edit it once in the taxonomy tab and the whole team follows it.
This is one of a free, open series of marketing operations templates covering attribution, lead scoring, campaign governance, SEO, and revenue reporting. Each is plug-and-play and free to use and adapt.
Improvements welcome: additional source/medium values, platform-specific notes, or naming-convention variations for different team structures. Open an issue or submit a pull request.
Avik Bal is a digital growth strategist and marketing operations practitioner working with B2B software companies.
- LinkedIn: linkedin.com/in/avikbal
- GitHub: github.com/avikbal
Free to use, adapt, and share for any commercial or non-commercial purpose. Attribution appreciated but not required. If you redistribute a modified version, please do not claim original authorship.