Skip to content
UTM Naming Conventions & Best Practices (+ Template)
SEO & Marketing11 min read

UTM Naming Conventions & Best Practices (+ Template)

Scult Team
11 min read

Keep your analytics clean with these UTM naming conventions and best practices. Includes a copy-paste template.

The one rule behind every UTM best practice: be consistent. Facebook, facebook, and FB become three separate, disconnected sources in GA4, silently splitting what should be one channel's data into fragments no report can reassemble. Adopt a naming convention, document it once, and build every link the same way — that single habit prevents the overwhelming majority of UTM tracking problems before they start. Here's the complete playbook.

Why Consistency Matters More Than Any Individual Rule

Analytics platforms treat UTM values as exact strings, not as concepts they're smart enough to group together. GA4 has no way of knowing that Email, email, and E-mail are meant to represent the same channel — to the system, they're three distinct values, and your "email performance" report silently becomes three separate, incomplete rows instead of one accurate one. This is the single most common reason UTM tracking data looks messier than it should: not a tool limitation, but a lack of an agreed convention applied consistently across everyone who builds a tagged link.

Why Best Practices Exist: The Cost of Skipping Them

Every rule in this guide traces back to a specific, observable failure mode in real analytics data. Skip the lowercase rule, and your Traffic acquisition report shows the same channel three or four different ways instead of once. Skip fixed source/medium values, and paid and organic traffic blur together in ways that make budget decisions genuinely harder to justify. Skip documentation, and every new person who joins your marketing team reinvents the wheel slightly differently, compounding the mess with each new campaign. None of these rules exist for their own sake — each one is a direct, practical fix for a failure mode that plays out in real reports, over and over, for teams that skip them.

The Core Naming Rules

  • Always lowercase. GA4 is case-sensitive, so Email and email are different values. Lowercase everything, without exception, so there's never a judgment call to get wrong.
  • No spaces — use hyphens instead. Spaces in a URL get encoded as %20, which is both ugly and error-prone if a link gets copy-pasted or re-typed. Use diwali-sale instead of Diwali Sale.
  • Fixed source and medium values. Never improvise a new source or medium value on the fly — pick from a documented, agreed list (see the table below) so the same channel always produces the same value.
  • Descriptive, dated campaign names. A pattern like campaign-name-year (diwali-sale-2026, spring-launch-2026) keeps campaigns distinguishable from each other and from next year's version of the same promotion.
  • Never tag internal links. UTM parameters on links between your own pages overwrite the visitor's real original source every time they click around your site — UTMs are for tracking traffic arriving from outside, not internal navigation.
  • One medium per traffic type, always. Don't let cpc, ppc, and paid all mean the same thing across different campaigns — pick exactly one and use it everywhere that traffic type appears.

Extending Your Convention as Channels Change

Marketing channels aren't static — new platforms emerge, campaign types evolve, and a naming convention built for last year's channel mix can genuinely fall short of covering a new one (a newly launched WhatsApp Channels feature, a new ad platform your team starts testing). Treat the convention document as a living reference that gets a new row added whenever a genuinely new, recurring channel enters your mix — not a one-time document written once and never revisited. The alternative — improvising a one-off value for a new channel without updating the shared document — is exactly how the drift this entire guide is trying to prevent gets reintroduced.

Standard Source and Medium Values

Channel utm_source utm_medium
Google Ads google cpc
Meta ads (Facebook/Instagram) facebook or instagram paid-social
Organic social posts facebook / instagram / linkedin social
Email newsletter newsletter email
Affiliate or partner links (partner's name) referral
SMS / WhatsApp campaigns whatsapp or sms social or referral

Treat this table as your team's single source of truth — printed, pinned, or kept in a shared document everyone building a link references, rather than something each person reinvents from memory.

What Belongs in Your utm_campaign Value vs. What Doesn't

A well-formed campaign name captures the specific promotion or initiative, not the channel it ran on — channel information belongs in source and medium, not duplicated into the campaign name too. Avoid diwali-sale-facebook-2026, since the channel is redundant there (source and medium already capture it); prefer diwali-sale-2026 used consistently across every channel the same promotion runs on, letting source and medium do the job of distinguishing channels. This keeps campaign-level reporting clean — grouping by campaign name shows you a promotion's total performance across all channels at once, which the redundant, channel-specific naming pattern actively works against.

Handling Seasonal or Recurring Campaigns

For promotions that repeat every year (a Diwali sale, a New Year offer, an annual product launch), resist the temptation to reuse the exact same campaign name across years — diwali-sale without a year becomes ambiguous the moment you're comparing this year's performance to last year's in the same report. The campaign-name-year pattern exists specifically to solve this: diwali-sale-2025 and diwali-sale-2026 stay distinguishable in your historical data indefinitely, letting you build genuine year-over-year comparisons rather than a single blended, unclear bucket.

Handling Edge Cases Your Basic Convention Doesn't Cover

Real campaigns eventually surface situations a simple source/medium table doesn't neatly answer — a co-branded campaign with a partner brand, a link shared by an unpaid brand ambassador, a QR code printed on physical packaging. For each, extend your convention deliberately rather than improvising in the moment: a co-branded campaign might use source=partnername with medium=referral; an unpaid ambassador post might use source=ambassadorname with medium=social; a QR code on packaging might use source=packaging with medium=offline or qr. The specific values matter less than deciding them once, in advance, and adding them to your shared document so the next person facing the same edge case doesn't have to improvise independently.

Building a Shared Team Workflow

The rules above only hold if everyone building a tagged link actually follows them — which means documentation, not just good intentions. Keep a shared sheet or document listing your approved source/medium values, your campaign naming pattern, and a few worked examples, and make it the mandatory reference before anyone builds a new link. Teams that skip this step tend to drift back into inconsistency within a few campaigns, simply because memory alone doesn't scale across multiple people building links independently over months.

Reviewing and Refreshing Your Convention Periodically

Even a well-documented convention benefits from a scheduled review — quarterly or twice a year — rather than being written once and never revisited. Use the review to check for new channels that need a documented value, source/medium pairs nobody's used in months that might be worth retiring from the active list, and any drift that's crept in despite the documentation (a quick check of your actual GA4 source/medium report against the documented table catches this directly). Treating this as a recurring calendar item, not a one-time setup task, is what keeps a convention useful for years instead of becoming outdated within one.

Common Mistakes This Prevents

Following these conventions directly prevents the most frequent UTM failures: split data from inconsistent casing, misattributed traffic from inconsistent medium values (cpc vs ppc vs paid), and unreadable reports from undocumented, one-off campaign names nobody remembers the meaning of six months later. See 9 UTM mistakes that break your analytics for the complete list, with the specific fix for each one.

Build Every Link the Same Way

The most reliable way to actually follow these conventions — rather than just intend to — is to remove manual typing from the process entirely. Use the free UTM Builder so formatting, lowercase, and hyphenation are consistent by default rather than dependent on whoever happens to be building the link that day. If you're new to UTM parameters altogether, start with what are UTM parameters for the foundational explanation first.

When to Deviate From a Standard Convention (and When Not To)

There are rare, legitimate reasons to deviate from your standard values — a genuinely novel channel your table doesn't yet cover, or a specific analytics requirement from a partner or platform integration that mandates a particular format. In those cases, add the exception to your documented table immediately, with a note explaining why, rather than treating it as a one-off nobody else needs to know about. What's never a good reason to deviate: convenience, forgetting the convention, or "this campaign felt different" — those are exactly the rationalizations that reintroduce the inconsistency this entire guide exists to prevent.

A Quick Template You Can Copy

For a new campaign, fill in this pattern and keep it consistent across every link tied to the same campaign:

utm_source=[fixed value from your table]
utm_medium=[fixed value from your table]
utm_campaign=[campaign-name-year]
utm_content=[optional: which specific link/creative]

Campaign Naming: Beyond the Basics

A dated, hyphenated campaign name (diwali-sale-2026) is the minimum bar — for teams running many campaigns simultaneously, it's worth extending the pattern to include a channel or objective marker too, such as diwali-sale-2026-awareness versus diwali-sale-2026-conversion when you're running the same promotion with different creative angles for different funnel stages. The specific pattern matters less than picking one and applying it everywhere; a documented, slightly more complex convention beats an undocumented simple one, because the undocumented one inevitably drifts as more people build links independently.

Handling UTM Parameters Across Multiple Team Members or Agencies

Consistency gets meaningfully harder once more than one person builds tagged links — an in-house marketer, a freelance social media manager, and an ad agency might each default to slightly different habits without a shared standard forcing alignment. The practical fix is treating your naming convention document as non-negotiable onboarding material for anyone touching campaign links, the same way brand guidelines are non-negotiable for anyone touching your visual identity — and using one shared tool (the UTM Builder) as the actual link-building interface everyone uses, rather than trusting everyone to type parameters correctly by hand from memory.

Auditing Your Existing UTM Tracking

If you're inheriting campaign tracking that's been running for a while without a clear convention, a quick audit is worth doing before adding more inconsistent data on top of what's already there: pull your Traffic acquisition report in GA4, sort by Session source/medium, and look for near-duplicate rows that are clearly the same channel represented differently (Facebook / paid-social next to facebook / Paid-Social, for instance). You can't retroactively merge historical data cleanly, but identifying the drift tells you exactly where your team's convention has been breaking down, which is the first step to actually fixing it going forward.

Templates as Living Documents, Not Static Files

The copy-paste template below is meant as a starting skeleton, not a permanent, unchangeable artifact — as your channel mix evolves and your team learns which distinctions matter for your specific reporting needs, revisit and refine both the template and the standard values table together, keeping them in sync so a person following the template automatically produces values consistent with the table. A template and a values table that drift out of sync with each other reintroduces exactly the kind of inconsistency this entire guide is meant to prevent.

Why a Naming Convention Pays for Itself Quickly

The time cost of establishing a convention — writing the document, agreeing on values, communicating it to everyone building links — is measured in an hour or two. The cost of not having one compounds every single campaign: more time spent reconciling near-duplicate report rows, more uncertainty about which channel actually drove results, and eventually, a dataset messy enough that stakeholders stop trusting it at all. Given how small the upfront investment is relative to the ongoing cost of skipping it, this is one of the highest-leverage, lowest-effort habits available in marketing analytics.

Frequently Asked Questions

Should UTM parameters be lowercase?

Yes, always — GA4 and most analytics tools treat different capitalizations as entirely different values, so consistent lowercase prevents your data from silently fragmenting.

What's a good UTM naming convention?

Lowercase, hyphen-separated values, a fixed and documented set of source/medium pairs, and descriptive, dated campaign names — all written down in a shared reference document everyone uses.

Can I change UTM parameters after I've already shared a link?

No — editing the parameters creates a different link entirely. Clicks that already happened keep whatever tags were live at the time; you'd need to update and redistribute a new link for future clicks to use different values.

How many UTM parameters should I use per link?

At minimum, source, medium, and campaign. Add content or term only when you genuinely need to distinguish between multiple links or keywords within the same campaign.

What's the difference between utm_medium values like cpc, ppc, and paid?

Nothing meaningfully — they're synonyms different teams happen to use. The problem isn't which one you pick; it's using more than one for the same channel, which fragments your data. Pick exactly one and standardize on it.

Who should be responsible for maintaining the UTM naming convention document?

Whoever owns marketing analytics or campaign reporting — the important part isn't the specific owner, but that one person or team is accountable for the document staying current and being the reference everyone actually checks.

How do I fix UTM tracking that's already inconsistent across past campaigns?

You generally can't clean historical data retroactively, but you can identify where the drift happened by reviewing your source/medium report for near-duplicate values, and lock in a single documented convention going forward so the problem stops compounding.

Should freelancers and agencies follow the same UTM convention as an in-house team?

Yes — anyone building a tagged link on behalf of your brand should follow the same documented convention, ideally using the same builder tool, so tracking stays consistent regardless of who actually created the link.

Is there an ideal number of words or characters for a UTM campaign name?

No fixed limit, but shorter and more scannable is better in practice — a campaign name should be recognizable at a glance in a report table, not require expanding a column to read in full.

Should I include the year in every campaign name, even one-off campaigns?

It's good practice regardless — even a campaign you think is one-off can end up repeated or referenced again later, and having the year baked in avoids ambiguity in historical reports down the line.

What's the best way to introduce a new UTM convention to a team that's already using inconsistent tagging?

Communicate the new standard clearly, provide the documented reference table, and route all future link-building through the UTM Builder so the correct format is the path of least resistance rather than something people have to remember unaided.

Does it matter if two different campaigns accidentally share the same campaign name?

Yes — it merges their data into one indistinguishable row in your reports, which is exactly why a shared, visible log of active campaign names (not just the naming rules themselves) matters once more than one person is building links independently.


Want tracking set up properly and consistently across every single channel you run? Talk to Scult's performance marketing team about it.

Want results like this?

Keep reading