Quick answer
UTM parameters are tags added to a link's address (utm_source, utm_medium, utm_campaign, utm_content, utm_term) so analytics can record where a visit came from. They are how a campaign's clicks get credited to the campaign instead of landing as untraced traffic.
UTM parameters
DefinitionThe five tags describe a visit: source (the site or newsletter), medium (the channel type, such as paid or email), campaign (the campaign name), content (which creative), and term (the keyword, for search). Analytics tools read them from the URL and group sessions accordingly. Without them, a click from a sponsored post looks the same as any other referral, or as direct traffic when the referrer is stripped.
Also called: UTM tags, Tracking parameters.
What are the five UTM parameters, and what goes in each?
- utm_source: where the link lives: the platform or newsletter, such as dailydev or a newsletter's name.
- utm_medium: the channel type: paid, email, social, referral, cpc.
- utm_campaign: the campaign name: q4-launch, always-on-k8s.
- utm_content: which creative or placement: headline-a, digest-slot, sponsors-bar.
- utm_term: the keyword, for search campaigns only.
Analytics reads them from the URL and groups sessions by them. Without them a click from a sponsored post is filed under the referrer, or under direct when the referrer is stripped.
How do you keep a UTM scheme from falling apart?
One shared sheet that is the only place links are made. Lowercase everything, because analytics treats Paid and paid as two channels. Fixed vocabularies for source and medium, so the same platform is never tagged two ways. Campaign names that say what and when. A link builder that enforces the vocabulary beats a convention people remember. And an audit each quarter of the sessions that arrived with malformed tags, which is where the scheme is leaking.
Common mistakes
- Three spellings of the same source, reporting as three channels.
- UTMs on internal navigation links, corrupting the channel report.
- Personal data in a parameter.
- No utm_content, so the feed and the newsletter cannot be told apart.
How developers experience it
- They see the long URL and some strip it before sharing; the untagged share is normal.
- They copy links into chats and docs, which is why the referrer is so often missing.
- They notice when a tracked link is the only thing on a page that is not plain.
How should UTMs be set up for a developer campaign?
One scheme across every placement: the in-feed card, the Digest slot, the homepage logo, the company page link, each with its own utm_content, the same utm_source and utm_campaign. Then the feed and the newsletter can be compared in your own analytics, and the campaign's traffic can be followed to sign-up and activation when the pixel and the analytics share an identifier. Tag the landing page, not the docs deep links, unless you want to know which tutorial converted.
Keep the parameters off links in your own site's navigation; a canonical URL strips them for indexing, and internal links tagged as campaigns corrupt the channel report.
What about AI assistants and stripped referrers?
A growing share of visits arrive with no referrer: from assistants, from apps, from copied links. For those, a utm_source on the links you control is the only way the visit is recognised, and it is also why any link you publish in a place an assistant might quote should carry one. Never put personal data in a parameter, because URLs are logged everywhere, including in the assistants' own records.
On daily.dev
How it works on daily.dev
daily.dev placements accept tracked destination links, so your UTMs travel with every click into your own analytics. Use one scheme for the feed, the newsletter and the homepage so the channels can be compared.
Explore my optionsUTM parameters vs conversion pixel vs referrer
| Capability | UTM parameters | Conversion pixel | Referrer |
|---|---|---|---|
| Lives in | The link | Your site and the ad platform | The browser request |
| Tells | Your analytics where a session came from | The ad platform what the visitor did | Your analytics the previous page, when present |
| Survives | Stripped referrers, copied links | Other devices, with a hashed identifier | Little: apps and assistants strip it |
| Set by | You, when you make the link | You, when you install it | Nobody |
| Fails when | The scheme is inconsistent | Blocked client-side without a server fallback | Most of the time, for AI referrals |