Campaign URL / UTM Standard
version 1.0.0 · status stable · updated 2026-06-07
Most analytics messes start at the link. Inconsistent utm_* values fragment channels, break attribution,
and make cross-tool reporting impossible. This is an open standard you can adopt, cite, and enforce with the
free UTM & Campaign Governance tool.
The parameters
| Parameter | Required | Rule |
|---|---|---|
utm_source | yes | Lowercase, the specific origin (newsletter, linkedin, partner-acme). |
utm_medium | yes | A value from the controlled channel vocabulary (see below). |
utm_campaign | yes | {yyyy}-{quarter}-{initiative}-{geo?}, lowercase, hyphen-delimited. |
utm_content | optional | Creative/variant identifier for A/B differentiation. |
utm_term | optional | Paid-search keyword only. |
Controlled medium vocabulary (v1)
organic · paid-search · paid-social · organic-social · display · email · affiliate ·
referral · sms · push · partner · sponsorship
Anything outside this set is a validation error, not a new channel.
Rules
- Lowercase, hyphen-delimited. No spaces, no camelCase, no
%20. - No PII in any parameter, ever.
utm_mediummust map to exactly one entry in your channel grouping.- Campaign names are immutable once live — append, never rewrite.
Versioning
This spec is versioned. Breaking changes to the vocabulary increment the major version. The downloadable kit includes a spreadsheet validator, a regex pack, and a governance checklist.
This is a seed entry. The production standard ships with the kit and JSON-LD TechArticle markup so it’s citable.
Templates, validators, and the governance checklist.