Skip to content
All articles

UTM Naming Convention: Rules, Examples and a Copyable Template

UTM naming convention rules for GA4: copy approved source and medium values, campaign patterns, examples and a launch QA checklist for cleaner reporting.

UTM Naming Convention: Rules, Examples and a Copyable Template, featured image

A UTM naming convention is a shared rulebook for naming campaign URL parameters so traffic from the same source, channel and initiative appears under consistent labels in reporting. The practical standard is lowercase values, one separator, approved source and medium lists, a reusable campaign pattern and a review step before links go live.

A convention that doesn't survive more than one marketer building a link isn't a convention. The real test is whether a campaign's tagged URL remains consistent when an agency, an email platform, a paid social manager and a CRM all touch the same launch. The guide below gives you a copyable policy, a working taxonomy and an audit process for that handoff.

The naming standard in brief
  • Use lowercase values and hyphens between words.
  • Keep utm_source and utm_medium on approved lists.
  • Use one campaign ID or name across channels for the same initiative.
  • Reserve utm_content for creative or placement differences.
  • Validate the final destination URL and the GA4 acquisition report before launch.

What is a UTM naming convention?#

A UTM naming convention defines which campaign parameters to use, what each one means and exactly how their values are written. It's what stops one email program from becoming separate rows labeled Newsletter, newsletter and news-letter in an acquisition report.

The five familiar fields are utm_source, utm_medium, utm_campaign, utm_term and utm_content. Google also documents utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic. Google says to always use utm_source, utm_medium and utm_campaign when adding campaign parameters. Google notes that utm_creative_format and utm_marketing_tactic aren't currently reported in Google Analytics properties, so don't make your core reporting depend on them.

UTM fieldBusiness questionRecommended conventionExample value
utm_sourceWhich publisher or platform sent the visit?Approved lowercase publisher or platform namelinkedin
utm_mediumWhat distribution method delivered it?Approved lowercase channel labelpaid-social
utm_campaignWhich initiative should share reporting?Stable initiative name with period when neededsecurity-webinar-2026-q4
utm_contentWhich creative or placement got the click?Short, meaningful variant namecarousel-a
utm_termWhich paid keyword is relevant?Keyword only when neededsecurity-audit
utm_idWhich durable campaign identifier joins systems?Stable ID from your campaign registrycmp-0421
utm_source_platformWhich platform managed the traffic?Approved platform namesearch-ads-360

Don't put every attribute in utm_campaign. A campaign name such as linkedin-paid-social-us-hero-a-security-webinar mixes source, medium, market and creative into one hard-to-join string. Keep the common initiative stable across placements, then separate differences into their own fields.

The UTM naming rules to adopt first#

A usable UTM naming standard starts with a small number of mechanical rules that can be enforced automatically. Set the casing, separators, vocabulary, campaign identity and exceptions before debating which link builder the team prefers.

  1. Lowercase every value

    Write linkedin, not LinkedIn. Google's URL-builder documentation says parameter values are case sensitive, so mixed casing can fragment manual campaign dimensions, and you'll see the split rows later.

  2. Choose one word separator

    Use hyphens within values, such as product-launch. It's the easiest style to read. Underscores are also technically valid, but mixing styles makes filtering harder.

  3. Approve sources and mediums

    Put platform names in utm_source and distribution types in utm_medium. Publish the exact allowed values in a shared registry.

  4. Keep campaign identity stable

    Reuse one utm_campaign across the channels promoting the same initiative, because that's how channels become comparable. Add a period or identifier only when it distinguishes a real repeat.

  5. Separate placement from campaign

    Put hero-cta, footer-link or carousel-a in utm_content. Don't create a separate campaign for each button.

  6. Assign an owner and a review date

    Marketing operations owns the taxonomy, so there's one place to ask. Channel managers propose additions, and a reviewer checks the final URLs before publishing.

Google's URL-builder guidance states that utm_source=google is different from utm_source=Google. Lowercasing is therefore a data-quality control. It's not a branding choice. Keep your original brand spelling in campaign briefs and ad copy, but don't carry it into the UTM value. It's a different job.

Don't confuse URL encoding with a naming convention. Browsers can encode spaces and punctuation, yet an encoded value can still be inconsistent with the vocabulary your team agreed to use. Use an approved builder so the final URL has a single question mark, valid ampersand-separated pairs and encoded values where necessary.

Copyable UTM naming convention template#

The UTM naming convention template below gives marketing operations a small, enforceable policy rather than a sprawling glossary. Copy it into the campaign intake form, assign one owner and make exceptions explicit.

Policy fieldTeam standardWho approves changes
CasingLowercase ASCII valuesMarketing ops
Word separatorHyphen within valuesMarketing ops
utm_sourceApproved publisher dictionaryMarketing ops
utm_mediumApproved channel dictionaryMarketing ops with analytics
utm_campaign{initiative}-{year}-{period} when recurringCampaign owner
utm_content{placement}-{variant}Channel owner
utm_termPaid keyword when usefulPaid media owner
utm_idStable ID from campaign registryMarketing ops
URL approvalLink, redirect and GA4 checkCampaign QA owner
ExceptionsRequest, rationale, decision, effective dateMarketing ops

Copyable policy: All externally distributed campaign links use approved lowercase utm_source, utm_medium and utm_campaign values. Values use hyphens between words. The campaign name identifies a durable initiative and is reused across channels. utm_content identifies creative or placement, while utm_term is reserved for a keyword when relevant. A designated marketing ops owner approves new source and medium values. Campaign owners test each final link and record its destination before release. Internal navigation links aren't campaign acquisition links and must not be UTM tagged.

The pattern {initiative}-{year}-{period} is a team recommendation. It isn't a GA4 syntax requirement. For a one-off campaign, a stable descriptive name is often enough. For a quarterly webinar series, a period makes repeated editions distinguishable without renaming the initiative after publication.

What should the campaign registry contain?#

The campaign registry should contain the canonical campaign name, optional campaign ID, owner, landing page, launch date, channel list, approved UTM links and the last QA result. Include a field for the original brief or ticket so an analyst can trace a report label back to the decision that created it.

A small team can start with a shared spreadsheet. Use protected columns for approved dictionaries, dropdowns for source and medium and a formula or script to assemble the URL. As soon as teams copy the spreadsheet into private versions, you're back to several conflicting sources of truth. Keep one registry and publish a read-only dictionary to every channel team, since they'll copy whatever they can see.

Approved UTM source and medium values for GA4#

Approved UTM source and medium values should reflect where traffic originated and how it arrived. Source names the publisher, while medium names the distribution method. Those values also affect how GA4 classifies sessions into channels, which is why they're worth getting right.

Channel exampleutm_sourceutm_mediumutm_content exampleQA concern
Company newsletternewsletteremailhero-ctaESP rewriting the link
Organic LinkedIn postlinkedinsocialtext-post-aSocial redirect strips query
Paid LinkedIn adlinkedinpaid-socialcarousel-aAd platform adds its own tags
Paid Bing searchbingcpctext-ad-bAuto-tagging and manual tag overlap
Partner newsletterpartner-acmeemailintro-linkPartner changes source spelling
Affiliate placementaffiliate-acmeaffiliatesidebar-bannerAffiliate redirect removes UTM
Conference QR codeconference-boothreferralposter-aShort-link redirect drops the query

The strings in this table are recommendations. They're not a promise of exact channel assignment. GA4's default channel groups use source, medium and sometimes campaign-name rules. A paid social medium alone doesn't guarantee Paid Social unless the source matches the applicable rules. Google's default-channel documentation shows Paid Social using a social-source match together with a paid-medium pattern.

Google says default channel definitions aren't case sensitive. That's different from case-sensitive UTM parameter values. A channel might still be classified correctly while source and campaign reports remain split between two spellings. Don't mistake a healthy channel total for clean underlying dimensions. They're separate things.

Don't invent a medium for every distribution placement. A webinar promoted in a newsletter should keep email as its medium even if the landing page is a webinar. A paid social campaign should keep the agreed paid medium even if the creative is a video. The asset belongs in utm_content and the initiative belongs in utm_campaign.

UTM naming convention examples across channels#

UTM naming convention examples work best when they show the same campaign crossing several channels without changing its identity. The example below uses security-webinar-2026-q4 as one initiative while source, medium and creative vary.

PlacementExample URL parametersWhat remains stable
Newsletter heroutm_source=newsletter&utm_medium=email&utm_campaign=security-webinar-2026-q4&utm_content=hero-ctaCampaign name
LinkedIn paid carouselutm_source=linkedin&utm_medium=paid-social&utm_campaign=security-webinar-2026-q4&utm_content=carousel-aCampaign name
Partner emailutm_source=partner-acme&utm_medium=email&utm_campaign=security-webinar-2026-q4&utm_content=intro-linkCampaign name
LinkedIn organic postutm_source=linkedin&utm_medium=social&utm_campaign=security-webinar-2026-q4&utm_content=text-post-aCampaign name

For the newsletter, the complete tagged link can be:

https://example.com/webinar?utm_source=newsletter&utm_medium=email&utm_campaign=security-webinar-2026-q4&utm_content=hero-cta

For the paid social version, only the source, medium and content change. The campaign value stays the same so a campaign-level analysis can compare channels. The example is illustrative. It doesn't guarantee that every analytics integration will assign the same attribution credit. The attribution models guide shows how one journey earns different credit under each model.

How should you name recurring campaigns?#

Recurring campaigns should use a stable series identifier plus a distinguishable edition or period. Use security-webinar-2026-q4 for one edition and security-webinar-2027-q1 for the next. Don't append final, new or v2 after a campaign has launched just because the creative changed.

A CRM or warehouse join gets easier when the initiative name is stable and the optional utm_id is a durable key. Google documents utm_id as the campaign ID. Use a registry ID such as cmp-0421 when multiple teams need to join campaign metadata without relying on a free-text name.

How should you handle regional variants?#

Regional variants should be separate campaigns only when the business needs separate initiative-level reporting. If the US and UK have distinct budgets, owners and landing pages, include the market in the campaign pattern. If the campaign is genuinely shared, preserve one campaign name and put region in a separate approved reporting dimension outside the UTM campaign name.

Keep that decision consistent, because it's the part teams forget. A campaign that alternates between a shared name and market-specific names won't aggregate cleanly without a mapping table.

How to build and validate a UTM URL#

A UTM URL should be assembled from approved values, tested through the actual redirect path and checked against the reporting dimensions the team will use. Building the string correctly is only the first handoff. The destination and analytics collection must also work.

  1. Register the campaign

    Create the canonical campaign name, optional ID, owner and landing page in the shared registry.

  2. Choose approved source and medium

    Select from dropdowns rather than typing new spellings, which is where most typos start. Reject unknown values or route them to the taxonomy owner, who'll decide.

  3. Add only useful optional detail

    Use utm_content for a placement variant and utm_term for a keyword when reporting needs them. Don't include personal data.

  4. Generate the final URL

    Use the destination URL's existing query structure, encode values and confirm there aren't duplicate utm_ keys.

  5. Follow every redirect

    Open the exact link that the audience will receive, because that's the one that has to work. Confirm the final page loads, the UTM values survive redirects and the form works.

  6. Verify acquisition data

    Check the landing-page URL and then review Session source / medium and Session campaign in GA4's Traffic acquisition report. Record a QA pass or a specific failure.

Google's URL builder describes a question mark before the first parameter and ampersands between later parameter-value pairs. A page that already has ?lang=en needs &utm_source=..., not a second question mark. The destination server must preserve the query string through any vanity-domain, consent or localization redirect.

For a spreadsheet-based builder, assemble the values from cells rather than editing the URL by hand. In Google Sheets, a simple formula can start with =A2&IF(ISNUMBER(FIND("?",A2)),"&","?")&"utm_source="&ENCODEURL(B2)&"&utm_medium="&ENCODEURL(C2)&"&utm_campaign="&ENCODEURL(D2). Extend it for optional fields and validate the base URL separately, since the formula won't. Treat this as a starting formula. It isn't a production-grade URL parser.

A link can be syntactically valid and still fail as a campaign link. Common failures include a redirect that drops the query, an email tool that rewrites a destination incorrectly, a landing page that sends the visitor to another domain without preserving attribution and a form that never sends its expected event. QA has to cover the entire journey, and the parameter string isn't enough.

UTM governance across marketing, CRM and analytics#

UTM governance is the operating agreement that keeps campaign labels stable as data moves from the publishing team into analytics and the CRM. Marketing operations should own the dictionary and exception log, while channel teams own link creation and analytics owners own downstream validation.

HandoffOwnerEvidence to retainFailure to catch
Campaign brief to registryCampaign managerCanonical name and IDDuplicate campaign identity
Registry to link builderMarketing opsApproved source and medium valuesNew spelling or invalid medium
Link builder to channelChannel ownerExact distributed URLWrong creative tag or destination
Channel to landing pageWeb or growth ownerRedirect and form QA resultDropped query or broken form
Landing page to GA4Analytics ownerSource, medium and campaign checksUnassigned or fragmented rows
GA4 to CRM and warehouseRevOps or data ownerMapping rule and sample recordLead-source overwrite or mismatched join

Marketing operations can prevent taxonomy errors, but it can't assume a successful form submission proves the entire campaign works. A clean UTM string doesn't verify that the landing page is reachable, that consent behaves correctly or that a CRM handoff worked. Treat those as separate controls with named owners, because they're different failures.

For larger teams, attach the campaign registry ID to the CRM campaign record and warehouse dimension table. Then compare the raw observed utm_campaign with the approved canonical value. You'll spot drift early. Don't silently rewrite all legacy values in place, since you'll lose the audit trail. Keep an alias mapping and an effective date so analysts can distinguish historical data from a new standard.

How to audit existing UTM values in GA4#

A UTM audit compares actual source, medium and campaign values with the approved dictionary, then traces every exception to the original distributed link. The useful output isn't a prettier report. It's a list of specific links, owners and fixes that stop the same error from recurring.

  1. Export Session source / medium and Session campaign for a defined reporting period.
  2. Group values by lowercase and normalized punctuation to identify likely aliases without automatically merging them.
  3. Flag unknown sources, unapproved mediums, mixed-case values, empty campaign names and duplicate campaign identities.
  4. Check whether the default channel grouping aligns with the campaign's intended distribution method.
  5. Open the original link from the campaign registry and trace redirects, landing page and form behavior.
  6. Correct the link at the publishing source, then document a mapping for historical reporting rather than claiming past raw data was rewritten.

A practical exception record includes the observed value, proposed canonical value, channel, campaign owner, original URL, first observed date, resolution and reviewer. Make sure your audit distinguishes a deliberate new source from a typo, since they're handled differently. A partner newsletter called partner-acme isn't automatically equivalent to the company's own newsletter source.

GA4 has a Traffic acquisition report for viewing Session source / medium and Session campaign. Use those dimensions for a first-pass UTM audit. Google's campaign documentation also notes that UTM values don't appear in the Landing page + query string and Page path + query string dimensions; the Page location dimension can include the URL parameters.

What should you do with historical naming errors?#

Historical UTM naming errors should be mapped for analysis rather than hidden with a new live naming convention. Keep raw values intact in your export, create a versioned canonical mapping and record when each alias was used. Don't update live links until the publishing owner confirms where they're deployed.

The point's to preserve auditability. A dashboard can group LinkedIn and linkedin under one reporting label, but the underlying campaign history should still reveal which links used which string.

UTM naming mistakes that cause reporting gaps#

UTM naming mistakes include inconsistent casing, ambiguous mediums, duplicate campaign names, internal-link tagging and missing attribution parameters. Some create split rows, while others change the meaning of traffic-source reporting or expose information that should never be in a URL.

MistakeWhat breaksSafer rule
LinkedIn and linkedinSeparate manual source labelsLowercase the source
paid_social and paid-socialMedium vocabulary fragmentsApprove one value
Campaign renamed mid-flightSame initiative appears under two namesKeep a stable campaign ID
utm_source contains a channelPublisher and channel become hard to distinguishSource is the origin
Internal site links carry UTMsAcquisition attribution can be disturbedReserve UTMs for incoming campaign links
Redirect removes UTM valuesFinal landing URL loses campaign contextTest the full redirect path
URL contains a contact emailPotential PII leakageUse non-personal campaign identifiers

Google's PII guidance specifically says do not include PII in custom campaign parameters. That includes names, email addresses and other identifiers that could identify a person. Use aggregate audience labels rather than contact-level tokens in any UTM field. Google also offers data redaction for some URL parameters, but prevention at link creation is the stronger control.

Internal links shouldn't use campaign UTMs because they're meant to describe incoming acquisition, not navigation inside the same website. An internal CTA can use an event or a separate internal campaign mechanism instead. Keep external acquisition data intact as the visitor moves through the site, and don't overwrite it.

What about Google Ads auto-tagging?#

Google Ads auto-tagging should be reviewed before adding manual UTMs to paid search URLs. Google says auto-tagging can supply additional traffic-source dimensions, while manual tagging may be needed in specific fallback situations. When a click identifier can't be used as intended, Google's documentation warns that available UTMs may determine cross-channel values and missing fields can appear as (not set).

Don't create an unconditional rule to add manual UTMs to every Google Ads link. Coordinate the choice with the person responsible for the GA4 and advertising account integration, then test the actual report outcome.

UTM naming convention checklist for launch approval#

A UTM naming convention checklist should verify the approved strings, the destination and the downstream reporting handoff. A marketer can finish the naming review in minutes, but the final QA owner still needs to confirm the landing page and tracking work.

Approve every external campaign URL
  • The link has one canonical campaign name and an owner.
  • Source and medium use approved lowercase values.
  • The campaign name is stable across all placements for the initiative.
  • Optional content and term values answer a reporting question.
  • No personal or confidential data appears in the URL.
  • There are no duplicate UTM keys or malformed separators.
  • The final URL loads and redirects preserve its query values.
  • The landing page and form pass the campaign QA check.
  • GA4 acquisition dimensions show the expected source, medium and campaign.
  • The approved link and QA evidence are stored in the registry.

If the launch has many placements, sample one link per publishing path and spot-check the remaining variations. Test the actual shortened or email-wrapped link. The long destination URL alone won't show what the audience gets. If a channel owner changes the destination after approval, the link needs another QA pass.

Consistent campaign names also make reporting easier, and our marketing report template shows where each channel number should be read from.

Frequently asked questions about UTM naming conventions#

UTM naming conventions work when the rules are clear enough for every publisher to follow and specific enough for analytics to verify. These answers cover casing, separators, campaign identity, default channel grouping and maintenance.

Should UTM parameters be lowercase?

UTM parameter values should be lowercase under your team's convention because Google Analytics treats the values as case sensitive. LinkedIn and linkedin can fragment manual source reporting.

Should UTM names use hyphens or underscores?

UTM values can use either separator, but you'll want to choose one and apply it consistently. Hyphens are easy to read in campaign names, and they're what this guide uses, while parameter keys themselves retain their standard underscores.

What is the difference between utm_source and utm_medium?

utm_source identifies the publisher or platform sending traffic. utm_medium identifies how that traffic was distributed, such as email, paid social or CPC.

Can I change a UTM campaign name after launch?

You can change future links, but historical campaign labels won't automatically become one value. Keep a stable campaign identifier and document any mapping between old and new names.

Does GA4 automatically fix inconsistent UTM names?

GA4's default channel rules can classify traffic even when manual UTM values vary, but that doesn't make the raw campaign strings consistent. Maintain your naming dictionary at the point of link creation.

Where can I check whether UTMs reached Google Analytics?

Check Session source / medium and Session campaign in GA4's Traffic acquisition report. Inspect the final landing URL first, since a redirect that removes parameters can undermine the check.

A naming policy isn't finished until the next person can use it without asking the author how to spell a source. Start with the approved dictionary, make the builder enforce it and use each campaign audit to close the next gap in the workflow.

Stop finding out from the pipeline report.

Create a workspace, add your first campaign journey and connect Claude or ChatGPT in a few minutes.

Signup is invite-only right now. Have an access code? Use it on the signup page.

Cookie settings · Privacy policy · Imprint