SkyBrance Logo
SkyBrance
Menu

What Are UTM Parameters and How to Use Them

10 min read
|
Updated November 8, 2026
300 views
Diagram breaking down a URL with UTM parameters, showing utm_source, utm_medium, and utm_campaign labelled as separate components of the query string

Learn what UTM parameters are, what each one does, and how to use them correctly. Includes GA4 naming rules, real examples, and the mistakes that break your reports.

You launched a campaign across email, Instagram, LinkedIn, and a paid ad. A week later you open your analytics, and most of the traffic is filed under "Direct" and "Unassigned."

The visits happened. The conversions happened. But which channel actually earned them? Your report cannot tell you.

That gap has a fix, and it is older and simpler than most people expect: UTM parameters. They are plain text appended to a URL, and they are the difference between guessing where your traffic came from and knowing.

This guide covers what each parameter does, the naming rules that keep your reports clean, real examples for every major channel, and the mistakes that silently corrupt attribution data.

What Are UTM Parameters?

UTM parameters are short tags added to the end of a URL that tell analytics platforms where a visitor came from and which campaign brought them.

They look like this:

https://skybrance.com/plans?utm_source=linkedin&utm_medium=social&utm_campaign=launch

Everything before the ? is your normal page URL. Everything after it is metadata for your analytics tool. The page loads exactly the same way - the parameters change nothing for the visitor.

"UTM" stands for Urchin Tracking Module, named after Urchin Software, the analytics company Google acquired in 2005. The name is a historical accident. The mechanism is still the backbone of campaign attribution two decades later.

Three things are worth knowing up front:

  • No setup required. Google Analytics 4 reads UTM parameters natively. There is no script to install or setting to enable.
  • They are not cookies or pixels. They are plain text in a URL, which is why they keep working in environments where script-based tracking struggles.
  • They only work on links you control. You tag your own outbound links. You cannot tag someone else's link to you.

Anatomy of a Tagged URL

Every tagged URL has the same three-part structure:

https://skybrance.com/plans ? utm_source=linkedin & utm_medium=social
base URL  ยท  separator  ยท  parameter  ยท  separator  ยท  parameter

The rules are mechanical:

  • A ? marks where the parameters begin
  • Each parameter is a key=value pair
  • An & separates one parameter from the next
  • Order does not matter - GA4 reads them by name, not position

If your page URL already contains a ? (for example ?ref=partner), then your first UTM joins with & instead of ?. Getting this wrong is one of the more common ways a tagged link silently stops working.

The Five Parameters Explained

There are five standard parameters. Three are essential, two are situational.

utm_source - where the click came from

The specific platform, site, or app that sent the visitor.

utm_source=linkedin
utm_source=newsletter
utm_source=partner_blog

Think of it as the sender's name. Be specific: linkedin, not social.

utm_medium - what kind of traffic it is

The channel category. This is the parameter with real rules attached, covered in detail below.

utm_medium=email
utm_medium=cpc
utm_medium=social

Think of it as the delivery method.

utm_campaign - which campaign it belongs to

The name that ties every link in one marketing effort together, across all channels.

utm_campaign=diwali_sale_2026
utm_campaign=product_launch_q3

This is what lets you compare Instagram against email for the same campaign.

utm_content - which specific asset (optional)

Distinguishes variations within the same campaign - two buttons in one email, three ad creatives, header link versus footer link.

utm_content=hero_cta
utm_content=footer_link
utm_content=creative_b

This is also how you A/B test which creative actually converts.

utm_term - the keyword (mostly legacy)

Originally built for paid search keywords. In GA4 it no longer feeds keyword reports the way it did in Universal Analytics - Google Ads auto-tagging handles that now. Treat it as a free-form slot if you need one more dimension, or skip it entirely.

utm_term=api_testing_tool

Short version: always use source, medium, and campaign. Add content when you are comparing variants. Ignore term unless you have a specific reason.

Source vs Medium: The Mix-Up That Breaks Reports

Of everything that goes wrong with UTM tagging, this is the one that shows up most often, and it is worth slowing down for because the fix is trivial and the damage is not. Source is the specific platform; medium is the category that platform belongs to. Get them the wrong way round and nothing errors - the data simply files itself under headings that make no sense, and you find out a quarter later.

Table comparing utm_source and utm_medium values for a newsletter, LinkedIn post, Google ad, Instagram ad, and printed flyer, with an example of the swapped values that fragment reports
Where the click came fromutm_sourceutm_medium
Your monthly newsletternewsletteremail
An organic LinkedIn postlinkedinsocial
A paid Google adgooglecpc
A paid Instagram adinstagrampaid_social
A QR code on a flyerflyerprint
A partner's blog postpartner_namereferral

Notice linkedin and instagram appear as sources, never as mediums. And email and cpc appear as mediums, never as sources.

Flip them and your data does not vanish - it fragments. You end up with traffic split across social/linkedin and linkedin/social as if they were two unrelated channels, and no report will ever add them back together for you.

Why utm_medium Has Rules (And the Others Don't)

Four of the five parameters are yours to name however you like. One is not, and skipping over that difference explains most of the broken analytics setups I have looked at. GA4 sorts traffic into Default Channel Groups by matching utm_medium against a fixed vocabulary. Values it recognises get filed correctly. Values it does not recognise fall into Unassigned - a bucket that answers no question you will ever ask.

Values GA4 understands include:

  • email โ†’ Email
  • cpc, ppc, paidsearch โ†’ Paid Search
  • paid_social โ†’ Paid Social
  • social, social-network โ†’ Organic Social
  • affiliate โ†’ Affiliates
  • referral โ†’ Referral
  • display, banner โ†’ Display

If you invent a value - emails, e-mail, Email_Blast, insta_ad - GA4 has no rule for it and the traffic disappears from your channel reports.

The asymmetry matters: utm_source, utm_campaign, and utm_content are free text. You can name them whatever you like. Only utm_medium is matched against a controlled vocabulary. Treat it as a dropdown with fixed options, not a text field.

Naming Conventions That Save You Later

UTM values are case-sensitive. To an analytics platform, these are three separate campaigns:

utm_campaign=SummerSale
utm_campaign=summersale
utm_campaign=Summer_Sale

Your report will show three rows where there should be one, each with a fraction of the real numbers. Nobody notices until someone asks how the summer sale performed and the answer is "which one?"

Four rules prevent almost all of this:

  • Always lowercase. Every parameter, every value, no exceptions.
  • Pick one separator and never switch. Underscores or hyphens - the choice does not matter, the consistency does. Avoid spaces, which browsers convert to + or %20 and make links unreadable.
  • Include a date or quarter in campaign names. diwali_sale_2026 is unambiguous a year later. diwali_sale is not.
  • Write the conventions down. A shared document listing your approved source and medium values is the highest-leverage thing a marketing team can maintain. Once more than one person builds links, memory stops working.

Real Examples by Channel

Copy these patterns and substitute your own campaign names.

Email newsletter

?utm_source=newsletter&utm_medium=email&utm_campaign=august_digest

Organic LinkedIn post

?utm_source=linkedin&utm_medium=social&utm_campaign=case_study_launch

Paid Instagram ad, testing two creatives

?utm_source=instagram&utm_medium=paid_social&utm_campaign=diwali_2026&utm_content=creative_a
?utm_source=instagram&utm_medium=paid_social&utm_campaign=diwali_2026&utm_content=creative_b

QR code on a printed flyer

?utm_source=flyer&utm_medium=print&utm_campaign=trade_expo_2026

Partner or guest post

?utm_source=partner_blog&utm_medium=referral&utm_campaign=q3_collab

WhatsApp broadcast

?utm_source=whatsapp&utm_medium=messaging&utm_campaign=festive_offer

Note the pattern in the paid Instagram example: source, medium, and campaign stay identical across both links, and only utm_content changes. That is what makes the two creatives directly comparable in one report.

The Ugly URL Problem

Everything above assumes you are willing to put the resulting URL in front of people, and that is where the practical objection to UTM tagging usually comes from: the tags work, and they look awful.

Here is a properly tagged link:

https://skybrance.com/plans?utm_source=instagram&utm_medium=paid_social&utm_campaign=diwali_sale_2026&utm_content=creative_a

That is 118 characters of query string attached to a 27-character page URL. Now try putting it in an Instagram caption, a WhatsApp message, a printed flyer, or anywhere with a character limit.

Beyond looking unprofessional, long tagged URLs create real problems:

  • They erode trust. A wall of tracking parameters reads as spam to a lot of people, and click-through rates suffer.
  • They break on wrapping. Email clients and messaging apps split long URLs across lines, producing dead links.
  • They cannot be printed. Nobody types 145 characters off a flyer.
  • They leak your strategy. Anyone can read your campaign names, creative labels, and channel mix straight off the URL.
  • They are frozen once shared. A typo in utm_medium on a printed QR code is permanent.

This is the natural meeting point between UTM tracking and link shortening. The short link is what your audience sees; the tagged URL is what your analytics receives. Both jobs get done, and neither compromises the other:

skyh.in/diwali โ†’ https://skybrance.com/plans?utm_source=instagram&utm_medium=paid_social&utm_campaign=diwali_sale_2026

The visitor clicks something clean and memorable. GA4 still receives every parameter, because the redirect carries the full destination URL. Using a branded short domain strengthens the effect - a link with your own name on it earns more clicks than a generic one.

There is a second benefit that only shows up later. If your short link is served as a temporary redirect, you can fix a mistyped UTM value after the link is already live in a printed brochure. That is only possible if the destination stays editable - which is exactly the 301 vs 302 redirect decision covered in our previous guide.

Where UTM Tracking Breaks

  • Tagging internal links. The cardinal sin. If someone arrives from Google Search and then clicks a tagged internal banner, GA4 starts a new session and credits the banner instead of Google. Your real acquisition source is overwritten by your own homepage. Only tag links pointing at your site from outside it.
  • Inconsistent casing. Facebook and facebook are two different sources forever. Lowercase everything.
  • Inventing utm_medium values. Anything outside GA4's vocabulary lands in Unassigned.
  • Manually tagging Google Ads links. Google Ads auto-tagging already handles attribution via gclid. Adding manual UTMs on top can override it and produce conflicting data. Leave auto-tagging on.
  • Using spaces in values. They become + or %20 and make links fragile and unreadable. Use underscores.
  • Tagging without a plan. Ten people inventing their own conventions produces a report with forty campaign names for six campaigns. Agree on the taxonomy before the first link is built.
  • Forgetting ? vs &. If the URL already has a query string, your first UTM needs &, not a second ?.

Where to See the Data

Once your links are tagged, the data appears automatically in GA4 under Reports โ†’ Acquisition โ†’ Traffic acquisition, where you can break down sessions by source, medium, and campaign.

The catch is that UTM data tells you what happened after the click. It cannot tell you anything about the click itself - where in the world it came from, what device was used, or whether it was a bot rather than a person.

That is the layer a link management platform adds, because it sees the request itself. With SkyShare, the click is recorded before the redirect fires, so the country and city, the device, browser and operating system, and the referring page are all captured whether or not the visitor ever loads enough of your page for GA4 to fire. Bot traffic is separated out at the same point, which is the difference between a click count and a click count you can quote to someone.

Used together, the two layers answer different halves of the same question. Your short link analytics tell you who clicked and from where. Your UTM parameters tell you which campaign earned it and what they did next. Neither is a substitute for the other - see our guide on tracking clicks on social media posts for how this works in practice.

The Short Version

This article is long because the failure modes are specific. The working knowledge is not. If you keep one thing from it, keep this:

UTM parameters cost nothing and install nothing, which is probably why they get treated casually. They are also the only reason your analytics can tell an email subscriber apart from an Instagram follower, and once a quarter of tagging has gone in wrong there is no retroactive fix - the sessions were recorded the way they were recorded.

Tagged URLs are long and unpleasant to share, which is the practical reason most people put a short link in front of them. If that is where you are heading next, the order you do it in matters more than anything else.

Frequently Asked Questions

What are UTM parameters used for?

UTM parameters are text tags added to the end of a URL that tell analytics platforms where a visitor came from and which campaign brought them. Without them, traffic from email, social posts, and messaging apps often gets filed as "Direct" or "Unassigned," making it impossible to tell which marketing channel actually drove your results.

What is the difference between utm_source and utm_medium?

utm_source is the specific platform that sent the click, such as linkedin, newsletter, or instagram. utm_medium is the broader category that platform belongs to, such as social, email, or cpc. A common mistake is swapping them, which fragments your reports into duplicate channels that never add back together.

Do UTM parameters affect SEO?

Not for the pages you tag externally, because search engines generally treat the parameters as the same page and your canonical tag resolves any ambiguity. The real risk is tagging internal links, which does not harm SEO directly but corrupts your attribution data by overwriting the visitor's original acquisition source.

Can you use UTM parameters with short links?

Yes, and it is the recommended approach. You build the full tagged URL as the destination, then share the short link. Visitors see a clean, memorable link while your analytics platform still receives every parameter, because the redirect passes along the complete destination URL.

Why is my UTM traffic showing as Unassigned in GA4?

Almost always because utm_medium contains a value GA4 does not recognise. GA4 matches medium against a fixed vocabulary - email, cpc, social, paid_social, referral, affiliate, display - to assign a channel group. Invented values like "e-mail" or "insta_ad" have no matching rule, so the traffic falls into Unassigned.

Are UTM parameters case-sensitive?

Yes. Facebook, facebook, and FaceBook are recorded as three separate sources, splitting one campaign across three report rows. Always use lowercase for every parameter and value, and pick one separator - underscores or hyphens - and stay with it.

Found this helpful?