UTM Parameters: The Complete Small Business Guide (Plus a Naming Template)
Nov 02, 2026Updated October 2026 · Written by Adrian Prokopiec · 9 min read
UTM parameters are short tags added to the end of a web address so Google Analytics 4 can record exactly where a visitor came from, which channel sent them and which campaign they clicked. Google says to always use three of them, utm_source, utm_medium and utm_campaign, and a US small business can set up a working naming convention in 20 minutes.
Without UTMs, every click from your newsletter, your Instagram bio, your Google Business Profile post and the QR code on your van arrives in Google Analytics looking roughly the same. With them, you can see that the newsletter brought 40 visits and three enquiries while the Instagram post brought 200 visits and none. That is the difference between guessing and knowing where your marketing time is paying off.
This guide covers the five parameters plus the newer ones GA4 added, how GA4 actually reads them, a copy-paste naming template, the ten mistakes that quietly wreck your reports, and a worked set of links for one fictional business. Everything about how GA4 behaves is taken from Google’s own custom campaigns documentation, opened while writing this.
What are UTM parameters and what does each one do?
A UTM parameter is a key and a value stuck on the end of a URL after a question mark. utm_source=newsletter is one parameter. Chain several together with ampersands and you get a tagged link:
https://www.example.com/book?utm_source=newsletter&utm_medium=email&utm_campaign=spring-tune-up
The page the visitor lands on is identical. Only the analytics record changes. Google’s documentation lists nine parameters in total. Here is what each one is for, which ones Google says you must use, and where the value shows up in GA4.
| Parameter | Required? | What goes in it | Example | Where it lands in GA4 |
|---|---|---|---|---|
| utm_source | Yes | The referrer: the site, app or place the link lived | newsletter, instagram, van-decal | Session source |
| utm_medium | Yes | The type of channel | email, social, cpc, qr | Session medium (and decides the channel) |
| utm_campaign | Yes | The promotion, offer or theme | spring-tune-up | Session campaign |
| utm_id | Recommended by Google | A campaign ID, mainly for matching uploaded cost data | 2027-03-tuneup | Campaign ID |
| utm_term | Optional | The paid keyword | plumber-near-me | Session manual term |
| utm_content | Optional | Tells two links in the same place apart | header-button, footer-text | Session manual ad content |
| utm_source_platform | Recommended by Google | The buying platform that set budgets and targeting | Search Ads 360 | Source platform |
| utm_creative_format | Optional | Creative type: display, video, search | video | Not reported in GA4 yet (Google’s words) |
| utm_marketing_tactic | Optional | Targeting: remarketing, prospecting | prospecting | Not reported in GA4 yet (Google’s words) |
For a small business, the three required ones do almost all the work. Add utm_content when you have two links to the same page in one email. Ignore the last two until Google starts reporting them. The “where it lands” column for source, medium and campaign comes from Google’s page; the dimension names for the optional parameters are the ones you will see in GA4’s report pickers rather than wording quoted from Google, so check them against your own property.
How does GA4 read UTM parameters?
GA4 reads the tags on the first page of the session and stores them against that session. You then see them under Reports, Acquisition, Traffic acquisition, where you can switch the main column between Session source/medium, Session source, Session medium and Session campaign. Google’s documentation names those four dimensions as the place to look.
Three behaviours trip people up, and all three are stated plainly in Google’s documentation:
- Values are case-sensitive. Google’s example is that
utm_source=googleandutm_source=Googleare two different sources. SpringSale and Spring_Sale are two different campaigns. Your report splits in half and neither half looks like much. - Missing parameters become “(not set)”. Leave off utm_medium and the session has a source but a medium of (not set), which makes it almost impossible to group.
- The medium decides the channel. GA4’s default channel group rules sort traffic by the medium value. A medium of
emaillands in the Email channel. A medium containingcp(so cpc, cpm, cpv) or starting withpaidlands in a Paid channel. A medium ofsociallands in Organic Social. Anything the rules don’t recognise lands in Unassigned.
That last point is the one I see broken most often. In the accounts I’ve audited, the single biggest line in Unassigned is usually a well-meaning tag like utm_medium=newsletter or utm_medium=facebook. The owner put the source in the medium slot. GA4 can’t match it to a channel, so a year of email traffic sits in a bucket called Unassigned and the email programme looks like it did nothing.
One more thing Google’s page notes: UTM values are stripped out of the Landing page and Page path dimensions and appear only in Page location. So if you’re looking at landing pages and wondering where the tags went, that is why. If you’re still setting GA4 up, do that first with our GA4 setup guide for small business, then come back here.
What naming convention should a small business use for UTM parameters?
The convention matters more than the tool. A convention is just a short list of allowed values, written down once, that everybody who sends a link uses. Google’s own best-practice guidance recommends lowercase as the standard. We add hyphens between words, because underscores and spaces are where typos breed. Here is the template. Copy it into a spreadsheet and don’t let anyone invent new values without adding them to the sheet.
| Parameter | Rule | Allowed values (start here, extend as needed) |
|---|---|---|
| utm_medium | Only values GA4 recognises as a channel | email · social · cpc · display · sms · referral · affiliate · qr (lands in Unassigned by design, see below) |
| utm_source | The platform or physical place, one word | newsletter · instagram · facebook · google · gbp · yelp · van · flyer · receipt |
| utm_campaign | year-month-theme, so campaigns sort by date | 2027-03-spring-tune-up · 2027-11-black-friday · evergreen-bio-link |
| utm_content | Position or variant, only when two links share a source | header-button · footer-text · image · version-a |
| utm_term | Paid search keyword only; skip everywhere else | emergency-plumber-phoenix |
The year-month prefix on campaigns is the practitioner’s trick. After eighteen months you will have forty campaigns. Sorted alphabetically with the date first, you can read the history straight down the report. Without it, “spring-sale” from three different years merges into one meaningless row.
What are the ten most common UTM mistakes?
- Mixed capitalisation: Facebook and facebook are two sources. Lowercase everything, every time.
- UTMs on internal links: tagging a link from your homepage to your booking page starts a brand-new session with a fake source and wipes out the real one. Never tag links that stay on your own site.
- Missing utm_medium: the session lands as (not set) and no channel rule can catch it.
- Source and medium swapped: utm_medium=instagram sends your social traffic to Unassigned. Medium is the type, source is the place.
- Spaces in values: a space becomes %20 in the URL and “spring sale” and “spring-sale” report separately. Hyphens only.
- Personal information in a tag: never put a customer’s name or email in utm_content to track an individual. It ends up in your analytics, your server logs and anyone’s browser history, and it breaches Google Analytics’ terms.
- Tagging Google Ads by hand: Google Ads auto-tags with gclid and GA4 reads it. Manual UTMs on top can override the richer data. Leave auto-tagging on and don’t double up; our guide to what Google Ads cost in the US covers what that data is worth.
- Repeating information: utm_source=facebook with utm_campaign=facebook-post tells you nothing twice. Each parameter should add something.
- No written convention: three people tagging links from memory will produce six spellings of the same thing within a month.
- Never testing the link: click every tagged link once in a private window, then check GA4’s Realtime report shows the right source and medium before the campaign goes out.
What does a complete UTM set look like for one small business?
Meet Desert Paws, a fictional mobile dog groomer in Phoenix running a March tune-up promotion. Every link points at the same booking page. Here is every tag she sends out, built from the convention above.
| Where the link lives | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|
| Newsletter, header button | newsletter | 2027-03-spring-tune-up | header-button | |
| Newsletter, footer text link | newsletter | 2027-03-spring-tune-up | footer-text | |
| Instagram bio link | social | evergreen-bio-link | (blank) | |
| Facebook post about the promo | social | 2027-03-spring-tune-up | (blank) | |
| Boosted Facebook post | cpc | 2027-03-spring-tune-up | video | |
| Google Business Profile post | gbp | referral | 2027-03-spring-tune-up | (blank) |
| QR code on the van | van | qr | evergreen-van | (blank) |
| Printed flyer at the vet | flyer | qr | 2027-03-spring-tune-up | vet-counter |
The Google Business Profile row matters more than it looks: GBP posts and the website button are a steady lead source for local businesses, and tagging them is the only way to separate them from ordinary Google traffic (see our Google Business Profile optimisation hacks). Two deliberate choices in that table. The boosted post uses cpc as its medium so GA4 files it under Paid Social and keeps it apart from the free post. And the QR codes use a medium of qr, which GA4’s default rules don’t recognise, so they will land in Unassigned. That is fine for a small business: in the Traffic acquisition report you filter by Session medium equals qr and you have a clean offline-to-online report that nothing else pollutes. If it bothers you, GA4 lets you build a custom channel group and give qr its own channel.
Nothing here tracks a person, and nothing is typed from memory: the full link for each row is built once, pasted into the sheet, and copied from there. To make the links, use Google’s Campaign URL Builder, linked from the custom campaigns page; it fills the question marks and ampersands so you can’t get the punctuation wrong. Our social media strategy guide covers where those social links should sit, and the email A/B testing guide shows why the two newsletter rows with different utm_content values matter. If your welcome and follow-up emails run on autopilot, tag those too; the three email sequences every small business needs each deserve their own campaign value so you can see which one converts.
How do you read UTM results in GA4?
Twenty minutes, once a month, is enough. Here is the routine I run on every account, written from practice rather than quoted from Google, so the menu labels may shift slightly as GA4 changes.
| 1 | Open Reports, Acquisition, Traffic acquisition and set the date range to the campaign period. This report is session-based, which is what you want for campaign links; the User acquisition report shows only how a user first found you, ever. |
| 2 | Change the primary dimension to Session campaign and find your year-month campaign name. Every tagged link for that promotion rolls up into one row. |
| 3 | Add Session source/medium as a secondary dimension to split that campaign into newsletter/email, facebook/social, facebook/cpc and so on. Now you can see which link did the work. |
| 4 | Read the key events column, not the sessions column. Visits are vanity. Bookings, calls and form fills are the number. If you haven’t marked those as key events yet, that is the next job. |
| 5 | Check the Unassigned channel once. If anything other than your qr traffic is in there, a tag is wrong. Fix the convention sheet, not just the link. |
Once the numbers are in front of you, the marketing formulas cheat sheet turns sessions and key events into cost per lead by channel, and the marketing ROI guide shows how to carry that into a monthly report without a data analyst. The terms used throughout this post are defined in plain English in our digital marketing glossary.
Want the full measurement system? take the SEO and AI Visibility course.
Frequently Asked Questions
What does UTM stand for?
UTM stands for Urchin Tracking Module. Urchin was the web analytics company Google bought in 2005, and its software became Google Analytics. The parameter names kept the Urchin prefix, which is why every tracking tag still starts with utm_ two decades later even though nothing else about the tool survives.
What are the five UTM parameters?
The five classic UTM parameters are utm_source, utm_medium, utm_campaign, utm_term and utm_content. Google says the first three should always be used. GA4 added utm_id and utm_source_platform, which Google recommends, and utm_creative_format and utm_marketing_tactic, which Google’s documentation says are not yet reported in Google Analytics.
Are UTM parameters case-sensitive?
Yes. Google’s documentation states that utm_source=google and utm_source=Google are treated as different values, and that SpringSale and Spring_Sale are distinct campaigns. Use lowercase for every value, every time, or your reports will split the same campaign across two or more rows.
Do UTM parameters affect SEO?
Not in practice. A tagged link creates a second URL for the same page, but Google’s canonicalisation guidance explains that signals to a parameterised URL are consolidated into the preferred page when that page is the canonical. Most website platforms set canonical tags automatically. Never put UTMs on links within your own site, though, because that breaks your analytics rather than your SEO.
Should I use UTM parameters on Google Ads?
Usually not by hand. Google Ads auto-tagging adds a gclid parameter that GA4 reads and uses to pull in campaign, ad group and keyword detail. Google’s guidance is to use dynamic tagging where a platform supports it, to avoid manual entry errors. Reserve hand-built UTMs for email, social posts, printed materials and other places nothing tags for you.
Why is my UTM traffic showing as Unassigned in GA4?
Almost always because the utm_medium value is not one GA4’s default channel rules recognise. A medium of newsletter or facebook matches nothing, so the session falls into Unassigned. Change the medium to email, social, cpc, display, referral or sms and the traffic will sort itself into the right channel from the next click onward.
Related: Google Analytics 4 for small business: the setup guide
Want to know which marketing actually brings in customers?
Tagging links is the first step. Learn the whole system, from tracking to reporting to acting on the numbers, in 20-minute lessons built for people who run a business.
Built for busy learners and small business owners.
Learn digital marketing in 20 minutes a day
Self-paced courses from someone who runs digital for two national brands. Build skills you can show an employer or a client.