UTM naming conventions your whole team follows

A UTM naming convention decides how your team writes source, medium and campaign values, so one campaign shows up as one row in Google Analytics instead of five. Here is a convention you can copy, and a way to make every new link follow it.

Start for free Free plan · No card required
Rule: Paid social (project)

Change the rule and watch the link pass or fail.

utm_source, utm_medium and utm_campaign are required.

Create UTM linkSample data
The app would refuse to save this link:
  • Parameter utm_campaign contains prohibited character: "#"

https://example.com/pricing?utm_source=linkedin&utm_medium=paid_social&utm_campaign=spring_launch%232&utm_content=video_a

Hidden parameters skip the form entirely, so nobody fills them by accident.

Why UTM naming conventions matter

UTM values are case sensitive. Google Analytics reads utm_source=Meta and utm_source=meta as two sources, and SpringSale and Spring_Sale as two campaigns (Google Analytics Help). Nothing is broken, the clicks are all there. They are just split across rows, so totals look low and someone has to merge them by hand every month.

The second cost is channels. GA4 groups traffic into channels such as Email, Paid Social or Referral by reading your medium and source. A medium it doesn't recognise ends up in Unassigned, and that traffic drops out of every channel report.

One person building links rarely has this problem. It starts when three people, two agencies and a scheduling tool all write their own version of “newsletter”.

The five UTM parameters and what goes in each

ParameterAnswersExample
utm_sourceWho sent the visit? The site, platform or list.linkedin, newsletter
utm_mediumWhat kind of channel? Drives GA4 channel grouping.email, paid_social
utm_campaignWhich campaign or promotion?2026_04_spring_sale
utm_termWhich paid keyword? Optional.utm_builder
utm_contentWhich ad, link or creative? Optional.hero_button, video_a

Google recommends setting source, medium and campaign on every link. Term and content are optional, and many teams block term entirely outside paid search.

UTM naming convention rules that hold up

  1. Lowercase everything. It is Google's own recommendation and it removes the most common duplicate.
  2. One separator. Underscore or hyphen, never both, never spaces. spring_sale and spring-sale are different campaigns.
  3. No special characters. #, &, ? and % have a meaning in URLs. A # in a value cuts off everything after it.
  4. A fixed list of mediums. Keep a short list and stick to it (table below). Medium is where new spellings hurt most because it decides the channel.
  5. One name per platform. Decide whether Facebook is facebook or fb and write it down. Google suggests a distinct source for each sub-platform, so Instagram gets its own value.
  6. Campaign names built from parts in a set order. For example date_name_market: 2026_04_spring_sale_de. Dates first sort campaigns in time order in reports.
  7. Short and readable. Set a length limit. If a value needs a legend to read, it is too long.
  8. Never on internal links. UTMs on links inside your own site start a new session and overwrite the real source.

utm_medium values GA4 understands

These come from GA4's default channel group rules. GA4 matches channel rules without regard to case, but your reports still show each spelling as its own value.

Use this mediumGA4 channel
emailEmail
socialOrganic Social
paid_social (with a social source)Paid Social
cpc (with a search source)Paid Search
displayDisplay
referralReferral
affiliateAffiliates
smsSMS
audioAudio

Anything paid should start with paid or contain cp (cpc, cpm). GA4 then picks Paid Social, Paid Search or Paid Video from the source. A medium like newsletter_blast matches nothing and becomes Unassigned.

A UTM naming convention template you can copy

utm_source    platform or list, lowercase:   linkedin, google, newsletter
utm_medium    one value from the list above:  paid_social, cpc, email
utm_campaign  yyyy_mm_name[_market]:          2026_04_spring_sale_de
utm_term      paid keyword, optional:         utm_builder
utm_content   creative or placement:          video_a, hero_button

Rules: lowercase, underscores only, no # & ? % or spaces,
campaign max 40 characters, utm_term only on paid search.

Two links built with it:

https://example.com/pricing?utm_source=linkedin&utm_medium=paid_social&utm_campaign=2026_04_spring_sale_de&utm_content=video_a

https://example.com/blog/launch?utm_source=newsletter&utm_medium=email&utm_campaign=2026_04_spring_sale&utm_content=hero_button

Common UTM naming mistakes

  • Mixed case: Email, email and EMAIL in one month of data.
  • Medium used as source: utm_source=email with utm_medium=newsletter swaps the two and breaks channel grouping.
  • Campaign names with no pattern: spring, Spring Sale and sale-apr for the same promotion.
  • UTMs on internal banners or menus, which rewrite the visitor's original source mid-visit.
  • A convention that lives only in a spreadsheet. It is right on the day it is written and drifts after that.

How to enforce a naming convention in UTM Link

A document tells people the rules. A rule in the UTM builder makes the rules the only option. In UTM Link you write the convention once as a rule and attach it to the whole workspace, a team or a single project. When several rules apply, the most specific one wins: project, then team, then workspace.

A rule can:

  • Mark each parameter as required, blocked or hidden.
  • Lowercase every value as people type it.
  • Reject values that contain prohibited characters.
  • Set a maximum length per parameter.
  • Show your own instructions next to a field, such as “Use the date first: yyyy_mm_name”.

The builder checks every link against the rule before it saves. A link that breaks the rule is not created, and the person building it sees exactly which value to fix. The tester at the top of this page runs the same check on sample data.

Saved parameter values and presets cover the other half. Instead of typing paid_social, people pick it from a list, so the spelling is the same every time. Links can also go out as short links on your own domain or as QR codes, and they still carry the same clean values.

Rolling it out to your team

  1. Export your last 90 days of source / medium / campaign values from GA4 and list the duplicates. That list is your argument for the change.
  2. Agree the template above, or your own version, in one short meeting.
  3. Create a workspace rule in UTM Link with lowercase on and prohibited characters set, then add project rules where a channel needs more.
  4. Save your mediums and sources as parameter values so nobody types them by hand.
  5. Bring old links in with CSV import, so the new rule and the old links live in one place.

Read the docs on projects and team roles to set up who can build links where.

Questions, answered.

What is a UTM naming convention?

+

It is a written set of rules for the values you put in utm_source, utm_medium, utm_campaign, utm_term and utm_content: which words are allowed, the case, the separator and the order of parts. Everyone who builds links follows the same rules, so one campaign shows up as one row in your reports.

Are UTM parameters case sensitive?

+

Yes. Google Analytics treats utm_source=google and utm_source=Google as two different values, and Google's own guidance is to use lowercase as standard practice. GA4's default channel rules ignore case, but your source, medium and campaign reports do not.

Should I use underscores, hyphens or spaces in UTM values?

+

Pick underscores or hyphens and use only that one. Spaces get encoded as %20 or + and are easy to type twice, so they create near-duplicate values. Most teams use underscores inside a value, for example spring_sale_2026.

Which utm_medium values does GA4 recognise?

+

GA4 sorts traffic into channels mostly by medium. email goes to Email, social to Organic Social, cpc or anything starting with paid to a paid channel (Paid Social or Paid Search depending on the source), display or banner to Display, referral to Referral and affiliate to Affiliates. Values that match nothing land in Unassigned.

Which UTM parameters are required?

+

Google recommends always setting utm_source, utm_medium and utm_campaign. utm_term and utm_content are optional: use term for paid keywords and content to tell two ads or links in the same campaign apart.

How do I make my team follow the naming convention?

+

A shared document helps, but people still type. In UTM Link you turn the convention into a rule on the workspace, a team or a project. The builder lowercases values for you, hides or blocks parameters you don't use and refuses to save a link that breaks the rule.

UTM Naming Conventions: Rules and Examples | UTM Link