UTM Tracking Explained: How to Tag Links and Actually See What Works

Nina Kowalski·10 min read

Key Takeaways

  • UTM parameters are five tags you add to a link so your analytics tool knows which campaign, source, and content drove each visit.
  • Source, medium, and campaign are required for clean reporting; term and content are optional but useful for ads and A/B tests.
  • Consistency beats cleverness: lowercase everything, pick one word per value, and write it down in a shared naming convention.
  • UTMs tag the click, not the sale, so on their own they break when cookies clear; connect them to revenue at the moment of payment to see real ROAS.
  • A first-party model that stamps the UTM source onto the sale survives cookie loss, iOS privacy, and data retention that ordinary UTM reports do not.

UTM tracking is the practice of adding five small tags to the end of a link so your analytics tool can tell you exactly which campaign, channel, and piece of content sent each visitor. When you share a link like yoursite.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=july-launch, the part after the question mark tells Google Analytics (or any other tool) that this visit came from your July launch email. Without UTMs, most of that traffic collapses into a vague "direct" or "referral" bucket, and you are left guessing what actually worked.

This guide covers what each parameter means, how to build tagged links without mistakes, the naming rules that keep your reports clean, and the one thing UTMs cannot do on their own: connect a click to the revenue it produced.

What is UTM tracking?

UTM tracking uses named URL parameters to label inbound links so analytics tools can group visits by source and campaign. UTM stands for Urchin Tracking Module, a nod to Urchin, the analytics company Google bought in 2005 that became Google Analytics. The tags are just text you append to any URL, and every major analytics platform reads them automatically.

Here is the mechanics in one sentence: when someone clicks a link carrying UTM parameters, their browser loads your page normally, and your analytics script reads the parameters out of the address bar and files the visit under the source, medium, and campaign you specified. Nothing is installed, and the parameters do not change what page loads. They are metadata riding along with the click.

The value is precision. Instead of seeing "500 visits from Facebook," you see "500 visits from the Facebook retargeting ad in the July launch campaign, specifically the video creative." That granularity is what lets you kill the ads that lose money and double down on the ones that print it.

The 5 UTM parameters (with examples)

There are exactly five UTM parameters. Three are effectively required for clean reporting, and two are optional. Here is every one, what it means, and a realistic example value.

ParameterWhat it meansExample value
utm_sourceWhere the traffic came from: the specific site, platform, or listnewsletter
utm_mediumThe channel type or marketing categoryemail
utm_campaignThe specific promotion, launch, or initiative the link belongs tojuly-launch
utm_termThe paid keyword you bid on (used almost only in search ads)project-management-software
utm_contentWhich link, button, or creative variant was clicked (great for A/B tests)hero-cta

A few notes that trip people up:

  • Source should be a specific origin, not a category. Use google, facebook, or mailchimp, not "search" or "social." The category is what medium is for.

  • Medium should be a channel type. Common values are email, cpc (cost-per-click paid search), social, referral, and affiliate. Google Analytics uses medium to auto-group traffic into its default channel report, so getting this one right matters most.

  • Campaign ties everything together. Every link for a single promotion should share the same utm_campaign value so you can see the whole effort in one row.

  • Term and content are optional. Use term for paid search keywords and content to tell apart two links that point to the same page (for example, the header button versus the footer button in the same email).


A fully tagged link looks like this: yoursite.com/pricing?utm_source=facebook&utm_medium=cpc&utm_campaign=july-launch&utm_content=video-ad. Order does not matter, and you can leave out term and content when you do not need them.

The safest way to build UTM links is with a URL builder tool plus a written naming convention, so every link is spelled and cased identically. You can hand-type the parameters, but one capital letter or a stray space will fragment your reports, so a builder is worth it.

Start with a free builder. Google's Campaign URL Builder is the standard for web links, and there are separate builders for Play Store and App Store links if you drive traffic to mobile apps. Paste your destination URL, fill in the fields, and copy the finished link. For links you use constantly, keep a spreadsheet so you are copying from a known-good source instead of rebuilding by hand.

Then follow these mechanical rules, because analytics tools treat these values as literal strings:

  • Lowercase everything. Email and email are two different sources to Google Analytics. Pick lowercase and never deviate.

  • Use hyphens, not spaces. A space becomes %20 in the URL and reads as a broken value in reports. Write july-launch, not "july launch."

  • Pick one word per concept and stick to it. Decide once whether paid search is cpc or ppc or paid-search, then use only that value forever.

  • Never put UTMs on internal links. Tagging a link between two of your own pages resets the visitor's session and overwrites the real source that brought them in. Only tag links on channels you do not own: emails, ads, social posts, partner sites, QR codes.

  • Do not tag sensitive info. UTM values show up in the address bar and in analytics exports, so never put anything private (customer names, emails, discount codes you want kept quiet) in them.


If you manage more than a handful of campaigns, the single highest-leverage move is a shared naming convention document. It is one page that lists your approved source names, your approved medium values, and your campaign naming format (for example, always month-productname). This is boring and it is the difference between reports you trust and a mess of forty near-duplicate sources.

Where to see your UTM data

Once your tagged links are live, UTM data shows up in your analytics tool's acquisition or traffic-source reports, usually within minutes to a few hours. In Google Analytics 4, the Traffic acquisition report breaks visits down by session source, medium, and campaign, and you can add utm_content and utm_term as secondary dimensions. Most other tools (Plausible, Fathom, Matomo, PostHog) expose the same fields under a campaigns or UTM view.

What you are looking for is not just visits. Visits are cheap. You want to trace the tagged traffic all the way through to a conversion: a signup, a trial, or ideally a paid sale. This is where standard UTM reporting starts to strain, and it is worth understanding why before you trust a report to make a spending decision.

The core limitation is that UTMs live in a cookie or session that expires. A visitor clicks your tagged Google ad, browses, then leaves. Three days later they come back through a bookmark and buy. By then the UTM-carrying cookie may be cleared, blocked by Safari or Firefox, or aged out of your tool's attribution window. The sale gets filed under direct or organic, and your ad looks like it did nothing even though it started the whole chain. Multiply that across every returning customer and your channel numbers quietly drift away from reality. Our guide to cookieless tracking walks through exactly why third-party and even first-party cookies keep disappearing, and what replaces them.

Connecting UTMs to real revenue

To see what actually works, capture the UTM on the visitor's first touch and stamp it onto the order at the moment payment is confirmed, so the campaign is welded to settled revenue instead of a fragile cookie. This is the shift from counting clicks to counting dollars, and it is the modern best practice for anyone selling something rather than just measuring pageviews.

The pattern looks like this in practice:

  • Capture early. The first time a visitor lands, read the UTM parameters and store them in first-party storage on your own domain, tied to that visitor. Do not wait until checkout to look for them, because by then they are usually gone from the URL.

  • Carry them forward. When the visitor eventually converts, pass the stored source into your payment flow. With Stripe Checkout, for example, you can send the captured source through client_reference_id or metadata so the charge itself remembers where it came from. Our walkthrough on how to attribute Stripe revenue to marketing channels covers the exact fields.

  • Stamp at the moment of sale. When payment succeeds, write the UTM source directly onto the order record. Now the attribution is a permanent fact about a real transaction, not a guess reconstructed from a report later.

  • Reconcile against money you keep. Subtract refunds and chargebacks per channel so your return on ad spend reflects net revenue, not gross claims.


This is precisely the model Affiliateo is built around. It joins your traffic to real Stripe revenue and stamps the ad and campaign source at the moment of sale, so your ROAS and lifetime-value numbers survive cookie loss, iOS privacy changes, and the data-retention windows that erase ordinary UTM reports weeks later. Because the source is attached to the settled charge, a customer who buys months after their first click still counts toward the campaign that earned them. If you want the deeper reasoning behind this approach, our piece on first-party ad attribution explains why revenue-attached, first-party data is now the reliable foundation, and the overview of conversion tracking software compares the tools that do it well against pixel-only options that inflate performance.

Common UTM mistakes to avoid

Most broken UTM reports come from a small set of repeatable errors, and every one is preventable with a naming convention and a builder. Here are the ones that cause the most damage.

  • Inconsistent casing and spelling. FaceBook, facebook, and Facebook become three separate sources. This is the number-one cause of messy reports. Lowercase everything, always.

  • Tagging internal links. Adding UTMs to navigation between your own pages wipes out the original source and starts a fake new session. Only tag external, inbound links.

  • Mixing up source and medium. Putting "social" in source and "facebook" in medium is backwards and breaks Google Analytics channel grouping. Source is the specific origin; medium is the channel type.

  • Forgetting the campaign value. Links with source and medium but no campaign are hard to group later. Fill in all three required parameters every time.

  • Leaving UTMs on shared or bookmarked links. If someone shares a tagged link, everyone who clicks it inherits that campaign attribution, polluting your data. Use clean URLs for anything that might get shared organically, and reserve tagged links for controlled distribution.

  • Trusting click counts as revenue. The biggest strategic mistake is treating a high-traffic campaign as a high-value one. A newsletter that sends 200 visits and 15 sales beats an ad that sends 5,000 visits and two sales. You only see that by connecting UTMs to revenue.


Fitting UTMs into a full attribution stack

UTMs are the labeling layer of your measurement, not the whole system. They tell you what a link was, and a good analytics and revenue setup tells you what that link was worth. Used together, they answer the only question that matters for spend: which channels and campaigns produce customers who pay and stay.

If you run affiliate or partner traffic, the same discipline applies to every partner link, and the tagging conventions here pair naturally with the tactics in our guide to SEO for affiliate marketing and the broader top affiliate marketing strategies roundup. For measuring specific channels, our walkthroughs on how to measure SEO revenue and how to track Meta ads ROAS show the same first-party, revenue-attached principle applied to organic search and paid social.

Get the basics right first: five parameters, lowercase and hyphenated, a written naming convention, and UTMs only on links you do not own. Then close the loop by connecting those tags to real, settled revenue. That combination turns UTM tracking from a pile of pretty traffic charts into a reliable answer to the question every marketer actually asks, which is simply this: what is working, and where should the next dollar go?

utmtrackingattributionmarketing

Written by Nina Kowalski

Nina is an educator and course creator who has generated over $2M in online course revenue.

Frequently Asked Questions

Related Articles