DecisaBlog
Back to blog
Tracking7 min read

UTM Tracking Done Right: Parameters, Naming, and the Mistakes That Kill Attribution

The 5 UTM parameters, a naming taxonomy that survives growth, and the silent mistakes — casing, missing sources, internal links — that destroy attribution.

By Decisa Team ·

Open your campaign report and look at the source column. If you see facebook, Facebook, and FB listed as three separate channels, your attribution is already broken — and it broke months ago, one inconsistent link at a time. Every report you have run since then has split one channel's performance across three rows and understated all of them.

UTM tracking is the cheapest attribution infrastructure that exists: five query parameters and some discipline. This post covers what each parameter is actually for, a naming taxonomy that still works when you go from 10 links to 1,000, the mistakes that silently corrupt your data, and how short links keep the whole system manageable.

The Five Parameters and What Each One Answers

UTM parameters are plain query strings appended to a URL. Analytics tools — and attribution systems like Decisa — read them on the landing page and stamp them onto the visit. Each parameter answers exactly one question (Google's reference on custom campaign URLs):

ParameterQuestion it answersExample
utm_sourceWhere did the click come from?google, meta, newsletter
utm_mediumWhat kind of traffic is it?cpc, email, social, affiliate
utm_campaignWhich initiative paid for it?summer-sale-2026
utm_termWhich keyword or audience?running-shoes, lookalike-buyers
utm_contentWhich ad or link variant?video-15s-a, footer-cta

The first three are mandatory on every tagged link. utm_term and utm_content are optional but earn their keep the moment you run more than one ad per campaign — without utm_content, every creative test you run is invisible in your own data.

The hierarchy matters: source and medium describe the channel, campaign describes the initiative, term and content describe the variant. Putting campaign names in utm_source or ad names in utm_campaign collapses that hierarchy and makes channel-level reporting impossible.

A Naming Taxonomy That Survives Growth

Anyone can tag five links. The problem starts at fifty, when three people are creating links and each one invents their own spelling. A taxonomy is a small set of rules that makes every link self-consistent no matter who created it:

  1. Lowercase everything. UTM values are case-sensitive in most analytics tools. Meta and meta become two different sources. Lowercase is the one rule that eliminates an entire class of fragmentation by itself.
  2. Hyphens inside values, never spaces. Spaces get URL-encoded into %20 or + depending on what built the link, producing values like summer%20sale next to summer+sale next to summer sale. Pick hyphens (summer-sale) and the problem disappears.
  3. A fixed vocabulary for source and medium. Maintain a short approved list: google, meta, tiktok, newsletter for sources; cpc, email, social, affiliate, referral for mediums. New values require a deliberate decision, not a typo.
  4. A structured pattern for campaign names. Something like {goal}-{audience}-{yyyymm} — for example launch-lookalike-202606. The exact pattern matters less than having one: structured names sort chronologically, filter cleanly, and remain readable a year later.
  5. Write it down. A one-page document — or a UTM builder that enforces the rules — beats a convention that lives in one person's head. Conventions that are not enforced at link-creation time decay; that is not pessimism, it is what happens every time a new hire builds their first link by copying an old one.

The test of a good taxonomy: someone who joined the team yesterday can read meta / cpc / launch-lookalike-202606 / video-15s-a and know exactly what was running, where, and for whom — without asking anyone.

The Mistakes That Silently Destroy Attribution

These are the failure modes that do not throw errors. The links work, the pages load, and the data quietly rots.

  • Inconsistent casing and spelling. The facebook / Facebook / fb problem from the intro. As an illustration of the math: if one channel's 100 conversions get split into rows of 60, 25, and 15, every row looks mediocre and the channel looks weak — you may cut budget from your best performer because no single row of it looked good.
  • Missing UTMs on paid traffic. A paid click that lands without utm_source falls back to whatever your analytics infers — often direct or generic referral. You paid for that click, and your report files it under "free." Auto-tagging (gclid, fbclid) softens this for platforms that support it, but UTMs are the layer you control, consistent across every platform, and the only one that survives when a click ID gets stripped.
  • UTMs on internal links. This is the most destructive one. UTM parameters on a link within your own site — a homepage banner pointing to /sale?utm_source=homepage — restart the session attribution in most analytics tools. The visitor who arrived from a paid ad becomes a "homepage" visitor mid-session, and the ad loses credit for everything that follows, including the purchase. UTMs are for inbound traffic only. For internal click tracking, use your analytics tool's event tracking instead.
  • Tagging by hand, every time. Hand-typed UTMs are where typos are born. Every link built from scratch in a URL bar is a roll of the dice; every link built by a tool that enforces your vocabulary is a guaranteed-consistent row in next quarter's report.

None of these mistakes break anything visibly. That is exactly why they survive for months.

A fully tagged URL is long, ugly, and fragile:

https://store.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=summer-sale-2026&utm_content=footer-cta

Paste that into a WhatsApp message, a bio link, or a printed QR code and two things happen: it looks like spam, and sooner or later someone truncates or retypes it and the parameters die. Short links fix both:

  • One canonical link per placement. dcsa.li/summer-footer carries the full UTM set on redirect. The parameters are defined once, correctly, and can never be mistyped at the point of use.
  • Editable destinations. If the landing page changes, you update the short link's target. The link in the printed QR code, the old newsletter, the influencer's bio keeps working.
  • Click counts independent of the landing page. The redirect itself records the click — so you can see that a link was clicked even when the destination page failed to load its analytics.
  • An audit trail. A managed short-link system doubles as the registry of every tagged URL your team has ever created — which is the enforcement mechanism your taxonomy needs. This is exactly why Decisa builds UTM links and short links as one feature: the builder enforces the vocabulary, and the short link is what leaves the building.

Put It Into Practice This Week

  1. Audit what you have. Pull the source/medium report for the last 90 days and list every duplicate-by-spelling. That list is your cleanup map and your motivation.
  2. Write the one-pager. Approved sources, approved mediums, the campaign-name pattern, lowercase-and-hyphens. Half a page is enough.
  3. Pick one link builder — a shared spreadsheet with validation at minimum, a proper UTM builder ideally — and make it the only way links get created.
  4. Sweep your own site for internal UTMs and delete every one of them.
  5. Tag all paid traffic explicitly, even where auto-tagging exists. Click IDs are the platform's layer; UTMs are yours.

UTM tracking is not glamorous, and that is the point: it is plumbing. But every attribution model, every ROAS report, and every budget decision downstream is built on these five little parameters. Get the plumbing boring and consistent, and everything above it gets sharper.