1. Home
  2. Blog
  3. Marketing
  4. UTM Source vs Medium vs Campaign: What E...
Marketing

UTM Source vs Medium vs Campaign: What Each One Does

If you've ever stared at a UTM Builder and wondered "wait, is Facebook the source or the medium?" — you're not alone. This guide clears it up for good.

UTM Source vs Medium vs Campaign: What Each One Does
Copied!

You've heard you should be using UTM parameters. Maybe you've even built a few UTM links. But if you're honest, you've probably just guessed at some of the fields. You typed "facebook" somewhere, "social" somewhere else, crossed your fingers, and moved on.

Most people do this. And it works — kind of. The link tracks. Some data shows up in Analytics. But when you go to actually read that data and figure out what's working, it's a mess. "Facebook" showing up in five different places. Campaigns split across weird rows. Numbers that don't add up.

That confusion almost always traces back to the same thing: not really understanding what each UTM parameter is actually supposed to hold.

This post fixes that. Not with definitions copied from a Google doc — but with the kind of explanation that makes you think "oh, that's why it's split that way."


First, a mental model that makes everything click

Before we go parameter by parameter, here's a way to think about all three at once.

Imagine you run a bakery and you're sending out delivery orders. When a delivery arrives at someone's door, three things describe it:

  • Who delivered it — was it Zomato, Swiggy, a friend, or your own delivery person?
  • What type of delivery it was — was it a paid order, a free sample, a gift someone sent?
  • What the occasion was — was it for Diwali, a birthday, the weekend sale you announced?

That's exactly what UTM parameters do for your website traffic:

  • utm_source = who delivered the visitor (the specific platform or place)
  • utm_medium = what type of marketing channel it was
  • utm_campaign = which specific campaign or promotion this was for

Now let's go deep on each one — because the details matter a lot more than the definitions.


utm_source — The "Who Sent This Person?" Field

The source is the specific, named place where your link lived. The actual platform, publication, or sender.

If someone clicked a link you posted on Instagram, the source is instagram. If they clicked from a Google Ad, the source is google. If they clicked a link inside your Mailchimp newsletter, the source is mailchimp. If a friend's blog linked to you, the source is that blog's name.

Think of it as a proper noun. It names a specific place.

Real examples:

Where the link was utm_source value
Facebook post or ad facebook
Instagram post, story, or bio instagram
Google Search Ad google
Your Mailchimp newsletter mailchimp
A WhatsApp broadcast whatsapp
A tweet on X/Twitter twitter
A partner website that linked to you partnersite_name
A YouTube video description youtube

The mistake people make: Using something vague like "social" as a source. That's not a source — it's a category. "Social" doesn't tell you anything useful. Which social platform? Instagram? Facebook? LinkedIn? Those are the sources.

Quick rule: If you can name it, it's probably a source. If it's a category, it's probably a medium.


utm_medium — The "What Type of Marketing Was This?" Field

The medium is the channel category — the method of marketing, not the specific platform.

This is where people get confused the most, because medium and source sound similar. The difference is: source is specific, medium is general.

Your source might be instagram, but your medium is social. Your source might be mailchimp, but your medium is email. Your source might be google, but your medium is cpc (cost per click, meaning a paid ad).

The reason the medium exists is so you can group your sources together in reports. If you want to compare "how does email do vs paid ads vs social?" — you use the medium. If you want to compare "how does Instagram do vs Facebook?" — you use the source.

Real examples:

Marketing activity utm_medium value
Any paid ad (Google, Facebook, etc.) cpc
Any email you send email
Any organic social post social
A link from someone else's website referral
An influencer or affiliate link affiliate
A banner or display ad display
A printed flyer with a QR code print
An SMS message sms

The mistake people make: Using something too specific here, like instagram_story or facebook_ad. Those details belong in the source or the campaign name — not the medium. Keep medium as a clean category word. You'll thank yourself when you're reading reports later.

One more thing about medium: Google Analytics actually has some built-in logic around common medium values. When you use cpc, GA automatically recognises it as paid search. When you use email, it puts those sessions in the email channel. Using standard values means your default channel groupings in GA4 work correctly out of the box. Use random values and GA4 doesn't know what bucket to put your traffic in.


utm_campaign — The "What Was This Campaign For?" Field

The campaign is your internal label for the marketing initiative. It's the answer to "why did you send this link?"

Was it for a seasonal sale? A product launch? Your weekly newsletter? A collaboration with another brand? That's the campaign name.

The campaign field is what lets you zoom out in your reports and see how an entire initiative performed — across all the different sources and mediums you used.

Real examples:

Situation utm_campaign value
Your Diwali sale across all channels diwali_sale_2026
A product launch you're promoting everywhere summer_collection_launch
Your weekly newsletter every Monday weekly_digest
A limited flash sale this weekend flash_sale_june
Brand awareness content you always run brand_awareness
A collaboration with another creator collab_brandname

The rule that makes campaign names actually useful: Make them readable to someone who wasn't there. You're going to look at these campaign names in Google Analytics six months from now. Will you remember what test1 or campaign_june meant? Probably not. Use names that include what it was and roughly when — like summer_sale_jun2026 or new_arrivals_q2.


How All Three Work Together — A Real Example

Let's say you run an online store and you're launching a new product line. You're promoting it across three channels at the same time.

You post about it on Instagram. You run a Facebook ad. You send an email to your list.

All three links go to the same landing page. Here's how you'd tag them:

Instagram post:

utm_source=instagram
utm_medium=social
utm_campaign=summer_launch_2026

Facebook ad:

utm_source=facebook
utm_medium=cpc
utm_campaign=summer_launch_2026

Email newsletter:

utm_source=mailchimp
utm_medium=email
utm_campaign=summer_launch_2026

Notice what's the same: the campaign name (summer_launch_2026) is identical across all three. That's intentional. When you open Google Analytics, you can filter by campaign name and see the combined performance of your launch — how much total traffic it drove, how many purchases it produced.

Then you zoom in and look by source: Instagram sent 320 visitors, Facebook sent 180, email sent 95. But email visitors had a 12% purchase rate vs Facebook's 3%. Suddenly you know something valuable — your email list is far more engaged than your Facebook ad audience. You can make real decisions from that.

None of that analysis would be possible if you used different campaign names across channels, or mixed up what goes in source vs medium.


Use Case 1: You're Promoting the Same Link in Multiple Places on Instagram

A lot of people put the same link in their Instagram bio, their stories, and sometimes their posts. They tag it all as source=instagram and wonder why they can't tell what's working.

The fix: keep source=instagram for all of them, but change the medium — or better, use utm_content to differentiate.

Bio link:     utm_source=instagram  utm_medium=bio       utm_campaign=product_launch
Story link:   utm_source=instagram  utm_medium=story     utm_campaign=product_launch
Post link:    utm_source=instagram  utm_medium=post      utm_campaign=product_launch

Now you can see in Google Analytics that your bio link drives 80% of your Instagram traffic and your stories barely move the needle. That's a real insight that changes how you spend your time.

You can build all three of these links in under two minutes using the ToolNexIn UTM Builder — just change the medium value for each one and copy the generated links.


Use Case 2: You're Running a Campaign Across Email and Paid Ads

Say you're running a flash sale. You're sending an email blast and also running a Google Ad to the same landing page.

Email link:  utm_source=mailchimp  utm_medium=email  utm_campaign=flash_sale_june
Google Ad:   utm_source=google     utm_medium=cpc    utm_campaign=flash_sale_june

Same campaign name, different source and medium. In your reports, you can see your email drove 200 visitors with a 15% conversion rate, while Google Ads drove 90 visitors with a 7% conversion rate. Your email list outperformed paid traffic by 2x on this campaign.

What do you do next time? Grow the email list. That's the kind of decision UTM data makes obvious.


Use Case 3: You're Sharing a Link Over WhatsApp (and the URL is Too Long)

UTM links get long. A full tracked URL can be 150+ characters, which looks awful in a WhatsApp message and makes people suspicious of clicking it.

The solution: build your UTM link in the UTM Builder, then paste that link into the ToolNexIn URL Shortener to get a clean, short version. The short URL redirects through your full UTM link, so all the tracking still works perfectly.

Your WhatsApp message goes from:

https://yourstore.com/sale?utm_source=whatsapp&utm_medium=broadcast&utm_campaign=weekend_deal

To something like:

https://toolnexin/tnx/xyz123

Same tracking. Much cleaner.


Use Case 4: You're Doing Offline Marketing With a Flyer or Poster

Most people think UTMs are only for digital links. But you can track offline traffic too — using a QR code.

Build your UTM link with something like:

utm_source=flyer  utm_medium=print  utm_campaign=market_july

Then take that link to the ToolNexIn QR Code Generator, paste it in, and download your QR code. Put that QR code on your flyer.

When someone at the market scans it, their visit gets tagged in Google Analytics as flyer / print. You can see how many people scanned and what they did on your site. If you're putting flyers in two different locations, create two different UTM links (change the source to flyer_market_a and flyer_market_b) and you'll know which location brings better traffic.

This is something most small businesses never do — which means it's a genuine advantage if you start doing it.


The One Table You Should Save

Here's a quick-reference summary you can come back to whenever you're filling in a UTM Builder form:

Parameter Question it answers Rule of thumb Example values
utm_source Who sent the traffic? Specific, named platform google, instagram, mailchimp, whatsapp
utm_medium What type of channel? General category cpc, email, social, print, referral
utm_campaign What was the campaign? Your own descriptive label diwali_sale, summer_launch, weekly_digest
utm_content Which version of a link? Use when you have two links in the same campaign bio_link, header_cta, ad_version_a
utm_term What keyword triggered this? Mostly for paid search keywords free+utm+builder

The first three (source, medium, campaign) are the ones you should be using on every single link you share. The last two (content, term) are for when you need more detail.


Three Things That Will Mess Up Your Data (and How to Avoid Them)

1. Inconsistent capitalisation. Google Analytics is case-sensitive. Instagram, instagram, and INSTAGRAM are three different sources in your reports. Always use lowercase. The UTM Builder on ToolNexIn actually warns you if you type something in uppercase — use that as your safety net.

2. Spaces in your values. summer sale becomes summer%20sale in a URL, which can cause issues. Use underscores (summer_sale) or hyphens (summer-sale). Pick one and stick to it.

3. Forgetting to use UTMs consistently. If you use UTM links on Monday's Instagram post but not Wednesday's, your data will be incomplete. Half your Instagram traffic will show up correctly tagged, the other half will show up as "direct" or "none." Make building UTM links a habit before you share anything. It takes 30 seconds in the UTM Builder.


Putting It All Together

The reason UTM parameters feel confusing at first is that three separate fields are doing three separate jobs — and none of them have obvious names.

But once it clicks, it's simple:

  • Source is where. The name of the place.
  • Medium is how. The type of channel.
  • Campaign is what. The name of your initiative.

Together, they tell a complete story in your analytics. "This person came from Instagram (source), via a social post (medium), as part of our summer launch (campaign)."

That story — multiplied across hundreds of visitors — tells you what's actually working in your marketing. Not guessing. Not gut feeling. Real data.

Start with your next link. Open the ToolNexIn UTM Builder, fill in source, medium, and campaign, and copy the result. Share that instead of your plain URL.

Your future self — the one looking at analytics reports next month — will be very glad you did.


Tools Used in This Post

All free, no sign-up:

  • UTM Builder — build trackable UTM links with live preview, in 30 seconds
  • URL Shortener — shorten long UTM links before sharing on WhatsApp or SMS
  • QR Code Generator — turn any UTM link into a scannable QR code for offline use

Want to understand UTM tracking from scratch? Read our complete guide to UTM tracking. Already using UTMs but getting messy data? Check out 7 UTM Mistakes That Break Your GA4 Data.

Enjoyed this guide?

Get weekly articles on tools, SEO tricks, and developer insights — directly to your inbox. No spam ever.