UTM tags you can still read in six months
Link tagging never fails loudly — it fails as four spellings of the same campaign, discovered a quarter too late.
Open the analytics for a campaign you ran six months ago and read the campaign column slowly. Somewhere in there is spring-launch. A few rows below it, Spring_Launch. Further down, spring launch, with a space the tool has quietly turned into something ugly. And at the bottom, one row called test that somehow collected four hundred real visits. Four rows, one campaign. Nobody did anything obviously wrong on any single day, and the report is unreadable anyway.
Link tags fail this way because of when they get written. A tag is typed once, by a person in a hurry, in the last thirty seconds before a post goes out, in a different app every time — a scheduler on Monday, an ad form on Wednesday, a phone on Saturday. Nothing anywhere checks the spelling, because nothing can: any text is technically valid. And the analytics tool has no way of knowing that three strings were meant to be the same thing, so it does the only honest thing available to it and counts them separately. The mess is not a mistake anyone made. It is the natural result of free text typed by a human across six months and four surfaces.
The parameters themselves are simpler than the folklore around them. Source is where the click physically came from — the name of the place, as you would say it out loud. Medium is what kind of thing it was: an email, a social post, a paid placement. Campaign is which push it belonged to. There are two more available for the term you bid on and the specific creative, and most small products should ignore them until the day they have a real question those fields would answer. Three fields, filled the same way every time, beat five fields filled creatively.
The cost is easiest to see as arithmetic. Suppose a launch week brings nine hundred visits from four places: three hundred from the newsletter, two hundred and fifty and a hundred and fifty from two social accounts, two hundred from a paid set. Tagged consistently, that is four rows, and the paid row reads two hundred visits and six signups — a number you can actually think about. Tagged the way it really happens, those four places produce eleven rows, because the newsletter got tagged two ways and the paid set three. Now your biggest row is a hundred and twenty visits and four signups, and so is everything else. Every channel looks like a dud, because the correct reading of a row that small is that it has not said anything yet — which is exactly the trap that gets a working campaign killed on a number too small to mean anything.
a link tag is a note you leave for a stranger, and the stranger is you in six months.
So the scheme worth having is boring on purpose, and it fits on one line. Lowercase everything, always, because the report treats a capital letter as a different word and you will not be consistent about capitals at eleven at night. Hyphens between words, never spaces, never a mix of hyphens and underscores. A short fixed vocabulary for the source — the actual names of the places you post, written down once. Three mediums, not thirty. And a campaign name that carries its own date, so spring-launch-2026-03 is still legible next year when there has been another spring. The whole discipline is that you copy the tag from somewhere rather than retyping it from memory: one pinned note, one spreadsheet row per campaign, one place you go before any link goes out.
A few things should never be tagged at all, and these do quiet damage. Do not tag links between your own pages — a tagged internal link tells the analytics that a fresh visit just began from that source, which erases the credit for whatever actually brought the person in and inflates the channel you tagged. Do not put anything personal in a link: an email address, a name, an account number. Those parameters get stored, exported, shared in screenshots and passed onward with the link, and a link is the last place you want a person's details to live. And resist inventing a new medium for every experiment, because a vocabulary that grows every week is the same as no vocabulary.
It is also worth being clear about what a tag can and cannot know, so you do not ask more of the column than it can pay. A tag records the click it was attached to, which means it credits the last thing someone tapped and nothing before it. A person who watched a video on Tuesday, thought about it for a day, then typed your name into a search bar shows up as a search visit, and the video that did the actual work shows up as nothing at all. This is the same gap that makes ten thousand views and ninety visits both true numbers about the same day. Tags are labels for traffic, not a full account of why anyone came. Use them to keep your rows tidy, not to settle arguments about which channel deserves the credit.
This is roughly the shape we build toward. Traffic from the analytics you connect lands on the same screen as revenue and signups, so a campaign quietly splitting into four rows is something you notice on an ordinary morning rather than in a quarterly cleanup — the same reason one honest room beats nine dashboards you check when you remember. Campaigns drafted here arrive paused and spend nothing until you start them, and that quiet minute before starting is the cheapest moment there will ever be to read the link once, out loud, and fix the spelling.
Here is the test, and it is the only one that matters: could a version of you who has completely forgotten this week open the report in six months and know what every row was? If yes, your tags are good enough, no matter how plain they look. If no, no amount of extra fields will save it — the problem was never the tagging, it was that you wrote each one from scratch.