UTM Parameters
Chapter 18 β Using UTM Parameters in Email Marketing
Email drives high-intent traffic, but without UTMs it leaks into Direct or Referral. Lock down a clean, repeatable tagging pattern inside your ESP so every link is attributed to Email, grouped by campaign, and broken out by link placement.
Use a canonical parameter set for every email link
Always apply the same core parameters to every marketing link in an email.
utm_medium=emailβ required for the Email channel to classify correctly.utm_sourceβ identify the program or the sending system.utm_campaignβ identify the specific campaign or initiative.utm_contentβ identify the link placement or variant within the email.
A quarterly product launch email might tag the hero button as utm_medium=email, utm_source=newsletter, utm_campaign=product_launch_q2, and utm_content=hero-cta. A secondary link in the same email could use utm_content=feature-grid-link.
What to set and why it matters
| Parameter | Required | What to put | Why it matters |
|---|---|---|---|
utm_medium |
Yes | Ensures traffic lands in your Email channel grouping | |
utm_source |
Yes | Program name or ESP/system name | Separates newsletter vs. nurture vs. sales-sequence, or separates systems |
utm_campaign |
Yes | Campaign/initiative name | Groups all clicks from the same email campaign |
utm_content |
Recommended | Link/module/variant identifier | Shows which link or module earned the click |
Pin down utm_source with one strategy and stick to it
Two stable approaches work. Choose one, document it, and keep it consistent.
| Approach | What you set in utm_source |
Pros | Trade-offs |
|---|---|---|---|
| Program-based | Program/list (newsletter, nurture_stage1) | Easy to analyze by program | Can break if program names drift across tools |
| ESP-based | Platform (marketo, hubspot, salesloft) | Survives ESP migrations; fast audits by system | Requires strong utm_campaign discipline to separate initiatives |
utm_source=marketo for marketing sends and utm_source=salesloft for sales-assist emails. This cleanly splits marketing vs. sales traffic while utm_campaign carries the initiative name.Label every placement with utm_content so multi-link emails stay readable
Use a clear, human-readable pattern. Keep it short, lowercase, and hyphenated.
| Placement/Variant | Recommended utm_content value |
Example use |
|---|---|---|
| Hero primary CTA | hero-cta | βRegister nowβ button on a webinar invite |
| Secondary body link | body-text-link-1 | Inline βsee agendaβ link |
| Image link | hero-image | Click on the hero image to the landing page |
| Footer CTA | footer-cta | βTalk to salesβ in the footer |
| Navigation link | top-nav-docs | Link to docs in a product update |
| A/B variants | ab-test-a / ab-test-b | Variant-level performance in the same email |
| Dynamic module | segment-finance-cta | Personalized module for a finance segment |
If an ABM email has two buttons to the same demo page, tag one as utm_content=hero-cta and the other as utm_content=sidebar-cta. Your report will show which placement won.
Configure your ESP to auto-append UTMs and verify the redirect chain
Most ESPs (Marketo, HubSpot, Pardot/Account Engagement, Mailchimp, Customer.io, Iterable) can auto-append UTMs to all tracked links. Use it to remove manual work and errors.
What to configure
- Set a default UTM template at the program or email template level.
- Use tokens/merge fields for dynamic parts (for example, {{campaign_name}}).
- Enforce a fallback so
utm_medium=emailis always present.
Define scope and exclusions
- Scope: All tracked links to your own domains.
- Exclusions: unsubscribe, preference center, email forwarding, mailto:, calendar .ics, and external resources you do not need to attribute.
Test the final URL, not the wrapped link
- Send a real test to yourself.
- Click each link. Let the ESPβs click-tracking redirect finish.
- Confirm the final landing URL still contains the full UTM set.
Handle collisions and encoding
- ESP click tracking parameters (for example, mkt_tok, mc_cid) can live alongside UTMs.
- Ensure UTMs are part of a normal query string and that special characters are URL-encoded.
- Do not add UTMs twice (manual plus auto-append). Use one method per template.
utm_campaign=webinar_may21 and configure the email template to auto-append utm_medium=email and utm_source=marketo. Every link ships with correct tags without manual edits.The Email UTM Auto-Append Loop (Template β Exclusions β Test β Lock)
- Template: Define your UTM template with tokens at the email/template level.
- Exclusions: List destinations that must never get UTMs.
- Test: Click through a live test and inspect the final URL after redirects.
- Lock: Document and reuse the same template across all sends.
Handle edge cases without poisoning reports
Transactional and product-update emails
- Option A: Do not tag if you do not want Email to get credit for conversions from these sends.
- Option B: Tag them, but use a clear
utm_campaign(for example, product_update, invoice_notice) so you can filter them out later.
| Email type | Recommendation | Rationale | B2B example |
|---|---|---|---|
| Order/invoice/receipt | Usually do not tag | Avoid inflating βEmailβ revenue for non-marketing sends | Annual renewal receipt |
| Product release notes | Tag, but isolate by campaign name | Keep engagement insights without mixing with demand | utm_campaign=release_notes_aug |
| Customer success nudges | Tag carefully | If they can influence upgrades, tag and name clearly | utm_campaign=upsell_cs_checkin |
Unsubscribe, preference center, and legal links
- Do not add UTMs. These are service links and will pollute reports.
Links to files (PDFs, spreadsheets, direct downloads)
- Direct-to-PDF clicks do not create a site session. Link to a short resource page with UTMs, then to the file from there. A data platform vendor who moved βdatasheet.pdfβ to a resource page saw sessions and conversions properly tied back to the campaign.
Internal navigation after arrival
- Only tag links in the email itself. Do not add UTMs to internal site links; they overwrite the original source once visitors click around.
Shorteners and redirects
- If you use vanity short links or third-party shorteners, test that they preserve query strings. Avoid tools that drop UTMs.
Sales sequences and one-to-one sends
- For SDR tools like Outreach or Salesloft, keep
utm_medium=email, setutm_sourceto the sales system, and alignutm_campaignto the initiative (for example, abm_outreach_q3). This separates sales-assist email from marketing email in reports.
Run this QA before you send
- Every marketing link has
utm_medium=email, a sensibleutm_source, and the correctutm_campaign. - Each distinct CTA/module uses a unique, readable
utm_content. - ESP auto-append is either on (and working) or fully off if you built UTMs manually.
- After a live test click, the final URL retains UTMs post-redirect.
- Unsubscribe, preference center, and mailto: links have no UTMs.
- PDF/file links route to a landing/resource page first.
- If sales sequences are included,
utm_sourcematches the sales system (for example, salesloft).
Plug-and-play URL patterns for common email cases
| Scenario | Destination | Example tagged URL |
|---|---|---|
| Newsletter hero CTA to blog | https://exampleb2b.com/blog/ai-trends | https://exampleb2b.com/blog/ai-trends?utm_medium=email&utm_source=newsletter&utm_campaign=sept_news&utm_content=hero-cta |
| Webinar invite primary CTA | https://exampleb2b.com/events/data-governance | https://exampleb2b.com/events/data-governance?utm_medium=email&utm_source=marketo&utm_campaign=webinar_oct17&utm_content=register-button |
| Nurture email text link | https://exampleb2b.com/product/analytics | https://exampleb2b.com/product/analytics?utm_medium=email&utm_source=hubspot_nurture&utm_campaign=mid_funnel_nurture&utm_content=body-text-link-1 |
| ABM sales sequence CTA | https://exampleb2b.com/demo | https://exampleb2b.com/demo?utm_medium=email&utm_source=salesloft&utm_campaign=abm_outreach_q3&utm_content=cta1 |
| Product update to release notes | https://exampleb2b.com/release-notes/2026-10 | https://exampleb2b.com/release-notes/2026-10?utm_medium=email&utm_source=customer_success&utm_campaign=release_notes_oct&utm_content=changelog-cta |
What clean tagging changes in your analytics
- Sessions from email appear under the Email channel.
utm_campaigngroups all traffic from the same send or initiative.utm_contentreveals which link or module won the click, so you can promote strong placements and retire weak ones.
Task: Prove your ESP keeps UTMs after redirects
1) Send a test email to yourself with one tagged link.
2) Click the link and land on your site.
3) Copy the final URL from the browser bar.
4) Paste it into a URL decoder (or DevTools console with decodeURIComponent) to confirm each UTM value.
5) Repeat for an excluded link (unsubscribe) and confirm no UTMs appear.
Test your knowledge
Loading quiz questions...