How to Use UTM Parameters for Affiliate Tracking
UTM parameters are the tags you add to the end of an affiliate link so Google Analytics can tell you which partner sent which click, and which of those clicks turned into a sale. For an affiliate manager, they turn a pile of anonymous “direct” traffic into a report that says one partner sent 412 clicks and $1,900 in revenue last month. This post covers how to build them, how to read them in your reporting, and the tagging mistakes that quietly break your attribution.
I’ve watched managers run programs for a year with no idea which partners moved the needle, because every click landed in Analytics under one gray blob called “direct” or “referral.” Their affiliate software knew the numbers. Their marketing dashboard didn’t. UTM parameters close that gap. They’re a small piece of plumbing, and once you set the convention, tagging a link takes about fifteen seconds.
One thing to get straight up front. UTM parameters are for your analytics and reporting. They are not the thing that pays your affiliates. Your affiliate platform still handles the cookie, the commission, and the payout. If you want the mechanics of how the cookie and pixel side works, read how affiliate tracking works and how to track affiliate links. Treat this post as the companion that lives one layer up, in your reporting.
What are UTM parameters?
UTM parameters are short bits of text added to the end of a URL that tell Google Analytics where a click came from. UTM stands for Urchin Tracking Module, named after Urchin, the analytics company Google bought in 2005. The name stuck. The idea is simple. You bolt a few labels onto a link, and Analytics reads those labels and files the visit under the source you named.
Here’s a plain link and a tagged version of the same link:
https://www.yoursite.com/product
https://www.yoursite.com/product?utm_source=janedoe&utm_medium=affiliate&utm_campaign=fall-launch
Both send the visitor to the same page. The visitor sees the same product, buys the same way, and never notices the tags. But your Analytics account now knows the click came from an affiliate named janedoe during your fall launch. Everything after the question mark is invisible to the buyer and gold to you.
If some of these terms are new, my glossary of affiliate marketing terms defines the vocabulary. For UTMs specifically, you only need to understand five labels, and two of them do most of the work.
What are the 5 UTM parameters and which ones matter for affiliates?
There are five UTM parameters. Three are required for the tag to do anything useful, and two are optional. For affiliate tracking, the ones that carry the weight are utm_source and utm_medium.
utm_source names who sent the click. For an affiliate program, this is where you put the individual partner’s name or ID. So utm_source=janedoe, or utm_source=aff_10428 if you tag by ID. This is the field that lets you separate one partner from another.
utm_medium names the channel. For affiliates, set this to a fixed value like utm_medium=affiliate on every single partner link. That one consistent value is what lets you pull every affiliate click into one bucket and compare the whole channel against email, paid ads, or organic.
utm_campaign names the promotion. Use it for launches, seasonal pushes, or specific offers. utm_campaign=fall-launch or utm_campaign=bfcm-2026. Leave it off for evergreen links if you want, though I like setting it to something like “evergreen” so no row shows up blank.
utm_content and utm_term are the optional two. utm_content lets you tell two links apart inside the same campaign, say a banner versus a text link from the same affiliate. utm_term was built for paid search keywords and rarely earns its place in an affiliate setup. Skip it unless you have a reason.
A fully tagged partner link with all the useful fields looks like this:
https://www.yoursite.com/offer?utm_source=janedoe&utm_medium=affiliate&utm_campaign=fall-launch&utm_content=email-banner
Source tells you the partner. Medium groups the channel. Campaign ties it to the promo. Content tells you it came from her email banner and not her blog sidebar. Four fields, one link, and now you can slice the data four different ways.
How do you build a tagged affiliate link?
You build a tagged affiliate link by taking your destination URL, adding a question mark, and stringing the UTM parameters together with ampersands. The structure never changes, so once you’ve done it twice, you’ve done it forever.
Start with the page you want the affiliate to send traffic to:
https://www.yoursite.com/checkout
Add a question mark to signal that parameters are coming, then your first tag:
https://www.yoursite.com/checkout?utm_source=janedoe
Separate each additional tag with an ampersand:
https://www.yoursite.com/checkout?utm_source=janedoe&utm_medium=affiliate&utm_campaign=fall-launch
That’s the whole mechanic. Question mark once, ampersand between every tag after that. Google’s free Campaign URL Builder does this for you if you’d rather fill in boxes than type, and it spits out a clean tagged link you can copy.
The part that trips managers up isn’t the building. It’s the consistency. If you decide partner names go in utm_source in all lowercase with no spaces, that rule has to hold for all 300 partners. The moment one link uses “JaneDoe” and another uses “jane_doe,” Analytics reads them as two different affiliates and splits her numbers in half. Write the convention down. Keep a master list. The same discipline you use for commission rules and partner tiers applies to your tags.
Tagging links by hand works when you have ten partners. It falls apart at a hundred. If you want the mechanics of how clicks, cookies, and attribution fit together before you scale your tagging, read How Affiliate Tracking Works. It explains what your software is doing under the hood so your UTM setup and your platform tell the same story.
How do UTM parameters show up in your Google Analytics reporting?
UTM parameters show up in Google Analytics under Traffic acquisition, where utm_source becomes the Session source, utm_medium becomes the Session medium, and utm_campaign becomes the Session campaign. Tag your links correctly and each affiliate appears as its own row you can sort by clicks, conversions, and revenue.
In GA4, open Reports, then Acquisition, then Traffic acquisition. Change the primary dimension to Session source / medium and you’ll see rows like “janedoe / affiliate” and “mikesmith / affiliate.” Add your purchase event as a key event and a revenue column appears next to each row. Now you can see that janedoe sent 412 clicks and $1,900, while mikesmith sent 88 clicks and $60. Same channel, wildly different partners.
Group the whole channel by filtering Session medium to “affiliate” and you get one number for the entire program that you can stack against your other marketing. That comparison is where a lot of managers finally see the case for their program in the same dashboard the CEO already looks at.
UTM data answers “which partner sent this traffic and what did it earn.” It does not answer “what commission do I owe and when is it due.” For the numbers tied to program health rather than raw revenue, like earnings per click and active affiliate rate, see the affiliate program KPIs every manager should track and how to track affiliate performance. UTMs feed the top of that picture. They aren’t the whole picture.
Once your UTM channel revenue is flowing into Analytics, the next question is which numbers predict a healthy program. I break the full list down in Affiliate Program KPIs: The Metrics Every Affiliate Manager Should Track, so you know which rows to watch and which to ignore.
What tagging mistakes break affiliate attribution?
The tagging mistakes that break affiliate attribution are inconsistent naming, tagging links that point to another domain without cross-domain tracking, and letting affiliates build their own tags. Each one quietly splits or loses data, and you won’t notice until the numbers don’t add up.
Inconsistent naming is the big one. Analytics treats utm_source values as case sensitive, so “Janedoe” and “janedoe” become two separate affiliates. Same for “Affiliate” versus “affiliate” in the medium field. A customer clicks one partner’s tagged link, doesn’t buy, comes back through a slightly different tag, and now her sale gets filed under a source that looks like a stranger. Pick one casing, one format, and enforce it.
The second mistake shows up when your affiliate sends traffic to yoursite.com but your checkout lives on checkout.yoursite.com or a separate cart domain. Without cross-domain tracking configured, GA4 starts a new session at the domain jump and the affiliate loses credit for the sale. If your buying flow crosses domains, fix that in your Analytics settings before you trust a single revenue number. And if you’re still deciding how credit should be assigned when two partners touch the same sale, the affiliate attribution models post covers last-click, first-click, and the options in between.
The third mistake is handing tagging to affiliates. The moment 300 partners each invent their own utm_source, your report turns to noise. You control the tags. Give each affiliate a pre-built link, or better, use software that generates the tagged link automatically so nobody fat-fingers it.
One more worth naming. UTMs tell you where a click came from, but they don’t verify the click was real. If a source is posting suspiciously high click counts with near-zero conversions, that’s a fraud signal your UTM report can surface but not stop. The affiliate fraud prevention tools post covers how to catch that, and the broader click-and-cookie questions get answered in this Q and A on clicks, commissions, and cookies.
Clean tagging is one piece of a program that reports accurately end to end. I wrote the whole system down, from tracking to recruiting to payouts, in The Book on Affiliate Management. It’s the 300-plus page playbook behind the $1 million a month program I built, and the tracking chapter goes deeper than any single post can.
When do UTM parameters stop being enough?
UTM parameters stop being enough the moment you need to pay someone. They report traffic and revenue by source. They don’t apply your cookie window, calculate commission owed, hold a payout when an order gets refunded, or store the partner’s tax details. For that, you need affiliate software sitting alongside your analytics.
Think of it as two systems doing two jobs. Your UTM tags and Google Analytics answer the marketing question: which partners drive traffic and revenue, and how does the channel compare to everything else you run. Your affiliate platform answers the operational question: who gets paid, how much, and when. Some managers try to run the whole program out of a spreadsheet and their Analytics account. It works until the first refund, the first commission dispute, or the first partner asking why their numbers don’t match yours.
This is the exact problem I built AffiliateHQ to solve, and I’ll disclose plainly that I own it. I’ve run affiliate programs for more than 20 years and won four Affiliate Manager of the Year awards, and every platform I tried had been built by someone who’d never run a program. AffiliateHQ generates the tagged links so your naming stays consistent, ties each click to the cookie and the commission, and handles the payout side that UTMs can’t touch. If you’re comparing options first, how to choose the right affiliate platform walks through what to look for, and what AffiliateHQ is covers where mine fits.
If tagging every partner by hand is eating your week, software that builds the links and ties them to payouts pays for itself fast. AffiliateHQ is the platform I built after two decades of running programs, so every feature maps to the way a real manager works, tagging included. Ownership disclosed: it’s mine.
What should you set up today?
Do three things before you tag another link. First, write your naming convention down: lowercase partner name or ID in utm_source, a fixed utm_medium=affiliate on every link, and a utm_campaign format for promos. That single decision prevents most attribution headaches.
Second, check your cross-domain setup in GA4 if your checkout lives on a different domain than your landing pages. Fix it now, before you make decisions on numbers that are quietly leaking sales.
Third, stop letting partners build their own tags. Pre-build every link yourself or let your software do it. Consistency at 300 partners only happens when one system controls the tagging. Get those three in place and your affiliate channel goes from a gray blob to a report you can run the program from.
