What UTM Parameters Actually Do (And Why Your Analytics Say 'Direct')

If you've ever looked at your analytics dashboard and seen a suspiciously large slice of traffic labeled "direct" -- despite knowing you just sent out a newsletter or posted a link on social media -- the problem usually isn't your analytics tool. It's that the links you shared didn't carry any tracking information, so the tool had nothing to attribute the visit to.

What a UTM parameter actually is

UTM parameters are just name-value pairs appended to the end of a URL after a ?, like ?utm_source=newsletter&utm_medium=email&utm_campaign=fall_sale. When someone clicks that link, the destination site's analytics tool reads those values out of the URL and files the visit under them. There's no tracking pixel or cookie involved on the sending side -- it's literally just text in the link.

The five standard parameters

Google Analytics (and most other tools that support UTMs) recognize five: utm_source, utm_medium, utm_campaign, utm_term, and utm_content. The first three do most of the work and are also the most commonly confused:

  • Source is where the click came from -- newsletter, twitter, google.
  • Medium is what kind of channel that was -- email, social, cpc.
  • Campaign is which specific push the link belongs to -- fall_sale, product_launch_q3.

A lot of tracking confusion comes from people mixing source and medium up, or being inconsistent about which one holds which piece of information. utm_term and utm_content are optional and mostly useful for paid search keywords and A/B-testing different links within the same campaign.

Why untagged links become "direct" traffic

Analytics tools attribute a visit using whatever signal is available: a UTM parameter, a referrer header, or nothing. Email clients, some social apps, and most messaging apps strip or don't pass a referrer header at all -- so a link with no UTM parameters and no referrer gets bucketed as direct traffic by default. That's not a bug in your analytics; it's the tool correctly reporting that it has no idea where the visit came from. The fix is entirely on your end: tag the link before you send it.

Mistakes that quietly break attribution

The most common one is inconsistency -- using Email in one campaign and email in another creates two separate rows in your reports instead of one combined one, since UTM values are typically case-sensitive. Another is tagging every link, including internal navigation links on your own site, which can overwrite a visitor's original attribution mid-session. And the simplest one: forgetting to tag a link at all, which is easy to do when you're moving fast across multiple channels.

Build them consistently

The fix is just discipline -- use the same source/medium naming convention every time, and generate the links rather than typing them by hand so a stray typo doesn't split your data. The UTM Parameter Builder does exactly that: fill in the fields once and get a clean, correctly formatted tracking link every time.

We use cookies to understand how you use the site. No personal data is sold.