UTM Parameters

What Are UTM Parameters?

UTM parameters are five standardised URL tags that identify where your website traffic comes from. Added to the end of any link, they're automatically read by Google Analytics 4, and virtually every other analytics platform.

The five UTM parameters explained

There are five official UTM parameters. Three are considered essential; two are optional but powerful for granular tracking.

utm_source
Where your traffic comes from. The name of the platform, website, or publisher sending visitors to you. Examples: google, newsletter, facebook, instagram, linkedin.
utm_medium
The marketing channel or traffic type. Examples: cpc (paid search), email, social, organic, affiliate, referral.
utm_campaign
The name of the specific campaign this link belongs to. Examples: spring_sale, product_launch, q1_retargeting. This ties clicks back to a specific initiative.
utm_term
(Optional) The paid keyword that triggered the ad. Used mainly in Google Ads to track which search terms drive clicks. Example: running+shoes.
utm_content
(Optional) Differentiates multiple links within the same campaign. Useful for A/B testing ads or tracking which specific CTA was clicked. Example: header_btn vs footer_link.

Which parameters are required?

Technically, no UTM parameter is required by the URL spec — they work independently. But for meaningful tracking, you should always include at least:

  • utm_source — without this, you don't know where traffic came from
  • utm_medium — without this, you can't separate channels (email vs social vs paid)
  • utm_campaign — without this, you can't tie traffic to a specific initiative

utm_term is mainly used for paid search campaigns. utm_content is useful when you're running multiple creative variations or tracking multiple links in the same campaign.

UTM naming best practices

  • Always use lowercase — "Google" and "google" are tracked as separate sources in your analytics
  • Use underscores or hyphens instead of spaces — spaces become "%20" in URLs
  • Be consistent across your whole team — agree on naming conventions before you start
  • Keep campaign names short but descriptive — "june_newsletter" is better than "june-2025-email-newsletter-campaign"
  • Never add UTM parameters to internal links — this breaks your attribution data

A complete UTM URL example

Here's a fully tagged URL using all five parameters:

https://example.com/sale?utm_source=instagram&utm_medium=social&utm_campaign=summer_sale&utm_content=carousel_ad&utm_term=summer+deals

When someone clicks this link, your analytics records: the visit came from Instagram, via the social channel, as part of the summer_sale campaign, from a carousel ad creative, targeting the term "summer deals".

Build your UTM links free

QuickUTM is a free UTM link builder — no account required. Select your source, fill in your campaign details, and copy your tagged link in seconds.

Try the free UTM builder →

Frequently asked questions

Are all five UTM parameters required?
No. You can use as few as one, but best practice is to always include utm_source, utm_medium, and utm_campaign as a minimum. utm_term is mainly for paid keyword tracking, and utm_content is for differentiating links within the same campaign.
What is utm_term used for if I'm not running paid ads?
utm_term was originally designed for paid keyword tracking, but you can use it creatively for organic campaigns — for example, tagging the content topic or the specific keyword you're targeting with a piece of content.
How do UTM parameters appear in Google Analytics 4?
In GA4, go to Reports > Acquisition > Traffic acquisition. You'll see utm_source and utm_medium as the Session source / medium dimension. Use a secondary dimension to add Session campaign, Session content, or Session term for more granularity.
Can I create custom UTM parameters beyond the five standard ones?
The five standard UTM parameters are the ones analytics platforms process natively. Custom parameters will appear in the URL but won't be auto-captured by GA4 or similar tools — you'd need to configure custom dimensions to pick them up.