📊 Measurement & Testing

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.

Illustration of a link with colourful tracking tags attached
Quick answer

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

ParameterQuestion it answersEmail exampleGA4 definition
utm_sourceWhere did the click come from?newsletter, welcome_flowReferrer, e.g. google, newsletter4, billboard
utm_mediumWhat kind of channel?emailMarketing medium, e.g. cpc, banner, email
utm_campaignWhich campaign or promotion?spring_sale_2026Product, slogan or promo code, e.g. spring_sale
utm_contentWhich link or variant?header_button, subject_bUse to differentiate creatives
utm_termWhich keyword (mostly paid search)?rarely used in emailPaid keyword
utm_idCampaign ID for GA4 / cost importc_2026_041Campaign 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.

UTM Link BuilderAdd UTM parameters while preserving the query and #fragment, with correct encoding and case warningsOpen the tool →

A naming convention that scales

  1. Lowercase only. The documentation states that parameter values are case sensitive: utm_source=google and utm_source=Google are different values.
  2. Underscores instead of spaces. Spaces become %20 and ugly reports.
  3. One order for campaign names: {topic}_{audience-or-offer}_{yyyy-mm}, for example spring_sale_vip_2026-04.
  4. A fixed vocabulary for source: pick from a short list (newsletter, promo, transactional, welcome_flow, cart_flow).
  5. Medium is always email for email.
  6. 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

Emailsourcemediumcampaigncontent
Monthly newsletternewsletteremailnewsletter_2026-10hero_button
Black Friday promotionpromoemailblack_friday_2026subject_b
Welcome series, email 2welcome_flowemailwelcome_seriesstep_2_cta
Abandoned cartcart_flowemailabandoned_cartreminder_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 #section must 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

MistakeEffectPrevention
Inconsistent case and spelling: Newsletter, newsletter, news-letterOne source splits into several rowsLowercase vocabulary from a shared sheet
UTMs on internal linksStarts a new session and overwrites the real sourceUse 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 logsUse opaque IDs; never merge-tag an address into a UTM
Reusing campaign names across yearsResults blendInclude the date in the campaign name
ESP auto-tagging overwrites yoursTwo competing conventionsCheck the platform's auto-tag setting and choose one owner
Link shorteners or redirects that drop parametersClicks arrive without tags and appear as directTest a real click and look at the landing URL

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

  1. Write the vocabulary sheet: allowed sources, the single medium and the campaign pattern.
  2. Build every link with a tool, not by hand, and paste the finished URLs into the ESP.
  3. Send a test to yourself, click each link and confirm the landing URL contains the tags.
  4. After sending, check the Traffic acquisition report within a day and fix anything that shows as (not set) or direct.
  5. 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.

References & further reading

  1. Google Analytics Help — Best practices to create custom campaigns
  2. Google Analytics Help — Collect campaign data with custom URLs
  3. Google Analytics Help — Default channel group

Related articles

Measurement & Testing

Email A/B Test Sample Size: How Many Subscribers You Need for a Reliable Result

How to calculate email A/B test sample size and read significance correctly: baseline, minimum effect, power, duration and common mistakes.

6 min read
Measurement & Testing

Email Marketing Metrics Formulas: How to Calculate Open Rate, CTR, CTOR and Bounce Rate

Exact formulas for open rate, CTR, CTOR, bounce, unsubscribe and complaint rate, with a worked example and the pitfalls that distort them.

7 min read
Campaign Content & Optimization

Email Spam Trigger Words: Do They Still Matter for Deliverability?

Which spam trigger words really hurt deliverability today? How spam filters work, which phrases to avoid in subject lines and how to rewrite them.

7 min read