UTM Naming Convention: A Practical Template for Agencies

A blank notebook and pen on a wooden bench
Photo: Kelly Sikkema / Unsplash.

A UTM naming convention is a shared set of rules for describing campaign traffic in URLs. Its purpose is to let different people tag links consistently, so reporting does not split one campaign into several nearly identical rows.

For an agency, the useful deliverable is more than a URL builder. It is a controlled vocabulary, a campaign register, and a short review process that survives handoffs between account managers, media buyers, designers, and clients. The template below is an original operating model you can adapt.

Decide what each parameter means

Use source for the sending platform or publication, medium for the marketing channel, and campaign for the shared initiative. Reserve content for a specific placement or creative variant. Use term only when it has a defined purpose, such as keyword-level identification in a documented implementation.

Google’s campaign URL documentation describes these parameters and notes that values are case-sensitive. It recommends consistent naming and supplying relevant fields. The convention below standardizes lowercase values so capitalization does not accidentally fragment campaign data.

ParameterProposed roleExample value
utm_sourceSending platform or publicationlinkedin
utm_mediumApproved channel valuepaid_social
utm_campaignInitiative shared across assetsagency_demo_2026q4
utm_idStable campaign identifiercmp_1042
utm_source_platformPlatform managing the activitylinkedin
utm_contentPlacement or creative variantfeed_singleimage_problem_a
utm_termDefined keyword or targeting detail when neededcrm_consultant

Do not force every parameter into every workflow without a reason. Document which fields are required for each channel, including the fields your reporting or cost-import setup expects. Empty placeholders and improvised values are harder to interpret than a clear channel-specific rule.

Create an approved source and medium dictionary

Start with channels you actually use. A small dictionary is easier to maintain than a theoretical list covering every advertising product. Give each platform one preferred source value and record exceptions explicitly.

Activityutm_sourceutm_mediumNaming note
LinkedIn paid campaignlinkedinpaid_socialPaid traffic from LinkedIn
Facebook paid campaignfacebookpaid_socialKeep platform source explicit
Organic LinkedIn postlinkedinsocialDistinguish from paid placement
Customer newslettercustomer_newsletteremailStable publication name
Partner referral linkpartner_acmereferralReplace with approved partner identifier

These are suggested values, not a guarantee of channel classification in every property. GA4’s default channel group uses documented rules involving traffic-source information. Validate representative links against the current rules and your reports before making the dictionary mandatory.

Avoid creating a medium such as summer_offer. That describes a campaign, not a channel. If the medium column contains campaign names, comparing email with paid social requires manual cleanup every reporting cycle.

Use a campaign name humans can interpret

A practical campaign pattern is offer_audience_period, with a stable ID stored separately. For example, audit_saas_2026q4 identifies an audit offer aimed at SaaS businesses during a particular quarter. Keep the pattern short enough that people can apply it reliably.

Do not encode every possible attribute into the campaign name. Store owner, client, market, start date, objective, and budget in the campaign register. A URL should not become the only database for campaign planning.

Choose whether a continuing campaign keeps its name across periods. An evergreen newsletter initiative may need a stable campaign name with individual sends distinguished in content. A discrete product launch may justify a new campaign. Document the difference so quarterly reporting does not depend on who built the link.

When a business changes an offer name, preserve historical mappings. Renaming future links does not rename traffic already recorded. Add an alias in the reporting layer or annotate the change rather than assuming historical rows will merge automatically.

Build a useful content convention

Use utm_content to answer the question you actually want to compare. For an email, it might distinguish hero_button from footer_text. For a paid-social test, it might distinguish feed_video_demo_a from feed_video_demo_b.

Keep the variant identifier stable while the asset remains the same. If version B changes both the headline and the image, record both changes in the creative register. The UTM label can identify the asset, but it cannot explain the experiment by itself.

Avoid names such as final, final2, or newnew. They are convenient during production and ambiguous a month later. A simple version or asset ID is more durable, especially when the same campaign runs in several markets.

A complete tagged-link example

Imagine a fictional agency promoting a demo page through LinkedIn. Its campaign register assigns ID cmp_1042, campaign agency_demo_2026q4, and creative feed_singleimage_problem_a.

The resulting example URL is:

https://example.com/demo/?utm_source=linkedin&utm_medium=paid_social&utm_campaign=agency_demo_2026q4&utm_id=cmp_1042&utm_source_platform=linkedin&utm_content=feed_singleimage_problem_a

Use a URL builder or a tested URL library to assemble production links. If the destination already contains a query string, additional parameters need the correct separator. Encode values properly instead of manually inserting spaces, punctuation, or text copied from a document.

The destination in this example is deliberately fictional. Replace it with the actual page, open the finished link, and check that redirects preserve the needed parameters. Test the link placed in the final asset, because an email platform or link shortener can change its behavior.

Maintain one campaign register

Store the canonical values before assets are distributed. A spreadsheet can work for a small team if there is one accountable owner and an agreed place for approved links.

Register columnWhy it matters
Campaign ID and nameConnect assets to one initiative
Destination URLIdentify the intended landing page
Source and mediumApply the approved channel dictionary
Content or asset IDDistinguish placements and variants
Owner and clientResolve questions quickly
Start date and statusSeparate planned, live, and retired links
Final tagged URLGive publishers the approved value
QA date and reviewerShow whether the link was tested

Lock or validate dictionary columns when practical. Allow a proposed-new-value process for legitimate new channels. A convention that blocks necessary work will be bypassed; a convention that accepts any spelling will not produce consistent data.

Avoid common attribution mistakes

Use UTMs on external campaign links entering your site. For links between your own pages, use event or navigation measurement suited to the question. Internal promotional labels should not pretend to be an external acquisition source.

Do not put customer names, email addresses, phone numbers, or private project details in campaign parameters. URLs are visible in browser history, logs, and analytics. Describe the campaign rather than the individual recipient.

For Google Ads, review the account’s auto-tagging and analytics integration before adding manual parameters. Manual UTMs are not a reason to remove click identifiers or rewrite an established measurement setup without understanding it. Test the combined behavior and preserve the campaign information your CRM needs.

If the team is new to tagging, start with the UTM tracking overview, then use this article as the naming standard. Keep the standard separate from campaign-specific creative decisions.

Validate reporting, then govern changes

Open a test link, confirm its destination, and inspect the intended campaign dimensions after data is available. Use the same report scope when comparing results: first-user acquisition and session acquisition answer different questions.

For lead generation, submit a test inquiry and inspect the campaign information retained in the CRM. Pair the convention with GA4 lead tracking so a readable traffic report connects to a reliable inquiry event.

Review new source and medium values regularly. When a mistake appears, correct future links, document the historical alias, and identify the process that allowed it. The goal is a small, stable vocabulary that makes acquisition-cost reporting easier to trust across campaigns and clients.

Cover photo: Kelly Sikkema, via Unsplash.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top