Guide
UTM best practices for people who still have a Friday report
These rules are not taste. They are how you stop one campaign from appearing as seven rows. Follow them and your future self will send a thank-you email with — please — a single consistent UTM. This is the policy page. The failure catalog is common mistakes. The pattern is naming conventions.
1. The required trio travels together
Every external campaign link should carry utm_source, utm_medium, and utm_campaign. Partial tags create (not set) dimensions. Partial tags are how myths start.
2. Lowercase is a strategy, not a style choice
GA4 treats values as case-sensitive for these dimensions. Facebook and facebook do not hug it out in the interface. Pick lowercase. Enforce it in the builder (the toggle is on by default because we have met humans).
3. Spaces are how reports become modern art
Replace spaces with hyphens or underscores and pick one separator for the company. Hyphens are easier to read in a URL. Underscores are easier if your warehouse already speaks snake_case. The worst choice is both.
4. Medium must map to a channel group
GA4 default channel groups look for specific mediums. cpc and ppc lean Paid Search. email is Email. paid_social is Paid Social. social is Organic Social. display is Display. affiliate is Affiliates. Clever mediums like promo or banner often land in Unassigned, which is the analytics equivalent of the lost and found.
5. Source is a platform, not a paragraph
Use google, linkedin, newsletter, partner-acme. Do not use the full domain, the business unit, and the agency name welded together. If you need that story, put it in a sheet keyed by utm_id.
6. One campaign name per initiative
A spring sale is spring-sale-2026 in email, paid social, and affiliates. Content and term handle the variants. If every creative gets its own campaign name, you will add them in a pivot table like a medieval monk restoring a fresco.
7. Never UTM your own website
Internal banners with UTMs overwrite the original source. A paid search visitor who clicks “See pricing” can become utm_source=homepage. That is not attribution. That is identity theft committed by a hero block.
8. Write the allowed values down
A one-page taxonomy beats a 40-page PDF nobody opens. List approved sources, approved mediums, and the campaign name pattern. When someone needs a new source, they add it to the list — they do not freestyle in the ad account at 11 p.m.
9. QA a sample before you scale
Run a link through the UTM validator. Click it on a phone. Confirm the landing page, the parameters, and that redirects did not strip the query string. Redirects that drop query parameters are silent budget shredders.
10. Document after you launch, not during the autopsy
Keep a log: date, campaign name, channels, destination, owner. Future-you cannot remember what proj-phoenix was. Nobody can. Phoenix has been used by every team since email was invented.
Related: naming conventions and GA4 tracking.