Your first client is free.

What are UTM parameters?

UTM parameters are tags added to the end of a URL that identify where website traffic came from and which marketing campaign produced it. The five standard parameters are utm_source, utm_medium, utm_campaign, utm_term and utm_content. They are read by the analytics tool on the destination page, not by the platform serving the ad.

A tagged URL

https://example.com/product?utm_source=meta&utm_medium=paid_social&utm_campaign=spring_launch&utm_content=video_01

The five standard parameters

The five standard UTM parameters
ParameterPurposeExample
utm_sourceThe platform or property the click came frommeta
utm_mediumThe channel, or how the traffic was bought or deliveredpaid_social
utm_campaignThe campaign this click belongs tospring_launch
utm_termOriginally the paid keyword. Often reused for audience or ad setbroad
utm_contentWhich creative or variant was clickedvideo_01

Those examples are a workable convention, not a specification. UTM parameters are a convention that originated with Urchin, the analytics product Google bought and turned into Google Analytics. No standards body defines the allowed values, which is exactly why a team has to agree on them.

What each parameter is for

What is utm_source?

The named origin of the click: meta, google, linkedin, newsletter. Answer “which platform sent this person?” and you have the source. Pick one spelling per platform and never vary it.

What is utm_medium?

The type of traffic: paid_social, cpc, email, affiliate. This is the parameter analytics tools lean on to group channels together, so an inconsistent medium does more damage to a report than an inconsistent source.

Is utm_campaign required?

Nothing is technically required. A URL with only utm_source still records a source. In practice source, medium and campaign are the three you always want, because without a campaign you can attribute a visit to Meta but not to the thing you were running.

What should utm_content contain?

Whatever distinguishes one creative from another in the same campaign: format, hook, version. It is the parameter that answers “which ad?”, so it should change per ad and not per campaign.

What is utm_term actually for?

It was built for the paid search keyword, and on Google Ads that is still the honest use. On social platforms there is no keyword, so most teams reuse it for the ad set or audience. That is a convention, not a rule, and it only works if the whole team uses it the same way.

Are there other UTM parameters?

Yes. Google Analytics 4 also recognises utm_id for a campaign ID, alongside utm_source_platform, utm_creative_format and utm_marketing_tactic. They are optional and most teams never need them; the five above carry almost all the reporting value.

How they appear in a URL

Destination URL

https://example.com/product

Tracking parameters

?utm_source=meta&utm_medium=paid_social&utm_campaign=spring_launch

The parameters are appended to the destination as a query string: a ? after the path, then key=value pairs joined by &. They change nothing about which page loads. The page ignores them; the analytics script reads them.

If the destination already has a query string, the parameters join it with & rather than a second ?. Getting that wrong is the most common way a tagged link 404s, and it is the main thing a builder saves you from.

How analytics platforms use them

When someone lands on a tagged URL, the analytics script on the page reads the query string and stores those values against the session. In GA4 they populate the traffic-acquisition dimensions: session source, session medium, session campaign, and the manual term and content fields.

GA4 also derives its default channel grouping from source and medium together, which is the practical reason medium deserves more care than it usually gets. A campaign tagged utm_medium=social and one tagged utm_medium=paid_social can land in different channels while looking equivalent to the person who typed them.

Common mistakes

Should UTM parameters be lowercase?

Use lowercase everywhere. Values are passed through as typed, and reporting tools differ in whether they normalise case, so Meta and meta can end up as two rows that need adding together by hand. Lowercase is a convention that costs nothing and removes the question.

Can UTM parameters contain spaces?

Technically yes, encoded as %20 or +, but do not. An encoded space survives the click and then shows up in reports as spring%20launch or splits a pasted link in half. Use _ or - and pick one.

Should you put UTMs on internal links?

No. A UTM-tagged internal link tells analytics the visit came from a new campaign, so GA4 starts a fresh session and overwrites the original source. Someone who arrived from your Meta ad and clicked a tagged internal button is reattributed away from Meta. Use internal link tracking or events instead.

What is the difference between the destination URL and the tracking parameters?

The destination is the page you want people on. The parameters are metadata about the click. Changing a parameter must never change which page loads, so if the page behaves differently with the tags attached, something on the site is reading them and that is worth knowing about.

Fragmented

  • utm_source=Facebook
  • utm_source=facebook
  • utm_source=FB
  • utm_source=Meta

Consistent

  • utm_source=meta

None of the values on the left is invalid. The problem is that they are four rows in a report describing one platform, and the total is only correct once someone notices and adds them up. More on avoiding fragmentation.

Stop agreeing on values in Slack

UTMConfig keeps the approved source, medium and campaign values in one place and generates tracking URLs from them, so the same click is never filed under two names.

Create your workspaceFree for one client. No card required.