MarketingUtilities

What Are UTM Parameters and How Do They Work?

The complete reference for UTM tracking — what each parameter means, naming conventions that keep reports clean, and the mistakes that break campaign attribution.

6 min read

TL;DR — Key Points

UTM parametersTags appended to URLs that tell analytics tools where traffic came from. Stand for Urchin Tracking Module — named after Urchin Software, acquired by Google in 2005.
utm_source (required)Identifies which site or platform sent the traffic. Examples: google, newsletter, facebook, linkedin, instagram.
utm_medium (required)Identifies the marketing channel type. Examples: cpc, email, social, display, affiliate, referral.
utm_campaign (required)Identifies the specific campaign. Examples: summer_sale_2024, product_launch_q1, brand_awareness.
utm_term (optional)Used for paid search to identify the keyword. Examples: running+shoes, buy+laptop+online.
utm_content (optional)Differentiates ads or links within the same campaign. Used for A/B testing. Examples: header_cta, button_green, sidebar_banner.

What Are UTM Parameters?

UTM parameters are short tags that you append to the end of any URL before sharing it. When a user clicks that URL and lands on your website, your analytics tool reads those tags and records exactly where the visitor came from, which campaign brought them, and which specific link or ad they clicked. Without UTM parameters, the majority of your marketing traffic appears as "Direct" or "Unassigned" in Google Analytics — impossible to attribute to any specific campaign.

The name comes from Urchin Tracking Module — Urchin was a web analytics company acquired by Google in 2005, which became Google Analytics. The UTM parameter format was Urchin's invention and has since become the universal standard for campaign tracking across every analytics platform including GA4, Mixpanel, Amplitude, Adobe Analytics, and Kissmetrics.

A UTM-tagged URL looks like this: https://yoursite.com/products?utm_source=newsletter&utm_medium=email&utm_campaign=diwali_sale_2024&utm_content=header_cta. Everything after the question mark is invisible to the user experience — the page loads normally — but your analytics platform reads every tag and records the attribution data for that session.

There are five UTM parameters: three required (source, medium, campaign) and two optional (term, content). You do not need all five for every campaign — use what makes sense. Email campaigns rarely need utm_term. Paid search campaigns should always include utm_term for keyword-level data.

UTM Parameter Reference

Here is the complete reference for all five UTM parameters — what each one means, when it is required, and what values to use:

ParameterRequiredPurposeExample Values
utm_sourceRequiredTraffic origingoogle, newsletter, facebook, linkedin, bing, instagram, twitter
utm_mediumRequiredMarketing channelcpc, email, social, display, affiliate, referral, banner
utm_campaignRequiredCampaign namesummer_sale_2024, product_launch, brand_awareness_q2
utm_termOptionalPaid keywordrunning+shoes, project+management+tool, best+crm+india
utm_contentOptionalAd or link variantheader_cta, button_green, logo_link, text_link_footer

How UTM Parameters Work in Google Analytics 4

When a user arrives on your site via a UTM-tagged URL, GA4 reads the parameter values from the URL and associates them with the session. These values become the session's traffic source dimensions: Session source (utm_source), Session medium (utm_medium), Session campaign (utm_campaign), Session keyword (utm_term), and Session content (utm_content).

GA4 uses these dimensions to populate the Traffic Acquisition report and to assign sessions to its default channel groupings. A session with utm_medium=email is grouped into the "Email" channel. A session with utm_medium=cpc and utm_source=google goes into "Paid Search". A session with utm_medium=social goes into "Organic Social" unless it comes from a paid ad source, in which case it should use utm_medium=paid_social to land in "Paid Social".

One critical behaviour to understand: UTM parameters create a new session in GA4. If a user is already on your site and clicks a UTM-tagged internal link, GA4 starts a new session and overwrites the original attribution. This is why you must never add UTM parameters to links within your own website. Only use them for traffic coming from external sources.

GA4 also captures UTM data as user-scoped dimensions when using the "first user" attribution model. This lets you see which campaign first acquired a user, regardless of what channel they come through on subsequent visits. Use Reports → Acquisition → User Acquisition to see first-touch attribution data.

Naming Conventions That Keep Reports Clean

Poor UTM naming conventions are the single biggest source of messy, unusable analytics data. A team of five marketers using different case styles and medium names can produce a report with 30 rows for what should be 3 channels. These rules prevent that:

RuleGood ExampleBad ExampleWhy It Matters
Always use lowercaseutm_source=newsletterutm_source=NewsletterAnalytics treats 'Email' and 'email' as different sources — mixing case fragments reports.
Use underscores, not spacesutm_campaign=summer_sale_2024utm_campaign=summer sale 2024Spaces become %20 in URLs, making reports hard to read.
Be consistent with medium valuesutm_medium=email (always)utm_medium=email, e-mail, Email, mail (all used)Inconsistency creates separate rows in reports for the same channel.
Use hyphens in source names if neededutm_source=google-adsutm_source=google adsHyphens are URL-safe and readable. Avoid spaces in any parameter value.
Include the year or quarter in campaign namesutm_campaign=diwali_sale_2024utm_campaign=diwali_saleWithout the year, you cannot compare the same campaign across years in reports.
Never add UTM to internal linksInternal navigation: /products (no UTM)Internal link: /products?utm_source=homepageAdding UTM to internal links resets the session and overwrites the original traffic source in GA4.

UTM Values by Channel

Here are the recommended UTM parameter values for the most common marketing channels, following GA4's default channel grouping definitions:

Channelsourcemediumcampaigncontent
Email newsletternewsletteremailweekly_digest_may2024header_cta
Google paid searchgooglecpcproduct_launch_q2
Facebook adfacebooksocialbrand_awareness_2024video_ad_v2
Instagram storyinstagramsocialsummer_collectionstory_swipe_up
LinkedIn sponsoredlinkedincpcsaas_b2b_leadscarousel_ad
Display bannergoogledisplayretargeting_q4banner_300x250
Affiliate partnertechblog_indiaaffiliatepartner_review
WhatsApp broadcastwhatsappmessagingfestive_offers_2024

How to Decide Which Parameters to Use

Apply the following logic for common campaign scenarios:

1

You are sharing a link in an email campaign

Add utm_source=newsletter (or your ESP name), utm_medium=email, utm_campaign=your_campaign_name. Add utm_content if you have multiple links in the same email.

2

You are running Google Ads and want keyword-level tracking

Use utm_source=google, utm_medium=cpc, utm_campaign=campaign_name, utm_term={keyword} (Google will auto-populate the keyword with ValueTrack).

3

You are posting the same link in multiple social media posts

Use different utm_content values to distinguish which post drove traffic: utm_content=instagram_story vs utm_content=instagram_feed_post.

4

You want to track traffic from a QR code on print material

Build a UTM-tagged URL first, then generate the QR code from that URL. Use utm_source=print_flyer, utm_medium=qr_code, utm_campaign=campaign_name.

5

You are sharing links inside your own app or website

Do NOT add UTM parameters to internal links. This resets sessions in GA4 and overwrites the original traffic source. Internal navigation should have no UTM tags.

6

You want to track a partner blog post or press mention

Provide the partner a pre-built UTM URL: utm_source=partner_name, utm_medium=referral, utm_campaign=pr_outreach_2024.

UTM Values for Real Campaign Scenarios

Recommended UTM parameter values for common Indian and international marketing scenarios:

Campaign ScenarioRecommended UTM Values
Diwali sale email to 50,000 subscriberssource=newsletter, medium=email, campaign=diwali_sale_2024, content=header_cta
Google Search ad for your SaaS productsource=google, medium=cpc, campaign=saas_india_q4, term={keyword}
Instagram Reel with link in biosource=instagram, medium=social, campaign=product_launch, content=reel_oct_week3
QR code on a conference brochuresource=conference_name, medium=qr_code, campaign=event_2024
Affiliate link on a tech review sitesource=techreviewer_site, medium=affiliate, campaign=review_partnership
WhatsApp Business broadcast messagesource=whatsapp, medium=messaging, campaign=festive_sale_2024
LinkedIn InMail campaignsource=linkedin, medium=email, campaign=b2b_outreach_q1
Retargeting display banner on Googlesource=google, medium=display, campaign=retargeting_q4, content=banner_728x90

Frequently Asked Questions

Are UTM parameters case-sensitive?

Yes, in Google Analytics 4 and most analytics platforms, UTM parameter values are case-sensitive. 'Email', 'email', and 'EMAIL' appear as three separate sources in your reports. This is the most common cause of fragmented campaign data. Establish a strict convention of lowercase-only across your team and enforce it with a UTM builder that normalises case automatically.

Do UTM parameters affect SEO?

No, UTM parameters do not affect your search engine rankings. They are stripped from Google's index using canonical tags or robots.txt, and Google understands they are tracking parameters. However, you should set up URL parameter handling in Google Search Console to tell Google to ignore UTM parameters when crawling, preventing duplicate content issues from pages indexed with and without UTM tags.

What is the difference between utm_source and utm_medium?

Think of utm_source as the specific publisher or platform that sent the traffic, and utm_medium as the channel type. For a Google paid search ad: source=google (the specific platform), medium=cpc (the channel type). For a newsletter: source=mailchimp (or your newsletter name), medium=email (the channel type). Source answers 'who sent this traffic?' and medium answers 'what kind of channel was it?'.

What should I use for utm_medium for social media?

Use 'social' as the medium for organic social media posts across all platforms. For paid social ads (boosted posts, Facebook Ads, LinkedIn Sponsored), use 'cpc' or 'paid_social' to distinguish paid from organic. Keeping organic social as 'social' and paid as 'cpc' ensures GA4's default channel groupings classify traffic correctly in your reports.

Can I use UTM parameters with WhatsApp and SMS?

Yes. WhatsApp Business broadcasts and SMS messages can carry UTM-tagged links. The link recipient clicks the URL which includes the UTM parameters, and GA4 records the visit with those attribution values. Use utm_medium=messaging or utm_medium=sms to distinguish these channels. WhatsApp traffic without UTM tags typically appears as Direct traffic in analytics, making it impossible to measure without tagging.

What happens if I forget to add UTM parameters to a campaign link?

Traffic from untagged links is attributed to 'Direct' in GA4 or falls into the 'Unassigned' channel group, making it impossible to measure the campaign's contribution. If you send 50,000 emails without UTM parameters and 2,000 people click through and convert, those conversions will appear to have come from nowhere — no campaign credit, no channel attribution, no way to measure ROI. Always build UTM-tagged links before any campaign launch.

How do I view UTM data in Google Analytics 4?

In GA4, go to Reports → Acquisition → Traffic Acquisition. The default dimension is 'Session default channel group'. Change the dimension to 'Session source/medium' to see your UTM source and medium combinations. For campaign-level data, use 'Session campaign'. You can also create custom explorations in the Explore section with dimensions like First user source, Session source, Session campaign, and Session manual term for keyword-level analysis.

Should I use UTM parameters on every link I share?

You should add UTM parameters to any link you share outside your own website — in emails, social posts, ads, QR codes, partner sites, and press mentions. You should never add UTM parameters to links within your own website (internal navigation), as this overwrites the original session attribution and makes your acquisition data inaccurate. A good rule: if the link crosses a domain boundary or leaves your site, tag it.

Related Concepts

Related Tools

UTM Builder

Build UTM-tagged campaign URLs with source, medium, campaign, term, and content. One-click copy.

Open Tool →

QR Code Generator

Turn your UTM-tagged URL into a scannable QR code for print, events, and offline campaigns.

Open Tool →

URL Encoder & Decoder

Encode and decode URL components — useful when UTM values contain special characters.

Open Tool →

Google SERP Simulator

Preview how your page title and meta description appear in Google search results.

Open Tool →