utmtrackinganalyticsemail-marketing

UTM parameters for email marketers, a no-nonsense reference

What UTMs actually do, which parameters matter, naming conventions that don't rot in Google Analytics, and when auto-tagging does more harm than good.

March 2, 2026·7 min read·Draftship

If you run email campaigns and you're not consistent about UTM parameters, your analytics are lying to you. Every click that lands on your site without UTMs gets attributed to "direct" or "(not set)" in Google Analytics, and you can't prove which campaigns drove which revenue.

This is a reference: what the five UTM parameters mean, which ones you actually need, how to name them so future-you doesn't hate present-you, and when automatic UTM-tagging does more harm than good.

The five UTM parameters

UTMs (Urchin Tracking Module, inherited from a company Google bought in 2005) are query-string params that append to your URLs. A click-through URL with full UTMs looks like this:

https://yoursite.com/product?
  utm_source=newsletter&
  utm_medium=email&
  utm_campaign=spring_launch_2026&
  utm_content=hero_cta&
  utm_term=linen_shirt

Each parameter answers a specific question:

  • utm_source (required), Where did the traffic come from? Usually the platform. For email, it's almost always the list name or ESP: newsletter, mailchimp, klaviyo, customer_weekly.
  • utm_medium (required), What kind of channel? For email, always email. Keep it literal, don't use mail or marketing because that breaks GA's default channel grouping.
  • utm_campaign (required), Which campaign? This is your freeform field. Name it by the offer, launch, or date.
  • utm_content (optional but useful), Which link inside the email? Use this to distinguish hero CTA vs. footer CTA vs. "read more" link. Lets you A/B-test placement.
  • utm_term (optional), Which search term? Originally for paid search. In email, it's often repurposed for product SKU or variant.

Only the first three are required by Google Analytics for attribution. The last two are for granularity.

Naming conventions that don't rot

The biggest analytics nightmare isn't missing UTMs, it's inconsistent UTMs. You end up with newsletter, Newsletter, news_letter, and newsLetter all in the same report, and GA treats them as four different sources.

Rules that work:

1. Lowercase everything. GA is case-sensitive. email and Email are two mediums. 2. Underscores, not dashes or spaces. Dashes work in URLs but read oddly in reports. Never use spaces, they URL-encode to + or %20. 3. Date-prefix campaigns. 2026-03_spring_launch sorts chronologically and is instantly readable. spring alone is ambiguous (which year?). 4. Keep source to the list name, not the segment. If you segment your newsletter into active and churned, use utm_source=newsletter for both and track the segment with utm_content=active or a custom parameter.

When auto-tagging is a trap

Many ESPs offer automatic UTM application. Some do it well (Klaviyo lets you define defaults per flow). Some do it badly, appending the same static UTMs to every link, including internal anchors and mailto: links, which breaks GA attribution for any site with anchor-based navigation.

Use auto-tagging when: you have a disciplined team, predictable campaigns, and your ESP lets you override per-send.

Avoid auto-tagging when: your team doesn't understand what a UTM is, or your ESP tags every href blindly including mailto: and tel: links.

A smart builder (like Draftship) auto-applies UTMs only to absolute http(s) URLs and skips mailto, tel, anchor, and variable-templated links. You get the benefit without the footguns.

The five things that break UTM tracking

1. URL shorteners that strip params. Some shorteners rebuild the URL and drop your UTMs. Test the redirect chain before sending. 2. Landing pages with immediate JS redirects. If your landing page redirects to /offer without preserving query strings, UTMs die at the front door. 3. SPA routing. Single-page apps that don't update the URL on navigation lose UTMs after the first route change. Capture them in localStorage or on first-load and persist. 4. Double-tagging. Auto-tagger + manual tagger = utm_source=newsletter&utm_source=klaviyo. GA uses the first; marketers assume the second. Audit your UTMs in the sent HTML before blast. 5. Email clients rewriting URLs. Gmail's Enhanced Click Tracking (if enabled) wraps every link in googleusercontent.com. Your UTMs still travel, but the referrer is now Google. Check incognito if reports look off.

What to pair UTMs with

UTMs answer where traffic came from. To get what it did, pair with:

  • Google Analytics goals/events for form submits, purchases, and engagement.
  • Server-side event tracking (Segment, server-side GTM) so ad blockers can't kill your attribution.
  • Server-side cookie or fingerprint to reconcile cross-device user journeys.

TL;DR

  • utm_source, utm_medium, utm_campaign are the three you must set. For email, utm_medium=email always.
  • Lowercase, underscores, date-prefix campaigns. Never vary your casing.
  • Auto-tagging is great if it skips mailto/tel/anchor links and your team agrees on a convention.
  • Validate UTMs in the sent HTML, not in the preview, auto-tagging can drop them at send time.
  • Pair UTMs with event tracking to see the whole journey, not just the source.
Try it yourself

Open the editor and ship an email that doesn't break.