UTM Parameters
Chapter 3 — The Five Standard UTM Parameters
The five standard UTM parameters create a precise, shared language for traffic attribution. Use source, medium, and campaign on every tagged link; layer content and term when you need creative-level or keyword-level detail.
The five parameters at a glance
| Parameter | What it captures | Typical B2B values | Required? |
|---|---|---|---|
utm_source |
Platform, publisher, or sender that generated the click | google, linkedin, g2, partner_acme, marketo | Yes |
utm_medium |
Marketing channel or delivery method | cpc, email, paid_social, referral, display, webinar | Yes |
utm_campaign |
Initiative, promotion, event, or theme | abm_q1_enterprise, launch_2026, q3_pipeline_accel | Yes |
utm_content |
Creative, placement, or specific link clicked | cta_book_demo, header_link, ad_variant_2 | Optional |
utm_term |
Keyword or audience term (mainly paid search) | soc2_compliance, brand_kw, erp_buyers | Optional |
While naming conventions and analytics mapping are handled elsewhere, this chapter focuses on what each parameter means and how to choose values that keep reports clean.
Source names the platform; medium names the channel
Teams often swap utm_source and utm_medium. Do not store “linkedin” in utm_medium or “paid_social” in utm_source.
- Source identifies where the click came from (linkedin).
- Medium identifies the channel category (paid_social). Mixing them corrupts channel reporting and hides performance by platform.
Three core parameters are non‑negotiable
Use utm_source, utm_medium, and utm_campaign on every tagged link. Without this trio, sessions land in “unassigned” buckets or blend into organic/referral traffic.
Always present:
utm_source= the platform or sender (e.g., linkedin, g2, partner_acme, marketo)utm_medium= the channel (e.g., cpc, email, paid_social, referral)utm_campaign= the initiative (e.g., abm_q1_enterprise)
Add when relevant:
utm_content= the creative, placement, or link (helps A/B testing and multi-link emails)utm_term= the keyword or audience term (mainly paid search)
utm_source identifies the platform that sent the click
Use clear, platform-level names:
- LinkedIn Sponsored Content driving demo requests →
utm_source=linkedin - Review directory listing →
utm_source=g2 - Sales outreach from Salesloft →
utm_source=salesloft - Partner newsletter send →
utm_source=partner_acme
Clarity test: If someone reads only utm_source, they should know the traffic origin without guessing.
utm_medium captures the marketing channel
Use channel categories that make roll-up reporting possible:
- Product update via Marketo →
utm_medium=email - LinkedIn ad click →
utm_medium=paid_social - Google Search Ads click →
utm_medium=cpc - Co-marketing link from a partner blog →
utm_medium=referral
Choose a stable set of mediums and stick to them across platforms. Channel consistency is what makes multi-campaign comparison work.
utm_campaign names the initiative you are measuring
Represent a specific push, event, or theme:
- ABM for Fortune 100 in Q1 →
utm_campaign=abm_q1_enterprise - Product launch →
utm_campaign=launch_2026 - Event-driven promo →
utm_campaign=rsa_conf_2026 - Pipeline push →
utm_campaign=q3_pipeline_accel
Pick a name that can survive copy/paste across channels and still mean the same initiative.
utm_content shows exactly what was clicked
Use it when you have multiple links or creatives under the same campaign and channel:
- Nurture email with two CTAs →
utm_content=cta_book_demofor the demo link,utm_content=cta_download_guidefor the guide link - Ad variations →
utm_content=ad_variant_2orutm_content=video_vs_static - Email placement →
utm_content=header_linkorutm_content=footer_cta - Landing page buttons →
utm_content=primary_ctaorutm_content=secondary_cta
If the question is “which creative or link performed?”, utm_content holds the answer.
utm_term stores the targeted or matched keyword (mainly paid search)
Use it when a keyword or audience label drives targeting:
- Google Ads bidding on “SOC 2 compliance software” →
utm_term=soc2_compliance_software - Branded coverage →
utm_term=brand_name - Non-brand theme →
utm_term=erp_integration - Audience labels (when the platform supports them) →
utm_term=manufacturing_cio
Outside keyword-driven channels (most paid social and email), utm_term is usually empty.
How the five parameters describe a visit
utm_sourcepinpoints the platform, publisher, or sender.utm_mediumclassifies the channel for roll-up reporting.utm_campaigntracks the initiative across placements.utm_contentdistinguishes the creative, placement, or link clicked.utm_termrecords the keyword or audience term when relevant.
Quick B2B mappings:
Google Search Ads for SOC 2 offer:
utm_source=google,utm_medium=cpc,utm_campaign=soc2_q2_pipeline,utm_content=ad_text_v1,utm_term=soc2_compliance_software
LinkedIn Sponsored Content (ABM):
utm_source=linkedin,utm_medium=paid_social,utm_campaign=abm_q1_enterprise,utm_content=carousel_variant_b
Partner newsletter to webinar:
utm_source=partner_acme,utm_medium=email,utm_campaign=webinar_modern_etl,utm_content=cta_register_now
Nurture email with two CTAs:
utm_source=marketo,utm_medium=email,utm_campaign=q3_pipeline_accel,utm_content=cta_book_demo
Keep targeting separate from the click (content vs. term)
- Use
utm_termfor what targeted or matched the user (keyword or audience). - Use
utm_contentfor what the user actually clicked (creative, placement, or link). - Use both only when the campaign is keyword-targeted and has multiple creatives.
utm_medium to see which channels are healthy. Then, look at utm_content to identify specific ads that users have stopped clicking on. If you use the utm_term parameter, compare the keywords to the ad content to ensure the ad actually matches what the user was searching for.- Copy any public URL you control (e.g., https://yourdomain.com/pricing).
- Append:
?utm_source=linkedin&utm_medium=paid_social&utm_campaign=abm_q1_enterprise&utm_content=cta_book_demo&utm_term=soc2_compliance
- Load the URL, open your browser console, and run:
new URL(window.location).searchParams.get('utm_source')
new URL(window.location).searchParams.get('utm_medium')
- Repeat for campaign, content, and term.
- We are using
utm_contentto identify the purpose of this promotion i.e. "cta_book_demo" - If you now change the value of
utm_contentto "cta_download_guide" and reload the page. Repeat the browser console steps again.
Notice only the "clicked element" label changed; source/medium/campaign remained stable. This is the separation you rely on in reports.
Test your knowledge
Loading quiz questions...