Give each parameter one job

Use utm_source for the specific origin such as a newsletter name or partner, utm_medium for the durable channel class such as email or paid-social, and utm_campaign for the shared initiative. Use utm_content to distinguish creative or placement and utm_term for a keyword or other intentionally defined dimension.

Do not pack every available detail into every field. A parameter should have a stable question it answers and a controlled list where possible. If one team uses “paid_social,” another uses “social-paid,” and a third uses “facebook,” the report fragments one channel into three rows.

Create a short naming contract

Write one page defining lowercase, separators, date format, market codes, channel values, and ownership. A campaign name such as north-america_lead-gen_measurement-guide_2026-08 remains understandable outside the advertising platform and can be joined across creative exports.

Maintain an alias table for platform names and legacy values rather than silently editing historical data. When the convention changes, date the version. Keep human-readable words; opaque internal IDs can be added in a separate parameter if a reliable join is required.

Protect attribution and privacy

Use campaign tags on links that enter the site from external media. Adding UTMs to internal navigation starts a new campaign context and can overwrite the source that brought the visitor. For cross-domain journeys, configure the analytics product’s linker or identity method instead of treating the second domain as a new marketing campaign.

Campaign URLs appear in browser history, server logs, screenshots, analytics tools, and shared messages. Never include email addresses, names, customer IDs, audience descriptions that reveal sensitive traits, or confidential pricing. Treat every tagged URL as public.

Run a five-minute launch check

Open the final redirected link in a fresh browser context. Confirm the destination, HTTPS, parameter spelling, encoding, canonical behavior, consent state, and campaign row in the live analytics view. Check that link shorteners and advertising redirects preserve the query string.

After launch, watch for “(not set),” one-off capitalization, impossible mediums, duplicate campaign names, and landing-page errors. Fix the source process rather than normalizing every mistake only in a dashboard. The cleanest campaign report begins before the first click.

Direct answers

Questions this guide answers

Which UTM parameters are required?

For a practical convention, require utm_source, utm_medium, and utm_campaign; add utm_content and utm_term only when they answer a real question.

Should UTM values be lowercase?

Yes. Most analytics systems treat case variants as different values, so lowercase prevents unnecessary report fragmentation.

Should internal links use UTMs?

No. Internal UTMs can overwrite the original acquisition context and split sessions or campaign credit.

Evidence

Primary-source ledger

  1. URL builders and campaign dataGoogle Analytics Help · accessed 30 July 2026
  2. Traffic-source dimensionsGoogle Analytics Help · accessed 30 July 2026
  3. Campaign trackingClicky · accessed 30 July 2026

Scope note: UTM parameters label an observed visit; they do not establish causal credit. Attribution still depends on collection, identity, lookback, and product rules.

Found an outdated fact or a material omission?Read the corrections and recheck policy.