Analytics and measurement
A UTM naming convention your team will actually use
Build a practical UTM naming system with controlled values, reusable campaign names, link checks and clear ownership, without making every link an approval project.
OppRise Editorial · Reviewed · 7 min read

The short answer
Use a shared link register with controlled lowercase source and medium values, one stable campaign name per initiative, and optional content labels for meaningful variations. Generate URLs rather than typing them, test the delivered link, and assign a dictionary owner. Keep the convention short enough to follow without specialist help.
What to take away
- Give each parameter one job and reuse campaign names across channels.
- Validate source and medium combinations in your own reporting setup.
- Keep personal data out of URLs and avoid UTMs on internal navigation.
- Measure net administrative time saved, not just faster link creation.
1. Start with the questions your reports must answer
A useful UTM convention makes campaign traffic understandable without requiring someone to decode every link. Start with three questions: where did the visit come from, what distribution method brought it, and which marketing initiative did it support? Add detail only when it changes a decision.
All examples below are hypothetical. For a spring workshop promoted through email and LinkedIn, keep one campaign value across both channels. Changing the campaign name for each channel makes initiative-level reporting harder. Source and medium already provide that distinction.
Google documents how manual campaign parameters populate Analytics dimensions. These labels help describe acquisition; they do not establish that a campaign caused a sale.
- List the channel and campaign comparisons your weekly report needs.
- Choose one owner for the naming dictionary and an available backup.
- Reject fields nobody can explain how they will use.
2. Give each parameter one job
Require source, medium and campaign in your team's manually tagged campaign links. This is an operating rule, not a claim that every parameter is technically mandatory. Make content optional unless you need to distinguish links or creative executions. Reserve term for keyword information where relevant.
For a workshop newsletter link, use utm_source=customer-newsletter, utm_medium=email, utm_campaign=2026-11-workshop and utm_content=hero-button. The newsletter identifies the source, email describes the delivery method, and hero-button identifies the link.
Keep campaign identifiers separate from readable names if your reporting setup needs both. Use utm_id only with a documented, stable identifier and a tested downstream purpose. Do not introduce it just because a builder offers another box.
- utm_source: the publisher, platform or sending programme.
- utm_medium: the distribution method, such as email or paid social.
- utm_campaign: the initiative shared across participating channels.
- utm_content: the creative or link distinction you intend to analyse.
- utm_term: keyword information, not a miscellaneous notes field.
3. Control values without fighting analytics classification
Use lowercase, with hyphens between words you create. Avoid spaces, inconsistent abbreviations and punctuation with no reporting purpose. Case differences can fragment values: linkedin, LinkedIn and LINKEDIN should not represent three editorial choices.
Maintain approved source and medium lists. A starting dictionary might include linkedin and instagram as sources, with email, paid-social and organic-social as media. These are naming examples, not a promise of how Analytics will classify every combination. Validate channel grouping in your property before adopting them.
Preserve intentional exceptions rather than blindly rewriting everything. OppRise's supplied website-to-app link uses utm_source=opprise.io and utm_medium=website. A documented domain-based source can coexist with a lowercase, hyphenated campaign convention.
- Store the approved value, definition, example and owner together.
- Map aliases such as li to linkedin for future link creation.
- Allow new sources through a short request process, not free typing.
- Check source and medium combinations against actual reporting behaviour.
4. Choose campaign boundaries before naming creative
A practical campaign pattern is period-initiative-market, with market omitted when unnecessary. For example, 2026-11-summer-preview-au identifies a dated Australian initiative. Include a date when timing is part of the campaign's identity, not automatically on every evergreen link.
For an ongoing onboarding programme, customer-onboarding may be more useful than a new campaign name every month. Record send dates elsewhere. Conversely, separate seasonal promotions when their offers, budgets and reporting decisions genuinely differ.
Use utm_content for meaningful variation: video-demo-v1 versus static-benefit-v1, or hero-button versus footer-link. Avoid encoding audience, placement, format, copy and owner into one unreadable string. Keep detailed metadata in a register keyed to the content value.
Different content labels make comparison possible, but they do not make the comparison an experiment. Audience, delivery and timing may also differ.
5. Make the link register easier than improvisation
A shared spreadsheet can be sufficient. Give creators dropdowns for controlled fields, a destination field and a generated final URL. Lock formula columns. Put the register beside the campaign brief so approved links are copied rather than reconstructed.
Store destination, source, medium, campaign, content, final URL, owner, status and last-tested date. Assign one row per distinct destination and parameter combination. Multiple placements may reuse a row when you deliberately do not need placement-level reporting.
For a partner webinar, agree the source value before sending the promotional kit. Supply the finished URL, not an instruction to 'add your usual UTMs'. The tradeoff is a little preparation in exchange for less reconciliation later.
- Draft: values selected and destination confirmed.
- Checked: URL and measurement path tested.
- Released: approved link supplied to the publisher.
- Retired: preserved for reference, excluded from new use.
6. Test the delivered link, not just the spreadsheet
Use a URL-aware builder rather than manually concatenating strings. A destination with an existing query needs an ampersand before added parameters, not a second question mark. Parameters belong before a fragment such as #register. Avoid duplicate UTM keys.
Test the complete route through email click tracking, short links and redirects. A correct source URL can still arrive without its parameters. For a QR code, scan the exported artwork on a phone and verify the destination, not merely the link stored in the design file.
Never place names, email addresses, customer identifiers or confidential audience descriptions in UTMs. URLs can be exposed through logs, sharing and other systems. Treat parameter values as public labels.
- Confirm the correct page loads with its existing functionality intact.
- Check that redirects preserve the intended parameters.
- Verify the final published asset uses the approved URL.
- Confirm expected collection and reporting, allowing for processing time and consent.
- Record the tester and result before distribution.
7. Keep UTMs away from jobs they cannot do
Do not add campaign UTMs to ordinary internal navigation. They introduce campaign labels where you are trying to measure on-site behaviour and can complicate acquisition interpretation. Track internal banners and calls to action with appropriate events instead.
For advertising platforms using auto-tagging, do not replace or strip provider-generated identifiers to enforce a tidier URL. Document how auto-tagging, manual parameters and linked accounts interact in your setup. Test templates and macros because syntax and support depend on the provider.
UTMs also do not configure conversion measurement. Google distinguishes Analytics key events from Google Ads conversions. Before comparing campaign outcomes, check the selected event, counting settings, attribution scope and reporting window. A campaign label cannot reconcile different measurement definitions.
8. Migrate gradually and measure administrative effort
Choose a cutover date for new links. Keep an alias mapping for older values rather than pretending historical collection has changed. Update active evergreen placements where feasible, but preserve campaign context and record each change. Forwarded emails and printed QR codes may retain old values.
Measure whether the convention actually helps. Track median active link-building time, corrections per checked link and weekly reconciliation time. Separate hands-on minutes from time waiting for approval.
Hypothetically, 40 links taking three fewer minutes each would save 120 minutes of gross preparation time. Subtract dictionary upkeep and QA effort to estimate net savings. Compare similar workloads and disclose changes in staffing or campaign complexity. A before-and-after improvement alone does not prove the convention caused it.
- Sample work before and after rollout using the same definitions.
- Review exceptions weekly during adoption, then reduce the cadence.
- Remove unused fields when their maintenance outweighs their value.
9. Put ownership into the delivery workflow
Make link preparation and QA explicit tasks with owners and due dates. RiseProjects provides shared tasks, boards and tables that can support this coordination. Do not assume it supplies a dedicated UTM builder or automatic naming enforcement.
RiseCampaigns includes tracking context in platform-aware campaign planning, while RiseInsights brings connected performance data into reporting with named sources and windows. Neither description establishes automatic repair of inconsistent campaign labels.
Connected capabilities depend on provider permissions, access and approval. TikTok Ads and LinkedIn approval is pending; Microsoft Advertising is planned. Review the relevant product pages and /the-solution before designing a dependent workflow.
Frequently asked questions
Must every link have all five common UTM parameters?
No. Require source, medium and campaign for your manually tagged campaign links. Add content or term only when they serve a defined reporting purpose.
Should campaign names include dates?
Use dates for time-bound initiatives. Evergreen programmes can keep stable names, with dates recorded separately in the link register.
Can we fix old campaign names retrospectively?
You can group aliases in a reporting layer and update future links. That does not rewrite the original collected values or already-distributed URLs.
Will UTMs make analytics match advertising reports?
Not necessarily. Attribution, consent, counting rules and reporting windows can differ. UTMs improve labelling, not universal agreement between measurement systems.
Put this into practice with
