UTMs are small, but they decide whether your campaign reporting is usable.

When every campaign link follows the same naming rules, your analytics reports become easier to trust. You can see which channels bring visitors, which ads create qualified traffic, which emails drive conversions, and which campaigns deserve more budget.

When UTMs are inconsistent, the opposite happens. facebookFacebookfb, and meta may all appear as separate sources. Paid traffic might be split between cpcpaidpaid-social, and ads. One campaign may show up under five slightly different names. The traffic is still there, but the story is broken.

This guide shows how to build consistent UTMs so your marketing attribution stays clean across ads, emails, social posts, influencer links, affiliate campaigns, and CRO experiments.

What Are UTM Parameters?

UTM parameters are tracking fields added to the end of a URL. They tell analytics tools where a visitor came from and which campaign, ad, link, or placement sent them.

A normal landing page URL might look like this:

https://example.com/winter-sale

A tracked campaign URL might look like this:

https://example.com/winter-sale?utm_source=facebook&utm_medium=paid-social&utm_campaign=winter-sale&utm_content=video-ad-01

When someone clicks the tracked URL, tools such as Google Analytics, PostHog, Shopify analytics, Hyros, or a CRM can use those parameters to classify the session, lead, purchase, or event.

That classification is what makes campaign reporting possible. Without UTMs, analytics tools may still detect some referrer data, but you lose control over the exact naming and grouping.

The Five Main UTM Parameters

Most teams use five standard UTM parameters:

ParameterWhat it identifiesExample
utm_sourceThe platform, publisher, list, partner, or traffic sourcegooglefacebooknewsletterpartner-site
utm_mediumThe channel or traffic typecpcpaid-socialemailaffiliatereferral
utm_campaignThe campaign, promotion, launch, or initiativeblack-friday-2026webinar-signupspring-sale
utm_termThe keyword, audience, ad set, or targeting groupbrand-keywordlookalike-1retargeting-30d
utm_contentThe creative, link, placement, or variationhero-buttonimage-ad-02footer-link

Google also supports additional campaign parameters such as utm_idutm_source_platformutm_creative_format, and utm_marketing_tactic. You do not need all of these for every campaign, but utm_id can be useful when you import campaign cost data or want a stable campaign identifier.

For most marketing teams, the required starting point is:

utm_source
utm_medium
utm_campaign

Then add utm_term and utm_content when you need more detail.

When Should You Use Each UTM Parameter?

The easiest mistake is to treat UTMs like labels you invent campaign by campaign. That works for one launch. It breaks when five people are building links across ten channels.

Use each parameter for a specific job.

Use utm_source for the traffic source

utm_source should answer: where did this click come from?

Good examples:

google
facebook
instagram
linkedin
newsletter
youtube
affiliate-name
partner-name

Avoid mixing the source with the campaign or medium.

Weak example:

utm_source=black-friday-facebook-ad

Better:

utm_source=facebook
utm_medium=paid-social
utm_campaign=black-friday

This keeps your source reports clean. Facebook stays Facebook, no matter which campaign is running.

Use utm_medium for the channel type

utm_medium should answer: what kind of traffic is this?

Common examples:

cpc
paid-social
organic-social
email
affiliate
referral
influencer
display
sms
qr

The important part is not whether your team chooses paid-social or social-paid. The important part is choosing one and using it everywhere.

If one person uses cpc, another uses paid, and another uses ads, your paid traffic reports will fragment.

Use utm_campaign for the initiative

utm_campaign should group links that belong to the same promotion or initiative.

Good examples:

black-friday-2026
webinar-may-2026
posthog-implementation-guide
new-product-launch
abandoned-cart-sequence

Every channel used for the same campaign should share the same utm_campaign value.

For example:

utm_source=facebook&utm_medium=paid-social&utm_campaign=black-friday-2026
utm_source=google&utm_medium=cpc&utm_campaign=black-friday-2026
utm_source=newsletter&utm_medium=email&utm_campaign=black-friday-2026

That lets you compare campaign performance across channels without losing channel detail.

Use utm_term for keyword, audience, or ad set detail

utm_term is often used for paid search keywords. In practice, many teams also use it for audience or ad set labels.

Examples:

brand-keyword
competitor-keyword
lookalike-1
retargeting-30d
warm-leads
founders

Use this when the targeting matters for reporting. If you never analyze performance by keyword, audience, or ad set, you may not need it for every campaign.

Use utm_content for creative, placement, or link variation

utm_content should tell you which version of a link was clicked.

Examples:

video-ad-01
image-ad-02
green-button
header-link
footer-link
text-cta
story-placement

This is especially useful for A/B tests, email campaigns with multiple links to the same page, paid social creatives, and CRO experiments where you need to compare variants.

A Practical UTM Naming Convention

Here is a simple convention that works for most teams:

utm_source = platform-or-publisher
utm_medium = channel-type
utm_campaign = campaign-name
utm_term = keyword-audience-or-ad-set
utm_content = creative-placement-or-link

Use these formatting rules:

  1. Use lowercase only.
  2. Use hyphens instead of spaces.
  3. Do not use special characters unless your reporting setup explicitly supports them.
  4. Keep names readable.
  5. Do not include private customer data, emails, phone numbers, or personal identifiers.
  6. Use the same spelling every time.
  7. Keep a shared list of approved values for utm_source and utm_medium.

Lowercase matters because analytics tools can treat values with different capitalization as different values. Facebook and facebook can become separate rows in reporting.

Hyphens matter because they make values readable without creating encoded spaces such as %20.

Example UTM Taxonomy for Marketing Teams

Use this as a starting point and adjust it to your own channels.

Channelutm_sourceutm_mediumNotes
Google Search adsgooglecpcUse utm_term for keyword or match type if needed
Meta paid adsfacebook or instagrampaid-socialPick separate sources if you analyze Facebook vs Instagram
LinkedIn paid adslinkedinpaid-socialUse utm_content for creative or placement
Organic LinkedIn postlinkedinorganic-socialDo not mix with paid social
Newsletternewsletter or list nameemailUse utm_content for header, body, or footer link
Affiliate linkaffiliate nameaffiliateKeep partner names standardized
Influencer linkinfluencer handle or nameinfluencerConsider utm_campaign for the promotion
QR codeplacement nameqrUse utm_content for poster, packaging, or event location
Partner articlepartner domain or namereferralKeep source close to the publisher name

The exact values can change, but the logic should not.

How to Build a UTM Link Step by Step

Use this process before launching any campaign link.

1. Start with the final destination URL

Use the real landing page URL that the visitor should reach.

Example:

https://example.com/winter-sale

Avoid tagging redirect URLs unless you have confirmed the redirect preserves query parameters. If UTMs disappear during a redirect, your analytics tool may never receive them.

2. Choose the campaign name

Pick one utm_campaign value for the whole initiative.

Example:

winter-sale-2026

Use that same campaign name across paid ads, emails, organic social posts, partner links, and retargeting campaigns related to the same initiative.

3. Choose source and medium from an approved list

Do not invent these on the fly. Use your team’s approved naming list.

Example:

utm_source=facebook
utm_medium=paid-social

This is where most attribution mess starts. Source and medium are used heavily in acquisition reports, so they need the strictest control.

4. Add term and content when they create useful reporting

If you are running one creative to one audience, you may not need extra fields.

If you are testing multiple creatives, placements, links, or audiences, add them.

Example:

utm_term=retargeting-30d
utm_content=video-ad-01

5. Build the full URL

The final tracked URL might look like this:

https://example.com/winter-sale?utm_source=facebook&utm_medium=paid-social&utm_campaign=winter-sale-2026&utm_term=retargeting-30d&utm_content=video-ad-01

Use Google’s Campaign URL Builder, your own spreadsheet, or a controlled internal form to avoid typos.

Use a UTM Builder Instead of Manual Typing

Manual UTM creation is fine for one link. It becomes risky when a team is creating dozens or hundreds of URLs.

A UTM builder helps enforce:

  1. Required fields.
  2. Approved source and medium values.
  3. Lowercase formatting.
  4. Hyphen formatting.
  5. Campaign naming rules.
  6. Final URL preview.
  7. Ownership and launch status.

For small teams, a spreadsheet is often enough. Add dropdowns for utm_source and utm_medium, formula-generated URLs, and a status column for review.

For larger teams, build a simple internal URL generator or use a dedicated UTM management tool.

The goal is not tooling for its own sake. The goal is fewer typos, fewer duplicates, and cleaner attribution.

Do Not Use UTMs on Internal Links

Do not add UTMs to links that move people around your own website or funnel.

For example, avoid this:

https://example.com/pricing?utm_source=homepage&utm_medium=internal&utm_campaign=pricing-click

Internal UTMs can overwrite the original acquisition source. A visitor who originally came from a paid ad may later click an internal UTM-tagged homepage button, and your reporting can start attributing that session to your own site instead of the original campaign.

Use event tracking for internal clicks instead.

For example:

event: clicked_pricing_cta
properties:
location: homepage_hero
button_text: view-pricing

That keeps acquisition attribution and on-site behavior tracking separate.

How to Verify UTM Tracking Before Launch

Verification is where many teams get lazy. Do not wait until the campaign has already spent money to find out the links are broken.

Use this checklist.

Check the URL itself

Open the final link in a browser and confirm:

  1. The page loads.
  2. All UTM parameters remain in the URL after redirects.
  3. No parameter is misspelled.
  4. Values are lowercase and hyphenated.
  5. The link does not contain personal data.

If the URL redirects and drops UTMs, fix the redirect before launch.

Check analytics real-time or debug views

Click the link from a clean browser session or incognito window.

Then check your analytics tool:

  1. In GA4, use Realtime or DebugView and inspect traffic source/campaign fields.
  2. In PostHog, check the person or event properties for the landing page view.
  3. In Shopify or your CRM, confirm the first landing page or attribution fields receive the expected parameters if your setup captures them.

Check the downstream conversion

Do not stop at the landing page. Follow the path through the key conversion action:

  1. Submit a lead form.
  2. Start checkout.
  3. Complete a test purchase.
  4. Book a call.
  5. Trigger the target event.

Then confirm the conversion can still be connected to the original UTMs.

This matters because UTMs can be captured correctly on the first page but lost before the CRM, checkout, or analytics event receives them.

Common UTM Mistakes That Break Attribution

Mixing capitalization

facebookFacebook, and FACEBOOK can become separate values. Use lowercase only.

Using multiple names for the same medium

Pick one value. Do not split paid traffic between cpcpaidads, and paid-social unless each value has a clear reporting meaning.

Reusing the same UTM for different links

If two different creatives use the same utm_content, you will not be able to compare them later.

Changing links mid-campaign

If a campaign is already live, changing UTM values can split reporting. Create a new link only when you intentionally want a new tracking value.

Tagging internal links

Internal UTMs can overwrite the original source. Track internal clicks with events instead.

Letting redirects remove parameters

Some redirects, checkout flows, link shorteners, or landing page tools drop query parameters. Always test the full path.

Putting sensitive data in UTM values

Do not add email addresses, names, phone numbers, customer IDs, or private audience labels to URLs. URLs can be stored in analytics tools, browser history, logs, and third-party systems.

Relying on memory instead of a shared naming sheet

Even strong marketers forget exact names. Use a UTM registry.

A Simple UTM Registry Template

Create a shared spreadsheet with these columns:

ColumnPurpose
Destination URLThe final landing page
Final UTM URLThe generated tracked URL
utm_sourceApproved source value
utm_mediumApproved medium value
utm_campaignCampaign name
utm_termKeyword, audience, or ad set
utm_contentCreative, placement, or link variant
OwnerPerson responsible for the link
ChannelAds, email, social, affiliate, etc.
Launch dateWhen the link goes live
StatusDraft, approved, live, archived
NotesRedirects, platform macros, test notes

Add dropdowns for source, medium, and status. Lock formula cells so people cannot accidentally edit generated URLs.

Recommended Rules for Consistent UTMs

Use these as your baseline rules:

  1. Always use lowercase.
  2. Use hyphens, not spaces or underscores.
  3. Keep utm_source as the platform, publisher, list, or partner.
  4. Keep utm_medium as the channel type.
  5. Keep utm_campaign consistent across all links in the same campaign.
  6. Use utm_content for creative or placement differences.
  7. Use utm_term for keyword, audience, or ad set differences.
  8. Do not use UTMs on internal website links.
  9. Do not include personal or sensitive data.
  10. Test links before launch.
  11. Save every final link in a shared registry.
  12. Do not edit live UTM values unless you intend to split reporting.
Decorative

Did you know?

We can just do things for you!

Contact Us

Why Consistent UTMs Improve CRO and Attribution

Clean UTMs do more than make reports look tidy.

They help you answer questions that directly affect growth:

  1. Which campaign actually brought qualified traffic?
  2. Which channel drove visitors who converted later?
  3. Which ad creative produced the strongest landing page engagement?
  4. Which email placement drove sales instead of just clicks?
  5. Which audience should receive more budget?
  6. Which experiment traffic should be included or excluded from analysis?

This is especially important for CRO work. If your source and campaign data is messy, conversion rate analysis becomes unreliable. You might think a landing page variant won because of the page, when the real reason was a different campaign mix. Or you might pause a channel that looks weak only because its traffic is split across several naming variations.

Consistent UTMs give your analytics, experimentation, and paid acquisition data a cleaner foundation.

Frequently asked questions

For most campaigns, the most important parameters are utm_sourceutm_medium, and utm_campaign. These tell you where the traffic came from, what type of channel sent it, and which campaign it belongs to.

No. Use utm_sourceutm_medium, and utm_campaign as the base. Add utm_term when keyword, audience, or ad set detail matters. Add utm_content when you need to compare creative, placement, or link variations.

Yes. Lowercase values prevent reporting fragmentation. Many analytics tools treat different capitalization as different values, so Facebook and facebook can show up separately.

No. Use hyphens instead of spaces. For example, use spring-sale instead of spring sale. Hyphens make URLs cleaner and easier to read.

You should avoid using UTMs on internal links. Internal UTMs can overwrite the visitor’s original acquisition source. Use event tracking for internal clicks instead.

utm_source identifies the specific platform, publisher, or referrer, such as googlefacebook, or newsletterutm_medium identifies the traffic type, such as cpcpaid-socialemail, or affiliate.

Open the final URL in a clean browser session, confirm the parameters remain after redirects, then check your analytics tool’s real-time or debug view. Also complete the main conversion action to confirm the UTM data is preserved downstream.

Yes. Some redirects, landing page tools, checkout flows, or link shorteners can remove query parameters. Always test the full click path before launching a campaign.

Yes, especially if more than one person creates campaign links. A UTM builder or spreadsheet can enforce required fields, approved naming values, lowercase formatting, and final URL review.

No. Avoid putting names, email addresses, phone numbers, customer IDs, or sensitive audience details in UTM values. URLs can appear in analytics tools, logs, browser history, and third-party platforms.

Final Takeaway

Reliable attribution starts before the campaign goes live.

If your UTM naming is loose, your reports will be loose too. If your team uses one shared convention, tests every link, and stores final URLs in a registry, your campaign data becomes much easier to trust.

Start simple: standardize utm_sourceutm_medium, and utm_campaign. Then add utm_term and utm_content when you need deeper reporting.

Consistency is what turns UTMs from messy URL extras into a dependable marketing attribution system.

External & Internal References

  1. Google Analytics URL builder documentation
  2. Google Campaign URL Builder
  3. What URL Parameters Should You Set for Your Ads?

Related blog posts

2 Comments

  1. Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.

Leave a Reply

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