SEO/Marketing

UTM Parameters: Complete Reference Guide

UTM Parameters: Complete Reference Guide

UTM parameters are tags you add to the end of a URL to tell your analytics platform where a visitor came from. Add ?utm_source=linkedin&utm_medium=paid_social to a link, and Google Analytics 4 records that session as LinkedIn paid social traffic instead of filing it under generic referral or direct traffic.

Most guides tell you there are five. Google's own Campaign URL Builder documents nine. The five classic tags utm_source, utm_medium, utm_campaign, utm_term, utm_content  still carry the majority of the work, but utm_id, utm_source_platform, utm_creative_format, and utm_marketing_tactic are documented parameters with real, and differing, levels of support.

UTM Parameter Quick Reference

ParameterIdentifiesExample valueGoogle's guidanceReported in GA4?
utm_sourceThe specific platform or property the visitor came fromlinkedinAlways useYes Manual source / Session source
utm_mediumThe type of traffic or delivery channelpaid_socialAlways useYes Manual medium / Session medium
utm_campaignThe marketing initiative being measuredsummer_webinar_2026Always useYes Manual campaign name / Session campaign
utm_idA unique ID for the campaignsw2026_q3RecommendedYes Manual campaign ID
utm_source_platformThe platform that directed the trafficsearch_ads_360RecommendedYes Manual source platform
utm_termThe paid keyword or audience termproject_management_softwareOptionalYes Manual term
utm_contentWhich specific link or creative was clickedhero_ctaOptionalYes Manual ad content
utm_creative_formatThe creative typedisplayOptionalNo not currently reported
utm_marketing_tacticThe targeting tacticremarketingOptionalNo not currently reported

utm_source

What it identifies: the specific origin of the visit  a named platform, publication, sender, or property.

utm_source answers where, at the level of a proper noun. Not a category. A name.

Choosing the value

ValueVerdictWhy
linkedinGoodNames a specific platform. Reports stay legible.
newsletterGoodNames a specific owned property, if you consistently mean one thing by it.
partner_acmeGoodIdentifies exactly which partner drove the visit.
socialBadA category, not a source. Collapses every social platform into one unusable row.
FacebookBadCapitalisation creates a value distinct from facebook. You now have two rows for one platform.
paidBadDescribes traffic type. That belongs in utm_medium.
summer_saleBadDescribes the initiative. That belongs in utm_campaign.

The last two are the errors that cost the most reporting time. If you're unsure whether a value belongs in source or medium, our UTM source vs medium vs campaign breakdown resolves it with a three-question test.

Common mistakes

  • Inconsistent naming across campaigns. facebook, fb, and meta are three separate sources to GA4. Your Facebook traffic is now split three ways.
  • Tagging internal links. GA4 sets a session's attribution at session_start, so a tagged internal link clicked mid-visit won't overwrite the current session's source. The damage arrives later: those tagged URLs get bookmarked and shared, and when someone opens one in a new session, one of your own pages is recorded as the acquisition source.
  • Putting the campaign name in the source. Sources should persist across campaigns; campaign names should not.

utm_medium

What it identifies: the type of traffic the delivery mechanism, not the brand.

If utm_source is the proper noun, utm_medium is the common noun. linkedin is a source. paid_social is a medium.

Choosing the value

ValueVerdictWhy
emailGoodMatches GA4's Email channel rule.
cpcGoodStandard for paid search. Matches GA4's paid channel pattern.
paid_socialGoodDistinguishes paid from organic social, which is the entire point of tagging social.
organic_socialGoodThe counterpart. Keeps unpaid reach separate from spend.
referralGoodFor partner and non-paid third-party placements.
linkedinBadThat's a source. Medium describes how, not who.
EmailBadCapitalisation splits the value. Use lowercase consistently.
social mediaBadThe space encodes as %20 and produces an ugly, error-prone value. Use an underscore or hyphen.

Why medium values change your reports

utm_medium is not just a label. GA4's default channel groups read it to decide which channel a session belongs to.

Google's channel definitions match paid channels on a medium pattern covering values containing cp, plus ppc, retargeting, and values beginning paid which is why cpc and paid_social classify as paid traffic while an invented value like fbads does not. Organic Social matches a defined list including social, social-network, social-media, and sm. Email is classified when the source or medium matches variations of email.

Get the medium wrong and the session doesn't just carry a bad label it lands in the wrong channel group, and your paid spend shows up as organic. Which values your organisation standardises on is a governance decision; our UTM naming convention guide covers how to document and enforce them.

Common mistakes

  • Inventing platform-specific mediums. facebook_ads as a medium breaks channel classification. Use paid_social and let utm_source=facebook carry the platform.
  • Mixing paid and organic under one medium. You lose the ability to measure return on spend.
  • Using social as a medium for paid placements. GA4 will classify it as Organic Social.

utm_campaign

What it identifies: the marketing initiative you're measuring the thing with a goal and a budget.

A campaign spans sources and mediums. One utm_campaign value should collect traffic from every channel promoting the same initiative, which is what makes cross-channel comparison possible.

Choosing the value

ValueVerdictWhy
summer_webinar_2026GoodHuman-readable, specific, sortable, unambiguous a year later.
q3_pricing_page_launchGoodNames the initiative and the period.
blackfriday_2026_apacGoodInitiative, period, market.
campaign1BadMeaningless in six weeks. Meaningless to anyone else immediately.
Summer WebinarBadCapitals and a space. Two problems in fourteen characters.
linkedin_adBadNames the channel, not the initiative. Now you can't compare channels within the campaign.

Common mistakes

  • A new campaign name per channel. If the LinkedIn ad, the email, and the paid search ad for one webinar carry three different campaign names, you can no longer answer "how did the webinar campaign perform?"
  • Renaming mid-flight. Reporting splits at the moment of the change. Decide the name before launch.
  • Dates in inconsistent formats. 2026_q3, q3_2026, and jul2026 won't sort or group together.

utm_content

What it identifies: which specific link or creative variant was clicked, within a single campaign.

This is the differentiator parameter, and it's the most underused of the five classic tags. Source, medium, and campaign are identical across every link in one email utm_content is what tells you which of them people actually clicked.

The clearest use case: multiple links in one email

A promotional email contains three links to the same landing page: a hero button, an inline text link, and a footer link. Every UTM is identical except one.

?utm_source=newsletter&utm_medium=email&utm_campaign=summer_webinar_2026&utm_content=hero_cta

?utm_source=newsletter&utm_medium=email&utm_campaign=summer_webinar_2026&utm_content=inline_text

?utm_source=newsletter&utm_medium=email&utm_campaign=summer_webinar_2026&utm_content=footer_cta

Without utm_content, all three clicks merge into one number and you learn nothing about placement. With it, you learn whether your hero button is doing its job.

The same logic applies to ad creative variants (video_ad_a vs video_ad_b), image versus text placements, and A/B tested link copy.

Choosing the value

Describe the placement or creative, not the campaign. hero_cta and video_ad_a are useful; summer_webinar repeats information already in utm_campaign and wastes the field.

utm_term

What it identifies: the keyword or audience term associated with a paid placement.

utm_term originates in paid search, where it captures the keyword that triggered the ad project_management_software, crm_for_startups.

When you actually need it

For Google Ads specifically, auto-tagging captures keyword data natively and in more detail than a manual utm_term can. Manual keyword tagging is more relevant on platforms without that integration, or where you're using the field to record a targeted audience segment rather than a search term.

If you're running Google Ads with auto-tagging enabled, utm_term is usually redundant  and manual tagging interacts with auto-tagging in ways worth understanding before you add it. Our GA4 campaign tracking guide covers that interaction.

Never put personal data in it

utm_term sometimes gets misused as a general-purpose data field. Email addresses, customer IDs, and any personally identifiable information must never appear in a URL parameter. URLs are logged, shared, and cached far beyond your analytics platform.

utm_id

What it identifies: a unique identifier for the campaign, separate from its human-readable name.

Google lists utm_id as recommended, not optional the same tier as source, medium, and campaign. It's the least-used parameter relative to its documented importance.

Why it exists

utm_campaign is a name written for humans, and names get edited. utm_id is a stable key that doesn't change even when the campaign name does, and it populates the Manual campaign ID dimension in GA4.

Its most concrete use is campaign data import. If you're importing cost data into GA4 to calculate return on ad spend, imported rows join to your session data on required keys utm_source, utm_medium, and date and utm_id gives you a granular identifier for tying imported campaign records to the right sessions.

Choosing the value

Use something short and stable that maps to a record in your own system: sw2026_q3, ADV-4471, or your ad platform's native campaign ID. It doesn't need to be readable. It needs to be unique and unchanging.

One practical note

If you're generating URLs with a builder that doesn't expose a utm_id field, you can append it manually it's a standard query parameter like any other.

Additional GA4 Campaign Parameters

Three further parameters appear in Google's Campaign URL Builder, and they are not equal in support. Conflating them is the most common error in the small number of articles that mention them at all.

ParameterPurposeGuidanceStatus in GA4 reporting
utm_source_platformThe platform that directed traffic to your property  for example search_ads_360RecommendedCollected and reported populates the Manual source platform dimension
utm_creative_formatThe format of the creative, such as display or videoOptionalCollected, not currently reported in standard GA4 reporting
utm_marketing_tacticThe targeting tactic, such as remarketing or prospectingOptionalCollected, not currently reported in standard GA4 reporting

What "not currently reported" means in practice

Google documents utm_creative_format and utm_marketing_tactic as valid campaign parameters, and its own URL builder will generate them. But Google also states directly that these two are not reported in Analytics properties.

So: the URL is valid, the parameters are legitimate, and you will not find a standard report showing them. If you add them expecting a dimension to appear, you'll spend an afternoon looking for something that isn't there.

A reasonable position: use utm_source_platform where it's meaningful, since it is both recommended and reported. Treat the other two as forward-looking or as data you're capturing for a warehouse or server-side pipeline rather than for GA4's interface and verify current support before you build reporting on them, because platform behaviour changes.

Which UTM Parameters Are Required?

This question gets answered too simply almost everywhere, so here is the precise version.

What Google says

Google's Campaign URL Builder documentation states that when you add parameters to a URL, you should always use utm_source, utm_medium, and utm_campaign. It lists utm_id and utm_source_platform as recommended, and utm_term, utm_content, utm_creative_format, and utm_marketing_tactic as optional.

The rule almost nobody mentions

There's a second consideration that changes how you should think about "optional", and it comes from Google's traffic-source documentation.

Where a GCLID or DCLID can't be used as intended, if any UTM parameter is present on the URL, Google Analytics derives all cross-channel traffic-source dimension values from the UTM parameters exclusively.

Read that carefully, because the consequence is significant: a partially tagged URL is not treated as partially tagged. Once one UTM parameter is present, Analytics stops inferring the other traffic-source values from anywhere else and takes them from your UTMs alone. Missing parameters can surface as (not set).

Google's guidance follows directly from this if you're setting one UTM parameter, set all the relevant ones, particularly utm_source, utm_medium, utm_campaign, utm_id, and utm_source_platform.

The practical answer

A URL with only utm_source will still work as a URL. But "the link works" and "the reporting is usable" are different standards. Treat source, medium, and campaign as mandatory in practice, add utm_id if you import campaign data or need a stable key, and add the rest when they answer a question you actually have.

Which Optional Parameters Do You Actually Need?

Five questions. Each one that returns yes adds a parameter.

#Ask yourselfIf yes
1Will more than one link in this campaign point to the same destination?Add utm_content to tell them apart
2Are you testing creative or placement variants?Add utm_content with a variant identifier
3Do you import cost data into GA4, or need an ID that survives a campaign rename?Add utm_id
4Is traffic being routed through a platform distinct from the source itself?Add utm_source_platform
5Are you tagging paid keywords on a platform without native keyword reporting?Add utm_term

If none apply, three parameters is a complete and correct implementation. Adding parameters you won't analyse creates maintenance cost and inconsistency risk without producing insight.

How UTM Parameters Fit Together

Here is a complete tagged URL for a single campaign, dismantled.

https://onlinetoolpot.com/tool/campaign-url-builder

      ?utm_source=linkedin

      &utm_medium=paid_social

      &utm_campaign=summer_webinar_2026

     &utm_content=video_ad_a

     &utm_id=sw2026_q3

ComponentValueWhy this value
Base URLhttps://onlinetoolpot.com/tool/campaign-url-builderThe destination. Everything after ? is appended to it.
?Begins the query string. Exactly one, before the first parameter.
utm_sourcelinkedinThe named platform. Not social, which would erase which platform delivered the visit.
utm_mediumpaid_socialDistinguishes this from an organic LinkedIn post and classifies correctly as paid traffic.
utm_campaignsummer_webinar_2026The initiative. The email and paid search links for this webinar carry the identical value, so the campaign can be compared across channels.
utm_contentvideo_ad_aTwo creative variants run in this campaign. This identifies which one earned the click.
utm_idsw2026_q3A stable key that survives a campaign rename and ties to the record in the ad platform.
&Separates each parameter. Never used before the first one.

Note that utm_term is absent. There are no keywords being tracked in a paid social placement, so including it would add a field with nothing meaningful to store.

Once you understand the anatomy, you shouldn't be assembling these by hand a single typo in a & or a stray capital letter costs you the data. Use the Campaign URL Builder to generate the link and encode the values correctly.

For a broader walkthrough of how campaign URLs fit into the wider tracking workflow, start with our complete campaign URL guide.

Common UTM Tagging Mistakes

The failures below account for most of the campaign data that arrives unusable.

1. Inconsistent capitalisation

Facebook and facebook are two different values. Your traffic splits across two rows and every total is wrong.

Fix: lowercase everything, without exception.

2. Mixing up source and medium

utm_source=paid_social&utm_medium=linkedin is inverted. The reports still populate they're just describing the opposite of reality, which is worse than empty.

Fix: source is the platform's name; medium is the traffic type.

3. Spaces and inconsistent separators

A space becomes %20. Meanwhile summer_webinar, summer-webinar, and summer webinar are three campaigns.

Fix: choose one separator and apply it everywhere.

4.Partial tagging

Covered in detail above, and worth restating: once one UTM is present, Analytics derives the cross-channel traffic-source values from UTMs alone, so the missing ones can land as (not set).

Fix: always set source, medium, and campaign together.

5. Personal or sensitive data in the URL

Email addresses, names, customer IDs, and internal identifiers do not belong in query parameters. URLs are logged, shared, screenshotted, and cached.

Fix: never place personal data in a UTM value.

6. Tagging internal links

Attribution is set when a session starts, so a tagged internal link clicked mid-visit doesn't replace the session's original source. The problem is slower and harder to spot: tagged internal URLs get bookmarked, shared and re-opened, and each of those visits records one of your own pages as an acquisition source.

Fix: UTMs are for inbound links only.

7. Ad-hoc campaign names

Different values for the same initiative across channels make cross-channel comparison impossible.

Fix: decide the campaign value once, before launch, and apply it to every link in the campaign.

Build Your Tracking URL

You now know which parameters to use and which values belong in them. The next step is generating the link without introducing the typos that cause most of the problems above.

Use the free Campaign URL Builder →  enter your destination URL and parameter values, and get a correctly encoded tracking link.

Where to go from here:

  • Unsure which value belongs in source versus medium? → UTM source vs medium vs campaign
  • Need your team to tag consistently? → UTM naming conventions
  • Want ready-made examples by channel? → UTM examples library
  • Tagged your links but can't find the data? → How to track UTM campaigns in GA4
Tags:
#Marketing#SEO
Amna
About the author:

Amna

Editor

Related Articles

The Complete Guide to Campaign URL Builders: Master UTM Tracking

The Complete Guide to Campaign URL Builders: Master UTM Tracking

<h2>Key Takeaways</h2><ul><li>A Campaign URL is a normal link with UTM parameters attached, so Google Analytics 4 can te...
Jul 27, 2026