Rule 1: Lowercase everything
This is the single most impactful convention. UTM values are case-sensitive in analytics reports: utm_source=Facebook and utm_source=facebook are recorded as two different sources. One campaign tagged both ways appears as two small campaigns, and no report will merge them for you.
Lowercase is the standard because it is the easiest rule to follow without thinking. Write every value in lowercase — sources, mediums, campaigns, content, terms — and the entire class of duplication bugs disappears. If you inherit a messy account with mixed casing, standardize on lowercase going forward and document it; historical rows will not rewrite themselves, but every new link will be clean.
Rule 2: One separator style — hyphens or underscores
Multi-word values need a word separator, and you must pick exactly one. The two common choices:
- Hyphens:
utm_campaign=spring-sale— widely recommended, readable in reports and URLs. - Underscores:
utm_campaign=spring_sale— equally valid, long-established in analytics practice.
What you must not do is mix them, because spring-sale and spring_sale are different values to your analytics. Spaces are the worst option: they get percent-encoded as %20, making URLs ugly and reports harder to scan. Pick hyphens or underscores once, write it into your convention document, and treat any deviation as a tagging error.
Rule 3: Be descriptive, but concise
A good value explains itself in a report six months later. utm_campaign=2026-q3-product-launch carries its own context; utm_campaign=launch does not — was that this year's launch or last year's? At the same time, values should stay compact enough that URLs remain shareable and reports remain scannable. Aim for two to four meaningful tokens.
Useful patterns:
- Date or quarter recurring campaigns:
newsletter-2026-10instead ofoctober-newsletter. - Name campaigns for the promotion, not the asset:
spring-salerather thanemail-3-final-v2. - Make
utm_contentvalues describe the placement:hero-button,footer-link— notlink1,link2.
Rule 4: One name per platform, forever
Decide the exact utm_source value for each platform once and never vary it. Instagram is instagram on every link — not ig on some and Instagram on others. The same applies to owned channels: your newsletter is newsletter everywhere, not newsletter in email footers and news_letter in social bios.
This rule also covers the medium dimension: keep a short, controlled list of mediums (email, social, cpc, referral) and file new links under an existing medium instead of inventing one. Detail belongs in source and content, not in an ever-growing medium list.
Rule 5: Document it in one shared place
A convention that lives in one person's head is not a convention. Keep a single shared document — even a simple spreadsheet — listing approved source names, the medium vocabulary, the campaign naming pattern, and the separator rule. Everyone who creates tagged links works from the same page, including future team members and freelancers.
Review the document periodically: merge duplicate values you spot in reports, retire mediums nobody uses, and confirm the campaign pattern still produces unique names. A quarterly fifteen-minute audit prevents a year's worth of drift.
Common naming mistakes
- Mixed casing:
Emailvsemailsplitting one channel into two. - Mixed separators:
spring_salevsspring-salesplitting one campaign into two. - Vague values:
campaign1,test,link— meaningless in reports within weeks. - Platform synonyms:
twitter,xandTwitterused interchangeably for the same platform. - UTMs on internal links: not a naming issue, but the most damaging tagging mistake — internal UTM links overwrite the visitor's true campaign source.
The test: before publishing a tagged link, ask whether someone who has never seen the campaign could read the source, medium and campaign values in a report and know exactly what they mean. If not, rename.
Tag with consistent values
The LinkTag builder uses your values exactly as typed — pair it with these conventions for reports that stay clean.
Open the UTM builder