Skip to content
YAS.SH
Analytics

UTM Naming Convention: The System That Keeps Analytics Clean

A copy-paste taxonomy for utm_source/medium/campaign that survives team handoffs.

mohamed-elsaadouni7 min readutmanalyticsmarketing
UTM Naming Convention: The System That Keeps Analytics Clean
Featured imageUTM Naming Convention: The System That Keeps Analytics Clean

UTM Naming Convention: The System That Keeps Analytics Clean

If you've been running campaigns for more than a few weeks, you've seen it: a dashboard where utm_source contains Newsletter, newsletter, NL, email-news, and newsletter-july — all meaning the same thing. Every person on the team invented their own shorthand, and now the "source" report is unusable without a spreadsheet decoder.

The fix is not a better tool. It's a naming convention — a single, written, enforced system that everyone copies. This guide gives you that system: the exact value tables, the rules that keep it consistent, and how to enforce it with automation so it survives team handoffs and turnover.

Why a convention actually matters

UTM parameters are just labels, but they power the decisions that spend money. When your labels are inconsistent, you get four concrete problems:

  1. Split attribution. The same email program shows up as three "sources," so it looks like none of them is performing — and you cut a channel that was actually your best.
  2. Noise in every report. Every slice by source/medium/campaign gets inflated with near-duplicate rows.
  3. Broken filtering. You can't write a reliable segment or exclude a bot pattern when the same value has five spellings.
  4. Rework. Someone eventually has to clean it up in the BI layer, which is a tax on every future report.

A convention is cheap to write and it pays back on the very first real report.

The core rule: lowercase, no spaces, use hyphens

The single most important rule — the one that prevents 80% of the mess — is:

All values are lowercase, use hyphens between words, and never contain spaces, underscores, or punctuation.

  • utm_source=newsletter
  • utm_source=facebook
  • utm_source=Newsletter
  • utm_source=email_news
  • utm_source=newsletter-july-2026 (put the date in the campaign, not the source)

Lowercase matters because Google Analytics (and most platforms) treat values as case-sensitive. Newsletter and newsletter are two different rows. Standardizing on lowercase means one row per real source.

The standard value tables

Here is the exact vocabulary to standardize on. These are the values your team should treat as the only allowed inputs.

utm_source — the platform or publisher

newsletter        (your own email list)
facebook          (any Meta placement)
instagram
linkedin
twitter           (X)
google
bing
youtube
tiktok
podcast
sms               (text campaigns)
whatsapp
qr                (printed or displayed QR codes)
print             (offline, non-QR print)
event             (in-person events)
partner           (affiliate or partner sites)
direct            (typed or bookmarked, rarely used with UTM)

utm_medium — the channel type

email       (owned email, incl. newsletters + lifecycle)
social      (any social platform)
cpc         (paid search / paid clicks)
organic     (unpaid search)
referral    (links from other sites)
qr          (scanned codes)
sms         (text)
display     (paid display / banner)
push        (browser or app push)
offline     (print, event, physical)

The clean separation is: source = where it is, medium = what kind of channel it is. utm_source=facebook&utm_medium=social reads naturally, and it lets you report by medium (all social) or by source (Facebook specifically) without guessing.

utm_campaign — the campaign name

Campaigns should be snake-kebab, lowercase, and specific but short. A strong pattern that survives handoffs:

{product-or-initiative}-{goal}-{period}

Examples:

august-digest            (the recurring monthly newsletter)
spring-sale-2026         (a seasonal promo)
ebook-link-rotting       (a content-gating campaign)
feature-launch-2fa       (product launch)

Do not put the date, the source, or the medium in the campaign name — that data lives in the other parameters. The campaign is the what, not the where or the when.

utm_content and utm_term

Use these sparingly — they're the most commonly abused fields.

  • utm_content differentiates versions within a campaign: header-banner, sidebar, cta-blue, hero. Use it for A/B tests or multiple placements.
  • utm_term is for the keyword or search term in paid campaigns. For most organic and owned channels, leave it empty. An empty value is cleaner than a made-up one.

Building a URL correctly

If you're assembling UTM URLs by hand, you'll make typos. Use a builder — either yas.sh's UTM Builder, or build them into your short links so the parameters are applied once and reused.

When you create a short link for a campaign, apply the UTM parameters once at the destination, then share the short URL everywhere. That way:

  • Every click on the short link carries the same clean parameters (no drift).
  • You can change the destination without changing the tracking.
  • Reports stay tidy because there's exactly one row per source/medium/campaign.

Example of a correct, complete campaign URL:

https://example.com/blog?utm_source=newsletter&utm_medium=email&utm_campaign=august-digest&utm_content=feature-link

Enforcing the convention (so it survives)

A convention that lives only in a Google Doc is a convention that gets ignored after two weeks. Enforce it in the tooling:

  1. Use a builder with fixed dropdowns. If people type free-form, they'll invent values. A builder that only offers newsletter, facebook, etc. removes the choice and the error.
  2. Validate on ingest. If you import campaign URLs from spreadsheets or a CRM, run a check that flags any utm_source/utm_medium value not on the allowlist. Reject or quarantine rows that don't match.
  3. Review once a quarter. Report on the number of distinct utm_source values. If it keeps growing, your enforcement is leaking — tighten the dropdowns.
  4. Name one owner. Attribution is nobody's job when it's everyone's. Assign a single person (usually the analytics or marketing-ops owner) who owns the vocabulary table and can approve new values.

Common mistakes (and how to avoid them)

Mistake Example Fix
Mixed case utm_source=Newsletter lowercase rule
Spaces / underscores email_news hyphens only
Date in source newsletter-july date goes in campaign
Redundant campaign campaign=newsletter-july-email-sale campaign = what, not where/when
Overusing utm_term inventing keywords for organic leave empty
Hand-typing URLs typos and drift use a builder + short links

The takeaway

UTM tracking is free and powerful, but it only stays powerful if the labels stay consistent. Adopt the three rules — lowercase, hyphens, source/medium separation — put the values in a builder, and enforce them in your tooling. Do that and your attribution reports will be readable for years, even as your team changes.

If you build your campaigns through short links, apply the parameters once and reuse the link everywhere. That single habit is the difference between a clean dashboard and a spreadsheet-decoder situation.

The parameters and their roles

A naming convention starts by fixing what the parameters mean so everyone uses them the same way. The core set is usually four:

  • utm_source — where the traffic came from (e.g. newsletter, facebook, google).
  • utm_medium — the channel type (e.g. email, social, cpc, organic).
  • utm_campaign — the specific marketing effort (e.g. spring-sale).
  • utm_content — the specific link within a campaign, used for A/B variants (e.g. header-banner, cta-a).

Deciding each parameter's allowed values and casing in advance is what keeps the convention from fragmenting. A value that is lowercase, single-word, and documented means two people tagging the same campaign produce identical parameters; without the decision, they produce newsletter and Newsletter as two rows.

The structure of a good campaign name

The campaign name is the backbone of the convention, so give it a consistent structure. A common pattern encodes the key dimensions in a readable order — for example, channel-campaign-<variant> or campaign_region_channel — so that reading the name tells you what it represents and so it sorts and filters cleanly in the analytics tool. The structure should be documented and short enough to remain readable. This mirrors the short-code slug and folder naming disciplines: a consistent, readable name is an analytical asset, and a drifting, ad-hoc one is a liability.

How the convention keeps analytics clean

The payoff of a naming convention is clean, decision-ready analytics. When every parameter follows the agreed scheme, the analytics tool groups traffic into consistent rows, so reports are comparable across campaigns and over time. This is what makes campaign attribution and conversion tracking trustworthy — the numbers you compare were produced by the same rules. The convention is the quiet mechanism that keeps the whole reporting stack honest.

Keeping the convention alive

A convention drifts unless it is maintained. Document it in a shared reference, apply it through a link builder that pre-fills the scheme, review the analytics periodically for unexpected variations, and correct new ones before they spread. Like the UTM campaign guide, the discipline is deciding once and enforcing consistently. A maintained convention is what turns tagging from a source of noise into the foundation of trustworthy attribution.

Frequently asked questions

Should UTM parameters be lowercase?

Yes. GA4 and most analytics platforms are case-sensitive, so 'Newsletter' and 'newsletter' become two rows. Normalize to lowercase everywhere — including in your CRM imports.

What's the difference between utm_source and utm_medium?

utm_source is the platform or publisher (facebook, newsletter). utm_medium is the channel type (cpc, email, social). A common convention is source=platform, medium=channel.

Can UTM parameters hurt SEO?

No, if handled correctly. Analytics tools strip UTM before sending URLs to crawlers, and canonical tags prevent duplicate-content issues. The risk is mostly messy, duplicated rows in your reports.

Was this helpful? Share
Ask YAS AI
🍪 Cookies & privacy. Essential cookies keep you signed in and remember language and theme. Google AdSense and reCAPTCHA are Google technologies: AdSense runs only after Accept All; reCAPTCHA loads on sign-in and contact forms. See how Google uses data: https://policies.google.com/technologies/partner-sites cookie policy · privacy policy.
Settings