Email UTM Builder
Attribute every send, drip, and lifecycle message with the conventions GA4 expects: your list as the source, email as the medium, and the button or banner in utm_content. Pre-seeded below — swap in your campaign and go.
1 · Destination
2 · Required tags
e.g. spring-launch, black-friday, ebook-download
3 · Optional tags
Result
113 charshttps://slugy.co/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=weekly-digest&utm_content=header-ctaLong links look spammy in public. Shorten with Slugy to keep the tags but hide the clutter — then track which links convert.
01
Paste & pick
Drop in any URL, then tap a preset or type your own tags.
02
Validated live
Missing tags, uppercase and spaces are flagged before you copy.
03
Copy & measure
Paste into ads or email — attribution flows straight into GA4.
Platform guides: Google Ads · Meta Ads · TikTok · LinkedIn · Email · GA4 Audit
UTM cheat sheet
The five tags GA4 understands — and what to put in each.
| Parameter | Means | Example |
|---|---|---|
| utm_source | Where traffic comes from | newsletter · google · linkedin |
| utm_medium | How it reaches you | email · cpc · social · qr |
| utm_campaign | Which campaign | spring-launch · black-friday |
| utm_term | Paid keyword / audience | url-shortener |
| utm_content | Variant / placement | header-cta · ad-variant-b |
FAQ
UTM questions
Email UTM conventions
What to put in each parameter for this platform.
| Parameter | Value | Why |
|---|---|---|
| utm_source | newsletter | Your list identifier (newsletter, onboarding, receipts). Keep one source per list so per-list performance stays comparable. |
| utm_medium | Always `email` — GA4's default channel grouping keys off this value to file sessions under Email. | |
| utm_campaign | weekly-digest | The specific send or drip (weekly-digest, trial-day-3). Transactional messages like receipts get their own campaign so they never inflate newsletter numbers. |
| utm_term | Leave empty for email — term is for paid keywords and audiences, and an empty value keeps rows clean. | |
| utm_content | header-cta | The placement that earned the click (header-cta, hero-banner, footer). This is how you learn which block in the template converts. |
Email campaign URL examples
Weekly newsletter, header CTA
https://example.com/blog/link-tracking?utm_source=newsletter&utm_medium=email&utm_campaign=weekly-digest&utm_content=header-ctaTrial drip, day 3
https://example.com/pricing?utm_source=onboarding&utm_medium=email&utm_campaign=trial-day-3&utm_content=compare-plansEmail tracking notes
One campaign per send, not per list
Reuse the list in utm_source but mint a fresh utm_campaign per send or drip step. Otherwise every edition of the newsletter collapses into one row and you lose send-over-send comparison.
Apple Mail Privacy Protection inflates opens
Since MPP, open rates are unreliable — prefetching counts as opens. Optimize email on clicks and downstream conversions (which UTMs measure exactly) instead of opens.
Plain-text vs HTML versions
Both versions should carry identical UTMs so the send reports as one campaign. If your sender appends its own tags, check for duplicates before blaming GA4 for split rows.