UTM Parameters for Email Campaigns: A Naming Convention That Keeps Your Data Clean
UTM parameters for email campaigns: what each does in GA4, a consistent naming convention with examples and the mistakes that corrupt reports.

UTM parameters are tags added to a link so analytics can attribute traffic. For email set utm_source (where: newsletter), utm_medium (email) and utm_campaign (what: spring_sale), and optionally utm_content to separate links. Google states that values are case sensitive, so use lowercase, underscores and one fixed pattern. Never use UTMs on links inside your own site, and never put personal data in them.
Without tracking tags, clicks from your newsletter are mixed into "direct" or "unassigned" traffic and you cannot tell which campaign earned the sale. UTM parameters fix that, but only if they are consistent. A sloppy convention creates a dozen versions of "email" in your reports. This guide gives you a naming system that scales, grounded in what Google Analytics 4 documents.
What each UTM parameter does
| Parameter | Question it answers | Email example | GA4 definition |
|---|---|---|---|
utm_source | Where did the click come from? | newsletter, welcome_flow | Referrer, e.g. google, newsletter4, billboard |
utm_medium | What kind of channel? | email | Marketing medium, e.g. cpc, banner, email |
utm_campaign | Which campaign or promotion? | spring_sale_2026 | Product, slogan or promo code, e.g. spring_sale |
utm_content | Which link or variant? | header_button, subject_b | Use to differentiate creatives |
utm_term | Which keyword (mostly paid search)? | rarely used in email | Paid keyword |
utm_id | Campaign ID for GA4 / cost import | c_2026_041 | Campaign ID identifying a specific campaign or promotion |
Google's campaign-URL documentation says that when you add parameters you should always use utm_source, utm_medium and utm_campaign; missing values appear as "(not set)" in reports. The same pages list utm_source_platform, utm_creative_format and utm_marketing_tactic as additional parameters, and note that the last two are not currently reported.
Google's default channel group definition assigns traffic to Email when the source or the medium matches email, e-mail, e_mail or e mail, and channel definitions are not case sensitive. Keep utm_medium=email and your campaigns land in the right channel without any custom grouping.
A naming convention that scales
- Lowercase only. The documentation states that parameter values are case sensitive:
utm_source=googleandutm_source=Googleare different values. - Underscores instead of spaces. Spaces become
%20and ugly reports. - One order for campaign names:
{topic}_{audience-or-offer}_{yyyy-mm}, for examplespring_sale_vip_2026-04. - A fixed vocabulary for source: pick from a short list (
newsletter,promo,transactional,welcome_flow,cart_flow). - Medium is always
emailfor email. - Document it in a shared sheet so everyone uses the same words, and treat the sheet as the only source of values.
Examples for common email types
| source | medium | campaign | content | |
|---|---|---|---|---|
| Monthly newsletter | newsletter | email | newsletter_2026-10 | hero_button |
| Black Friday promotion | promo | email | black_friday_2026 | subject_b |
| Welcome series, email 2 | welcome_flow | email | welcome_series | step_2_cta |
| Abandoned cart | cart_flow | email | abandoned_cart | reminder_1 |
A finished link looks like this:
https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&utm_content=hero_button
How to construct the URL correctly
- Existing query string: append your tags with
&, not a second?. - Fragments: a
#sectionmust stay at the very end, after the tags. - Encoding: values with spaces or symbols must be percent-encoded; a builder does this for you.
- Replacing old tags: if a link already carries
utm_*values from a template, replace them rather than duplicating the parameter.
https://example.com/pricing?plan=pro#compare
https://example.com/pricing?plan=pro&utm_source=newsletter&utm_medium=email&utm_campaign=pricing_update_2026-10#compare
The mistakes that corrupt reports
| Mistake | Effect | Prevention |
|---|---|---|
Inconsistent case and spelling: Newsletter, newsletter, news-letter | One source splits into several rows | Lowercase vocabulary from a shared sheet |
| UTMs on internal links | Starts a new session and overwrites the real source | Use UTMs only on links coming from outside your site |
| Personal data in values (email addresses, names) | Privacy violation and the data appears in analytics and logs | Use opaque IDs; never merge-tag an address into a UTM |
| Reusing campaign names across years | Results blend | Include the date in the campaign name |
| ESP auto-tagging overwrites yours | Two competing conventions | Check the platform's auto-tag setting and choose one owner |
| Link shorteners or redirects that drop parameters | Clicks arrive without tags and appear as direct | Test a real click and look at the landing URL |
Building links in bulk
For a campaign with ten links, building tags by hand is where typos creep in. Paste all URLs (one per line) into a builder, set the three required fields once and copy the results. A good builder preserves existing query strings and fragments, replaces any old utm_* values and flags uppercase letters and spaces.
UTMs and the rest of your tracking
- Your ESP's own tracking: most platforms rewrite links through a click-tracking domain and then redirect to your URL; the UTMs travel through intact as long as they are in the destination URL.
- Auto-tagging features: some ESPs append UTMs for you. Decide whether the ESP or your convention is the single source of truth.
- Personalised links: merge tags are fine for campaign names or content labels, never for email addresses or names.
- Privacy: UTM values end up in analytics, server logs and sometimes in referrer data, so treat them as public.
- Dark traffic: some mail apps open links in in-app browsers or strip parameters, so a small share of email traffic will always look direct.
A rollout checklist
- Write the vocabulary sheet: allowed sources, the single medium and the campaign pattern.
- Build every link with a tool, not by hand, and paste the finished URLs into the ESP.
- Send a test to yourself, click each link and confirm the landing URL contains the tags.
- After sending, check the Traffic acquisition report within a day and fix anything that shows as (not set) or direct.
- Record each campaign in the sheet with its date, goal and result.
Test variants of one email using utm_content, and judge them with the method in the email A/B testing guide. If your emails include an unsubscribe link, leave it without UTMs: it needs to work exactly as the header says (see the List-Unsubscribe guide).
Reading the results
In GA4 open Reports → Acquisition → Traffic acquisition and add the secondary dimension Session campaign to compare campaigns, then use the content dimension to see which link performed best. If email traffic appears as direct or unassigned, check that the link actually arrived with parameters (some in-app browsers and redirects drop them). Pair this with your send metrics (see the email metrics formulas guide) to connect clicks to conversions.
Frequently asked questions
What UTM parameters are required for email campaigns?
Use utm_source, utm_medium and utm_campaign; Google says you should always include these three. utm_content is optional but very useful to compare links or variants.
What should utm_medium be for email?
email. GA4's default channel group matches email, e-mail, e_mail or e mail in source or medium to its Email channel.
Are UTM parameters case sensitive?
Yes. Google documents that values are case sensitive, so utm_source=google and utm_source=Google are different. Use lowercase consistently.
Should I add UTM parameters to internal links?
No. They start a new session and override the true traffic source. Use them only on links from outside your site.
Do UTM parameters hurt SEO?
They do not affect rankings directly, but they create URL variants. A canonical tag pointing to the clean URL avoids duplicate-content issues.


