Muro is live on RocketHub.Get the deal →
·9 min read·Updated November 2, 2026

Free UTM builder, plus a naming system your team will actually follow

Good UTM naming comes down to a few rules: lowercase only, dashes instead of spaces, a fixed list of sources and mediums, and one campaign format like yyyy-mm-name. Most analytics tools, GA4 included, treat Facebook and facebook as different values, so one capital letter can split a channel in two. Use standard mediums like email, social, cpc and referral so GA4 sorts traffic into the right default channels. A free UTM builder that lowercases and cleans values for you removes most of the mistakes.

utmutm-buildercampaign-trackingmarketingtools
Cover graphic for UTM naming conventions, showing a messy tagged link with mixed case and spaces next to a clean lowercase version, plus four rules: lowercase only, dashes not spaces, a fixed source list, and a campaign format of year, month and name

Short answer: a UTM naming convention is a short set of rules everyone on the team follows when tagging links: lowercase only, dashes instead of spaces, a fixed list of sources and mediums, and one campaign format such as 2026-11-launch. It matters because most analytics tools treat Facebook and facebook as two different sources. Below is a cheat sheet you can copy, and a free UTM builder that applies the rules for you.

Most UTM problems aren't technical. The links work. The trouble shows up three weeks later, when your campaign report has LinkedIn, linkedin, li and linkedin.com as four separate rows and nobody can say which one is right.

I wrote about the other side of this in UTM links are a mess, here's a simpler way to track the links you share, which is about when to skip UTMs and use a short link instead. This post is for when you do want UTMs, and want them to stay clean once more than one person is tagging links.

One disclosure: I'm Sanjeeva, and I build Muro, which includes a UTM builder in its paid product and a free one on our site. Weigh that as you read. The naming rules below work the same in any analytics tool.

What each UTM parameter is for

UTM parameters are labels you add to the end of a URL. Your analytics tool reads them when someone lands on the page and files the visit under those labels. There are five you'll use regularly.

ParameterWhat it answersExample values
utm_sourceWhere exactly did the click come from?newsletter, linkedin, google, product-hunt
utm_mediumWhat kind of channel is it?email, social, cpc, referral
utm_campaignWhich push or promotion is this part of?2026-11-black-friday, 2026-q4-webinar
utm_contentWhich variant or placement was clicked?hero-button, footer-link, video-a
utm_termWhich paid keyword? (mostly for search ads)privacy-analytics

A full tagged link looks like this:

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=2026-11-black-friday&utm_content=hero-button

Source and medium are the two people mix up most. Source is the specific place (linkedin). Medium is the category it belongs to (social). If you only remember one thing: source is "where", medium is "what kind".

GA4 also reads a few newer parameters, according to Google's help page on URL builders: utm_id (a campaign ID, useful if you import cost data), utm_source_platform, utm_creative_format and utm_marketing_tactic. Google notes the last two aren't currently reported in GA4. For most small teams, the five above are plenty.

How GA4 uses your medium values

This is where naming stops being cosmetic. GA4 sorts every visit into a default channel group (Email, Organic Social, Paid Search, Referral and so on), and for tagged links it decides mostly from your source and medium. A few rules from Google's default channel group page, simplified:

  • Email: source or medium is email (or e-mail, e_mail, e mail).
  • Organic Social: the source is a known social site, or the medium is social, social-network, social-media, sm, social network or social media.
  • Paid Search: the source is a known search site and the medium contains cp (so cpc works), is ppc or retargeting, or starts with paid.
  • Paid Social: a known social source with one of those same paid mediums.
  • Referral: medium is referral, app or link.
  • Display: medium is display, banner, expandable, interstitial or cpm.
  • Affiliates: medium is affiliate.

Google says channel definitions themselves aren't case sensitive. But the raw source and medium values in your reports are, so Email and email still show as separate rows.

The practical point: if someone tags a newsletter link with utm_medium=newsletter-blast, GA4 has no rule for that and the visit can land in Unassigned. Stick to the standard medium words and GA4 does the grouping for you.

Why naming breaks

Every team I've seen hit the same four problems.

Case. Google's GA4 help says it plainly: parameter values are case sensitive, so utm_source=google is different from utm_source=Google. Most other analytics tools behave the same way. One person capitalizes, and your Facebook traffic is now split across two rows.

Spaces. A space in a URL gets encoded as %20 or +. So utm_campaign=Black Friday might show up as Black%20Friday in one tool and Black+Friday in another, and some link tools or chat apps break the URL at the space.

Synonyms. fb, facebook, facebook.com, meta. x, twitter, tw. newsletter, email, mailchimp. All correct, all different rows.

Free-text campaigns. If the campaign field is a blank box, you get launch, Launch2, nov launch, product-launch-final. Nobody can filter that six months later.

None of these are anyone's fault. They're what happens when five people type labels by hand with no shared list.

A naming system that holds up

Here are the rules. They fit on a sticky note, which is the point.

  1. Lowercase only. Every value, every parameter. No exceptions.
  2. Dashes, not spaces or underscores. black-friday, not Black Friday or black_friday. Pick one separator and dashes are the most readable.
  3. A fixed list of sources and mediums. Nobody invents a new one without adding it to the shared list first.
  4. One campaign format: yyyy-mm-name, like 2026-11-black-friday or 2026-12-webinar-onboarding. The date prefix sorts campaigns in order and stops launch from meaning three different launches.
  5. utm_content for the variant only. Use it to tell apart two buttons in the same email or two versions of an ad: hero-button, ps-link, video-a. Leave it empty when there's only one link.
  6. utm_term only for paid search keywords. If you're not running search ads, you can ignore it.

Cheat sheet: recommended source and medium pairs

Copy this into your team wiki or a pinned doc. The GA4 column shows where the visit should land in GA4's default channels based on Google's rules above.

Where you shareutm_sourceutm_mediumExpected GA4 channel
Your newsletternewsletteremailEmail
Transactional or onboarding emailsonboarding-emailemailEmail
LinkedIn postlinkedinsocialOrganic Social
X postxsocialOrganic Social
Instagram bio or storyinstagramsocialOrganic Social
Facebook postfacebooksocialOrganic Social
YouTube descriptionyoutubesocialOrganic Social (may vary, see note)
Reddit post or commentredditsocialOrganic Social
Google search adsgooglecpcPaid Search
LinkedIn adslinkedincpcPaid Social
Meta adsfacebook or instagramcpcPaid Social
Product Hunt launchproduct-huntreferralReferral
Guest post or partner sitepartner-namereferralReferral
Affiliate linksaffiliate-nameaffiliateAffiliates
Display bannerssite-namedisplayDisplay

A few honest notes on that table:

  • Reddit: some teams tag Reddit as referral because it behaves like one. That's fine, but GA4 also matches known social sites by source, so check where Reddit lands in your own reports before relying on it. Picking social keeps it predictable.
  • YouTube: GA4 has an Organic Video channel that matches known video sites, so YouTube traffic may be grouped there instead. Either way, youtube as the source keeps it identifiable.
  • X: use one name and stick to it. I'd pick x, but twitter is fine if that's what your history already uses. Switching mid-year splits your data.
  • Only GA4 uses these channel groups. Other tools, including Muro, show your raw source, medium and campaign values. Clean names help everywhere, but the channel column is GA4-specific.

Where not to use UTMs

Internal links on your own site. Don't tag a banner on your homepage that links to your pricing page, or a link from your blog to your signup page. That visitor already came from somewhere, and the internal tag records your own site as a campaign on top of it.

How much damage that does depends on the tool. Google's GA4 vs Universal Analytics comparison says Universal Analytics started a new session whenever it saw new campaign parameters, so an internal tag split one visit in two and replaced the real source. GA4 no longer restarts the session, but the internal label still gets recorded as campaign data and can muddy your reports. Other tools handle it their own way. The safe rule for every tool: tags are for links that bring people to your site, never for links within it.

A few other places to skip them:

  • Links you want search engines to index. Link to the clean URL.
  • Paid ad platforms with auto-tagging. Google Ads auto-tagging already passes click data to GA4. Adding manual tags as well is a choice to make on purpose, not by habit.
  • Links where nobody will read the breakdown. If you won't look at it, don't build it.

The free UTM builder

To make the rules above easy to follow, we built a free UTM builder. It runs entirely in your browser, needs no account, and sends nothing anywhere.

What it does:

  • Fields for every parameter: URL, source, medium, campaign, content and term.
  • One-click presets for common sources. Pick one and it fills in the source and medium for you, so nobody has to remember whether LinkedIn is social or referral.
  • Naming cleanup. It lowercases values and swaps spaces for dashes, and warns you if a value has mixed case, so Black Friday becomes black-friday before it ever reaches a report.
  • Bulk mode. Paste one base URL, pick several sources at once, and get a list of tagged links ready to copy. Handy on launch day when the same page goes to your newsletter, LinkedIn, X and Product Hunt.
  • Recent links, kept only in your own browser's storage, so you can grab yesterday's link again. Clear your browser data and they're gone. Nothing is stored on our side.

How Muro fits

The free tool is useful on its own, whatever analytics you use. If you use Muro, two parts of the product connect to this.

Muro Links. Muro Links gives you short links on muro.ink, and its UTM builder has a live preview and saved UTM templates. Save "newsletter / email" or "linkedin / social" once, and the whole team picks from the same names instead of typing them. That's the "fixed list" rule enforced by the tool rather than by memory.

The UTM breakdown in the dashboard. Muro's dashboard has a UTM breakdown by source, medium and campaign. Once you've set up a goal, such as visiting your thank-you page, it shows conversions per campaign, so you can compare 2026-11-black-friday against 2026-11-webinar on signups, not just visits. If you want to go further with that comparison, I wrote about which traffic source converts best.

To be clear about the limits: UTM data lives in the dashboard. The morning brief covers visitors, pageviews, bounce rate, average session, top sources and top pages. It doesn't include campaign or conversion numbers.

Bottom line

UTMs only pay off when the names are consistent. Lowercase everything, use dashes, keep a fixed list of sources and mediums, date your campaigns, and never tag internal links. Use standard mediums like email, social, cpc and referral and GA4 will sort your traffic into the right channels.

The easiest way to follow the rules is to stop typing names by hand. Use the free UTM builder for one-off links, or save templates in Muro Links so the whole team reuses the same names. If you'd like to see conversions per campaign next to your site traffic, start a free 30-day Muro trial. No credit card needed.

Try Muro

Stop checking dashboards. Get the brief.

Muro emails your team a plain-English summary of your traffic every morning. Privacy-friendly, no cookies, about a two-minute setup.

30-day free trial. No credit card. Cancel anytime.

Frequently asked questions

Use lowercase for every value, swap spaces for dashes, and keep a short shared list of allowed sources and mediums so nobody invents new ones. Use a consistent campaign format such as 2026-11-launch, and use utm_content only to tell variants apart. Never tag links between pages on your own site.

Yes, in most analytics tools. Google's own GA4 help says parameter values are case sensitive, so utm_source=google and utm_source=Google show up as two different values. That's why lowercase-only is the first rule of any naming system.

utm_source is the specific place the click came from, like newsletter, linkedin or google. utm_medium is the type of channel, like email, social, cpc or referral. Source answers where, medium answers what kind. GA4 leans heavily on medium to decide which default channel a visit belongs to.

GA4's default channel rules look for values such as email, social, referral, affiliate, display and organic, and treat mediums containing cp (like cpc or cpm), ppc, or starting with paid as paid traffic. A medium GA4 doesn't recognize can end up in the Unassigned channel. Google lists the full rules in its default channel group help page.

No. Internal links between your own pages should stay untagged. A tag on an internal link records your own site as a campaign, which muddies the real source of the visit. In Universal Analytics it even started a new session. GA4 no longer restarts the session, but the internal label can still show up in your campaign data, and other tools handle it in their own ways.

Yes. Muro's free UTM builder runs entirely in your browser. It has fields for every parameter, one-click presets for common sources, a cleanup that lowercases values and swaps spaces for dashes, a bulk mode for tagging one link for several sources at once, and a recent links list stored only in your own browser.

Try Muro on your own product

Setup takes 2 minutes. Your first brief arrives tomorrow morning.

30-day free trial. No credit card. Cancel anytime.