Skip to content

Tracking link builder

Put a link in an ad, an email, a post, or on a poster, and your reports will tell you it came from “Direct”. A tracking link fixes that. It is an ordinary link with a few labels on the end, so when someone clicks it you can see exactly which ad, post, or poster brought them in.

Fill in the four boxes below and copy the result. If you already know these as UTM parameters, this is a UTM builder with a fixed taxonomy, live validation, and QR codes.

01
02Source · where the traffic comes from
03Medium · how it arrived

Pick a source first.

04

Paid keyword. Usually only for search ads.

Which creative or placement, for A/B comparison.

Build a link above to encode it as a QR code.

What is a tracking link?

When someone lands on your website, your analytics tries to work out where they came from. Sometimes it can. Often it cannot, and the visit gets filed as “Direct”, which really means “no idea”. That is why the numbers in your ad account never match the leads in your inbox.

A tracking link removes the guesswork. You take the page you want people to land on and add a few labels to the end of the address. The page opens exactly as normal, the visitor notices nothing, and your reports now know which ad, email, post, or poster sent them.

A normal link

https://example.com/pricing

The same link, tracked

https://example.com/pricing?utm_source=linkedin&utm_medium=social&utm_campaign=spring-sale-2026

Everything after the question mark is the label. It says: this visitor came from LinkedIn, from a social post, as part of the spring sale. Nothing else about the page changes.

So what is a UTM?

Those labels have a name. They are called UTM parameters, and marketers usually just say “UTMs”. UTM stands for Urchin Tracking Module, after the analytics company Google bought in 2005 to build Google Analytics. The name is a historical accident and tells you nothing useful, which is why this page calls them tracking links instead.

There are five of them, and every analytics tool and CRM in common use understands them. Three are worth filling in every time. The rest of this page uses the proper names, since that is what you will see in your reports.

How to build a UTM link

Six steps, about two minutes. The order matters: source and medium decide how the traffic groups in every report you will read afterwards.

  1. 01

    Paste the destination URL

    Start with the exact page you want people to land on, including https. If the URL already has UTM parameters, the builder replaces them rather than stacking a second set.

  2. 02

    Pick the source

    utm_source is where the traffic comes from: the platform, publication, or physical place. Use the same value every time for the same source. facebook and Facebook are two different sources to an analytics tool.

  3. 03

    Pick the medium

    utm_medium is how the traffic arrived: cpc, social, email, qr-code, referral. Keep this to a short fixed list. Medium is the field that groups channels together in reporting, so it breaks first when people invent new values.

  4. 04

    Name the campaign

    utm_campaign is the initiative the link belongs to, such as spring-sale-2026. Use lowercase and hyphens, and include a date or quarter if you run the same campaign more than once.

  5. 05

    Add term and content only if you need them

    utm_term carries the paid keyword and is usually only for search ads. utm_content distinguishes two links in the same campaign, such as hero-cta versus footer-cta, so you can tell which creative worked.

  6. 06

    Copy the link, or generate a QR code

    Copy the finished link for use in an ad, email, or post. For anything offline, generate a QR code from the tagged link so the print or booth carries its campaign data too.

What each parameter is for

Five parameters, three of them required. Each answers one question, and problems start when a value answers the wrong one.

ParameterAnswersExampleNotes
utm_sourceRequiredWhere did it come from?linkedinThe specific platform or publication. Keep one canonical spelling per source.
utm_mediumRequiredHow did it arrive?cpcThe channel type. Keep to a short fixed list; this is the field reports group on.
utm_campaignRequiredWhat is it part of?spring-sale-2026The initiative. Include a date or quarter if the campaign name repeats.
utm_termOptionalWhich keyword?attribution-softwarePaid search keyword. Often auto-populated by the ad platform instead.
utm_contentOptionalWhich creative or placement?hero-ctaDistinguishes two links in the same campaign so you can compare them.

Source and medium pairs by channel

The same taxonomy the builder uses. Pin this somewhere your team will see it: consistency across people matters more than which convention you pick.

Channelutm_sourceutm_medium options
Facebookfacebookpost · display · video · referral · qr-code
TikToktiktokvideo · cpc · paid · qr-code
LinkedInlinkedinpost · article · inmail · qr-code
YouTubeyoutubevideo · live · shorts · playlist · qr-code
Instagraminstagrampost · story · reel · paid · qr-code
Xxtweet · thread · retweet · qr-code
Googlegoogleorganic · cpc · display
Email Campaignemail-campaigncampaign · newsletter · automated · transactional · drip · personal · digest · invitation

Six mistakes that break campaign reporting

Every one of these produces data that looks fine in the address bar and wrong in the report.

Mixed casing

utm_source=Facebook and utm_source=facebook

One source splits into two rows. Every report undercounts both.

Spaces in values

utm_campaign=spring sale

Encodes as spring%20sale and reads as a different campaign from spring-sale.

Inventing new mediums

utm_medium=facebook-ad, fb, paid-fb

Channel grouping collapses. Nobody can answer what paid social returned.

Source and medium swapped

utm_source=cpc, utm_medium=google

Reports read backwards, and channel groupings in GA4 stop matching.

Tagging internal links

Tagging a link between two pages of your own site

Starts a new session and overwrites the original source. The real source is lost.

Untagged QR codes

A code pointing at a bare homepage URL

Every scan lands as Direct. The print spend cannot be measured at all.

A tagged link is only half the job

Tagging a link puts the campaign data in the address bar. Whether it survives to your CRM is a separate question, and usually the answer is no. The parameters are there on landing, then lost on the next page view, on a redirect, or at form submission because the form has nowhere to store them. That is why leads from a perfectly tagged campaign still arrive as Direct.

Closing that gap means persisting the source across the visit and writing it onto the lead record. You can do it by hand with hidden form fields and a first-party cookie, which the articles below walk through. Trakt does it automatically.

UTM questions, answered

What is a UTM parameter?

A UTM parameter is a tag added to the end of a URL that tells your analytics and CRM where a visitor came from. There are five: utm_source, utm_medium, utm_campaign, utm_term, and utm_content. They are plain query parameters, so they work anywhere a link does.

Which UTM parameters are required?

Source, medium, and campaign. Term and content are optional and mostly used for paid search keywords and for telling two creatives in the same campaign apart. A link missing medium is the most common cause of traffic landing in an Other or Unassigned bucket.

Should I use hyphens or underscores in UTM values?

Hyphens. Some tools treat an underscore as part of a word and a hyphen as a separator, and hyphens are easier to read in a report. What matters more than the choice is that everyone on the team makes the same one.

Are UTM parameters case sensitive?

Yes. Google Analytics and most CRMs treat Facebook and facebook as two separate sources, which is how one campaign ends up split across several rows. Use lowercase everywhere. This builder lowercases values by default.

Why do my UTM-tagged leads still show up as Direct in the CRM?

Because the parameters usually die between the click and the form. They are visible in the address bar on landing, then lost on the next page view, on a redirect, or at submission because the form has nowhere to store them. Tagging the link is necessary but not sufficient: something has to persist the source and write it onto the lead record.

Should I tag internal links on my own site?

No. Tagging a link between two of your own pages starts a new session in most analytics tools and overwrites the original source, so a visitor who arrived from an ad is re-attributed to your own site. Use UTMs only on links coming from somewhere else.

Do UTM parameters affect SEO?

They can create duplicate URLs for the same content, which is why tagged pages should carry a self-referencing canonical tag. UTMs on inbound links from other sites are standard practice and are not penalised.