Guide
UTM parameters for email marketing
Email is the channel that remembers your customers better than they remember your ads. It is also the channel most likely to ship five buttons with five campaign names and a footer link that says utm_source=email as if that were a personality. This page is how to tag sends and flows so GA4 stays in Email and one send stays one campaign.
The pattern that keeps GA4 in Email
Set utm_medium=email. Always. Not e-mail, not newsletter as the medium (newsletter is a fine source). GA4’s Email channel grouping looks for mediums like email. Hide it and you will find your best customers in Unassigned, which is rude.
Source can be the ESP or the list family: newsletter, crm, klaviyo, braze. Pick one philosophy. “Sometimes the tool, sometimes the list” is how two dashboards disagree at 9 a.m.
| Parameter | Put this | Avoid |
|---|---|---|
utm_source | List family or ESP: newsletter, crm, klaviyo | email as source (that is the medium) |
utm_medium | email only | e-mail, newsletter, promo |
utm_campaign | The send or the flow | A new name per button |
utm_content | The click: hero-cta, product-2 | The subject line pasted whole |
Example: https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale-2026&utm_content=hero-cta
Campaign vs content in a single send
The campaign is the send or the program: spring-sale-2026 or onboarding-welcome. The content is the click: hero-cta, product-card-2, footer-unsubscribe-adjacent-upsell (please shorten that last one). If you change campaign per button, you can no longer answer “did the email work?” without a calculator and a snack.
Flows and newsletters
Lifecycle flows: one campaign name per flow (or per major version). Use term for the segment or list. Use content for the step and button. Newsletters: campaign can include the edition date if you report week-by-week, or stay evergreen if you care about the program more than the Tuesday it went out.
ESP auto-tagging
Many email tools can append UTMs automatically. That is a gift until the tool uses utm_source=mailchimp and your team uses newsletter. Align the defaults with your taxonomy, then generate exceptions in the builder or bulk generator for big launches. If the ESP also adds mc_cid or similar, leave those keys; they are not campaign names. Inspect leftovers in the click ID inspector.
Template to copy: Email newsletter in channel templates. Name the send with the campaign name generator if people keep writing novels in the campaign field.
Transactional mail
Password resets and invoices are not campaigns. If the vendor forces tags, use a boring campaign such as account-transactional and medium email so they do not land in Paid Social. Or ask them to stop. That line is also in when not to use UTMs.
Before a big send, tick the launch checklist on one CTA and click it. Footer links that go to the homepage untagged will show as Direct and you will blame the hero button.