Home/ Guides/ UTM parameters for email
Guide · Campaigns
Tag your email links so the clicks add up.
Send a newsletter or a campaign blast and you want every click attributed to email — not lumped under "direct" or split across mismatched rows. Here are the exact source and medium values for email, how Mailchimp and Klaviyo auto-tag, and a copy-paste template.
The short answer
Medium is always email; source is the list or program.
Set utm_medium=email on every link — that's the value GA4 maps to the Email channel — and use utm_source to name the program (newsletter, welcome-series, your brand). Keep every value lowercase and hyphenated so GA4 reports one clean row per send instead of a scatter of near-duplicates.
Want it right before you hit send? Build the parameter string with the free slsh.me UTM builder — it lowercases and encodes as you type — then drop a slsh.me short link into the email so the destination stays clean and every click lands in your dashboard. Already shipped a send? Paste a link from it into the UTM parser to check the tags.
The right values per parameter.
Five UTM parameters, mapped to what an email send should put in each one. Medium and source are the two that decide whether GA4 files the click as Email.
| Parameter | Use for email | Why |
|---|---|---|
utm_medium | email | The channel type. GA4 buckets email into the Email channel — not Unassigned. |
utm_source | newsletter, welcome-series, brand | Which list or program sent it. Name the audience, not the tool. |
utm_campaign | march-product-update | The specific send or series. Same scheme as the rest of your campaigns. |
utm_content | header-cta, footer | Which link in the email drove the click. Vary it per placement. |
utm_term | leave blank | Reserved for paid-search keywords. Email doesn't need it. |
One decision to make up front: what goes in source. Name the audience or program — newsletter, onboarding, customers — rather than the sending tool. Putting mailchimp or klaviyo in source ties your reports to a vendor you might switch, and tells you nothing about who you emailed. Whatever you pick, apply it consistently — a mix of newsletter, Newsletter and news fragments the source exactly the way GA4 splits casing. (More on that in the UTM naming convention guide.)
Let your ESP tag — or tag by hand, not both.
Most email platforms can append UTMs for you. The trap is doing it twice. Pick one method and stick to it across every send.
| Platform | Auto-tagging | What to watch |
|---|---|---|
| Mailchimp | "Google Analytics link tracking" toggle, per campaign | Sets utm_source and utm_campaign to the campaign title — name it cleanly, or the title becomes your messy UTM. |
| Klaviyo | On by default; UTM settings per flow/campaign | Default utm_source=klaviyo — change it to your program name so reports don't read as the tool. |
| Campaign Monitor / others | Usually a tracking toggle | Confirm the medium it writes is email, and that it isn't also appending to links you tagged by hand. |
| Plain / transactional | None — you add UTMs manually | Use the copy-paste template below, or build links one-by-one. |
The catch with auto-tagging: if the platform appends UTMs and your links already carry them, you end up with ?utm_source=a&utm_source=b — duplicate parameters where the last one wins, often silently overwriting the value you intended. Decide once: either turn the ESP's tracking on and never hand-write UTMs in that send, or turn it off and own the tags yourself. Owning them by hand gives you clean, descriptive sources and per-link utm_content — worth it for anything you want to attribute precisely.
The copy-paste template.
Append this to the destination URL of a link in your email. One ?, parameters joined by &, all lowercase.
# Newsletter link — append to the destination URL https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=march-product-update&utm_content=header-cta
Change utm_content for each link in the email (header-cta, product-1, footer) so you can see which one was pressed. Keep utm_source and utm_campaign identical across every link in the same send. If your ESP auto-tags, don't paste this on top of it — that's the double-tagging trap above.
The mistakes that break attribution.
Four things that quietly send your email clicks to the wrong place in GA4.
Using newsletter or mailchimp as the medium
GA4's channel grouping reads utm_medium. A medium of newsletter or mailchimp isn't recognised, so the traffic falls into Unassigned.
Fix: always use utm_medium=email; put the program name in utm_source instead.
Double-tagging with the ESP
Letting Mailchimp or Klaviyo auto-append UTMs and adding them by hand produces utm_source=a&utm_source=b — the value you wanted gets overwritten.
Fix: pick auto or manual for each send, never both.
The same utm_content on every link
If the header CTA, the product links and the footer all share one utm_content, GA4 shows a single row and you can't tell what people clicked.
Fix: give each link its own utm_content (header-cta, footer…).
Capitals and spaces in values
March Update becomes March%20Update — a capitalised, encoded value that won't match march-update elsewhere in your reports.
Fix: write every value lowercase-with-hyphens from the start.
Build the string without typos.
The hard part of email UTMs isn't the medium — it's keeping utm_source and utm_campaign identical across a dozen links while only utm_content changes. Build the shared part once from a form that lowercases and encodes for you, then vary the content value per link.
The free slsh.me UTM builder lays out every parameter, normalises casing and spacing as you type, and shows the finished string — so every link in your email ships with identical, GA4-friendly source and medium values.
Build your email UTMs, freeThen shorten the destination on slsh.me — a clean short link in the email keeps the long tagged URL out of sight and logs every click by country and device, free.
Questions
What utm_source and utm_medium should I use for email? +
utm_medium=email — that's the value GA4 recognises for the Email channel. For utm_source, name the email program or list (newsletter, welcome-series, your brand), not the sending tool. Keep both lowercase. Avoid utm_medium=newsletter or utm_medium=mailchimp, which land your clicks in Unassigned.Does Mailchimp add UTM parameters automatically? +
utm_source and utm_campaign to the campaign title, so name the campaign cleanly. And if you also tag links by hand you'll double up. Pick one: let Mailchimp tag, or turn it off and tag manually — never both.How do I track which link in an email was clicked? +
utm_content per link. If every button and text link carries the same UTMs, GA4 shows one row. Give each placement its own value — utm_content=header-cta, utm_content=product-1, utm_content=footer — and the clicks split out by what people actually pressed.Should I shorten the tagged link in my email? +
utm_ parameters can nudge spam filters. A short link keeps the visible URL clean while the UTMs ride along on the destination — and a slsh.me link logs every click by country and device. See the reading UTM data in GA4 guide.Every email click, accounted for.
Shorten the links in your newsletter with slsh.me. The long tagged URL hides behind a tidy short link, and you get live click analytics per link — by country, device and referrer, free.
Create a link with slsh.meFree forever · see pricing