UTM naming conventions for B2B teams, and how to enforce them
A UTM naming convention is a short set of rules for the values in utm_source, utm_medium, utm_campaign, utm_term and utm_content: one approved value per platform and channel, lowercase, one word separator, and a fixed campaign pattern. B2B teams need it because analytics values are case sensitive (Google Analytics treats utm_source=Google and utm_source=google as different sources), so one inconsistent link splits a campaign across several rows and breaks the attribution that pipeline reporting depends on. Conventions only hold when they are enforced where links are built, not documented in a spreadsheet.
Key takeaways
- Use one value per platform in utm_source and one per channel in utm_medium, and publish the approved list. Everything else follows from those two fields.
- Write every value in lowercase with one separator, such as a hyphen, and no spaces or accents. Analytics tools treat each spelling as a different value.
- Give utm_campaign a fixed pattern your CRM can read, such as quarter, program and audience, and match it to the campaign name in the ad platform.
- Enforce the rules where links are built: a builder with locked values, templates and a bulk check, not a shared spreadsheet people forget to open.
- Audit the URLs already running in your ad accounts, because tracking templates and suffixes can override the links you built.
What is a UTM naming convention?
UTM parameters are the tags added to a link so analytics tools know where a visit came from. Google Analytics reads utm_source (the referrer, such as google or newsletter), utm_medium (the channel, such as cpc or email), utm_campaign, utm_term (the paid keyword), utm_content (to tell creatives apart) and utm_id, plus newer fields such as utm_source_platform.
A naming convention decides what values go in each field and how they are written. Without one, every person and agency tags links their own way, and the reports that should answer "which program created pipeline" turn into a cleanup project.
Google’s own guidance is direct: values are case sensitive, so utm_source=google is different from utm_source=Google, and each platform should have one unique source and each channel one unique medium. Source, medium and campaign should be on every tagged link.
A B2B convention you can adopt as is
| Parameter | What it means | Approved values (example) | Rule |
|---|---|---|---|
| utm_source | The platform or sender | google, linkedin, microsoft, meta, newsletter, partner, event | One value per platform, locked list |
| utm_medium | The channel | cpc, paid-social, display, email, referral, qr | One value per channel, locked list |
| utm_campaign | The program | q4-abm-plant-managers, webinar-predictive-maintenance | quarter or date, program, audience; match the ad platform campaign name |
| utm_content | The creative or placement | carousel-a, video-30s, hero-button | Free text, cleaned |
| utm_term | The paid keyword or audience | {keyword} or a segment name | Dynamic where the platform supports it |
Keep the lists short. Most B2B teams need fewer than ten sources and eight mediums. When someone needs a new value, they ask for it once and it is added to the list for everyone, instead of being invented on a launch day.
Formatting rules that keep reports clean
- Lowercase everything. "LinkedIn", "linkedin" and "Linkedin" are three sources in GA4.
- Pick one word separator, usually a hyphen, and replace spaces, slashes and ampersands with it.
- Remove accents and special characters. "québec" and "quebec" are different values, and some tools encode accents badly.
- No dates in source or medium. Dates belong in the campaign value, in one format, such as 2026-q4 or 2026-11.
- Leave platform placeholders, such as {keyword} or {campaignid}, as they are. They are filled in at click time.
- Never tag internal links on your own site. A UTM on an internal link starts a new session and overwrites the real source.
Why conventions break, and how to enforce them
Conventions usually live in a spreadsheet or a wiki page. They break the first time someone is in a hurry, a new agency starts, or a field marketer builds a QR code for a booth. The fix is not a longer document; it is putting the rules where links are built.
Enforcement has three parts. First, a builder that cleans values as people type and only offers approved sources and mediums. Second, templates for the links built every week, so nobody starts from a blank form. Third, a bulk check, so a spreadsheet of 200 links is validated before any of them go live.
Our free Link Console does all three. Naming rules and approved values are on every plan, links are saved to a shared history with who built them, and short links and QR codes use the same convention as everything else.
Do not forget the links already running in your ad accounts
Search and social ads add another layer. In Google Ads, a tracking template and a final URL suffix can be set at the account, campaign and ad group level, and the most specific one is used. The final URL suffix is where parameters that must reach the landing page belong, and a tracking template must start with {lpurl} or the landing page URL breaks.
That means a perfectly built final URL can still arrive with the wrong UTMs, or with two utm_source values, because a template or suffix at another level adds its own. The only reliable check is to read what each live ad actually sends.
Link Console Pro includes a read-only audit: the same free script that powers our Pacing Console reads each live ad’s final URL, tracking template and URL suffix in Google Ads and Microsoft Ads every hour and flags untagged ads, values that break your rules, http links and duplicated parameters.
A governance rhythm for marketing operations
- Once: agree the source and medium lists and the campaign pattern with demand generation, field marketing and every agency.
- Once: lock those lists in the link builder and save templates for each recurring program.
- Every launch: build links from a template or the bulk builder, never by hand in a spreadsheet.
- Weekly: review the ad account audit and fix ads that break the convention.
- Monthly: look for new or misspelled sources and mediums in GA4 and the CRM, and either add them to the list or fix the links.
- Quarterly: retire values no one uses and confirm the campaign pattern still matches how finance and sales report.
Frequently asked questions
Are UTM parameters case sensitive?
Yes. Google Analytics states that parameter values are case sensitive, so utm_source=google and utm_source=Google are reported as different sources. Writing every value in lowercase avoids it.
Which UTM parameters are required?
Google recommends using utm_source, utm_medium and utm_campaign on every tagged link. utm_term and utm_content are optional and useful for keywords and creatives.
Should I use hyphens or underscores in UTM values?
Either works, as long as everyone uses the same one. Hyphens are easier to read in reports. Mixing both is what causes problems.
Should I add UTMs to internal links?
No. A UTM on a link within your own site starts a new session and replaces the original source, which breaks attribution.
How do I enforce a UTM convention across agencies?
Give every team and agency access to the same link builder with locked source and medium values and shared templates, and audit the URLs running in your ad accounts. A shared spreadsheet alone does not hold.
Sources
Related service: RevOps and marketing operations. See also pricing and client results.
We run enterprise B2B demand generation for teams in Montreal, Toronto, Ottawa and the United States.
