Why a tagged link matters
Put your website address in a Facebook post, an email signature, a QR code on the van and a printed flyer, and in your analytics every one of those visits looks the same. Some will show as coming from Facebook, most will show as "direct", and none of them will tell you which thing you spent money on worked.
A UTM link is the same address with a few labels on the end. The page loads exactly as normal, and the analytics gets told where the click came from.
Case and spaces are what ruin the data
This is the mistake nearly everybody makes, and it stays invisible until you try to add the numbers up.
utm_source=Facebook and utm_source=facebook are two different sources. Not variations of one, two. Every analytics tool treats them separately. Tag a campaign over a fortnight, typing the links by hand from a phone and a laptop, and you end up with Facebook, facebook and FaceBook as three rows, each holding a third of your traffic.
Spaces do the same thing. "spring sale" becomes "spring%20sale" or "spring+sale" depending on what encoded it, and now you have two more values that should have been one.
So this lowercases everything and turns spaces into hyphens, automatically, and tells you when it has. You can switch that off if you have an existing scheme to match, and then it warns you instead.
Source, medium and campaign are all required
Leave any of the three out and most analytics tools give up and file the visit under referral or direct. The link still works, the tracking silently does not, and you will not find out for a month.
Source is where it came from: facebook, newsletter, qr-code.Medium is how it got there: social, email, print, cpc.Campaign is what it belongs to: spring-sale, van-livery. A useful check is that several sources can share one medium. If you cannot tell your source and medium apart, you have probably put the same word in both.
Content is the one people skip and shouldn't
utm_content is optional, and it answers the question you care about. Two links to the same page from the same campaign, one tagged carousel-1 and one tagged footer-link, and now you know which creative did the work rather than just that Facebook sent forty people.
The two things this handles that most builders don't
An existing query string. Plenty of builders just stick "?utm_source=" onto whatever you give them. Paste an address that already has a question mark in it and you get two, and a dead link. This puts the parameters on properly and keeps what was already there.
A fragment. If your link ends in #contact, that has to stay at the very end. Anything after a # never reaches the server, so parameters placed after it are invisible to analytics. The order is handled for you.
Keep a list for a campaign
One campaign is rarely one link. Save each one as you build it and copy the lot out as a table: it pastes straight into two columns of a spreadsheet, which is where a set of campaign links wants to live so you can find them again in three months.
The link is built here and goes nowhere else
The link is built on this page. Nothing is sent anywhere, nothing is logged, and there is no account. Your campaign names are your business.
Common questions
What is a UTM link?
An ordinary web address with extra bits on the end that tell your analytics where the visit came from. Without them, a click from a Facebook post and a click from your email signature look identical in the reports.
Which UTM parameters are required?
Source, medium and campaign. Miss any one and most analytics tools file the visit under referral or direct, and the campaign becomes invisible. Term and content are optional.
Should UTM tags be lowercase?
Yes, always. utm_source=Facebook and utm_source=facebook are two different sources in every analytics tool there is, so a campaign tagged inconsistently across a week produces several rows that should have been one. This tool lowercases automatically.
Can I use spaces in a UTM tag?
Avoid them. A space gets encoded as %20 or + depending on what encoded it, and those become separate values in your reports. Use hyphens instead, which this does for you.
What is the difference between source and medium?
Source is where it came from, like facebook or newsletter. Medium is how, like social or email. A useful check: several sources can share one medium, and if you cannot tell them apart you have probably put the same thing in both.
Do UTM tags slow my site down or affect SEO?
No. They are just query parameters and search engines handle them normally. It is worth having a canonical tag on your pages so tagged versions do not get indexed separately, which most site builders add by default.