UTM parameters and campaign tracking

Google Analytics · Essentials · 8 min

Without UTMs, email, social and paid traffic lands in Direct or Referral and your acquisition reports lie.

GA4 works out where a session came from using the referrer, Google Ads auto-tagging (gclid), and UTM parameters on the landing URL. The UTM fields are query parameters you add to links you control:

  • utm_source: the site or sender, e.g. newsletter, facebook, partner-blog.
  • utm_medium: the type of channel, e.g. email, cpc, social, affiliate. This value decides the default channel group, so use the standard spellings.
  • utm_campaign: the campaign name, e.g. spring_sale_2026.
  • utm_term and utm_content: keyword and variant; optional.
  • utm_id, utm_source_platform, utm_creative_format, utm_marketing_tactic: newer fields mainly for Google's data import features.

Values are case-sensitive, so Email and email become two rows. Agree a naming convention (lower-case, hyphens or underscores, no spaces) and keep a shared sheet of campaign names. Google's Campaign URL Builder page generates correctly encoded links.

In reports the values appear as Session source, Session medium, Session campaign (session scope) and First user source etc. (user scope, first ever visit). The default channel grouping maps medium values to channels: email to Email, cpc/ppc/paidsearch to Paid Search, social with a known social source to Organic Social.

Do not use UTMs on internal links; a user clicking an internal link with new UTMs is attributed to a new source mid-session. And never tag links to Google Ads with manual UTMs when auto-tagging is on; gclid carries far more detail.

Example

<!-- Link in a newsletter: every field lower-case, no spaces -->
<a href="https://shop.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&utm_content=hero_button">
  Shop the sale
</a>

<!-- Paid social post -->
<a href="https://shop.example.com/sale?utm_source=instagram&utm_medium=paid_social&utm_campaign=spring_sale_2026">
  Shop now
</a>

<!-- Wrong: inconsistent case creates separate rows in reports -->
<a href="https://shop.example.com/?utm_source=Newsletter&utm_medium=Email">Bad</a>

Remember

  • utm_source, utm_medium, utm_campaign on every link you control
  • utm_medium decides the channel group; use standard values like email, cpc, social
  • Case-sensitive; never on internal links

Check yourself

  1. Which utm_medium value makes a session fall into the Email channel?

Sign in to answer, see the explanations, and get this lesson back as a quick review later.

Official docs: support.google.com/analytics/answer/10917952