UTM parameters explained: how to track where your leads come from

Written by

in

UTM parameters are small pieces of information added to a URL to describe where a visitor came from and which marketing campaign brought them to your website.

You have probably seen URLs like this:

https://example.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale

The part after the ? tells an analytics system more about the visit:

  • google is the traffic source;
  • cpc identifies the marketing medium;
  • spring_sale identifies the campaign.

This makes UTM parameters one of the simplest ways to understand which campaigns, ads, emails, social posts or partner links are actually sending people to your website. But traffic tracking is only part of the story.

If your website generates leads through forms, you will eventually want to answer a more useful question: which campaign generated this particular lead? That requires keeping attribution data after the visitor lands on your website and associating it with the form submission.

This guide explains both parts.

What are UTM parameters?

UTM parameters are query parameters that you add to a destination URL for campaign tracking.

UTM originally stands for Urchin Tracking Module. Urchin was an analytics product acquired by Google and became part of what eventually developed into Google Analytics.

Today, UTM parameters are used far beyond Google Analytics. Many analytics platforms, marketing tools and CRM systems can read or store them.

A simple tagged URL might look like this:

https://example.com/contact?utm_source=linkedin&utm_medium=social&utm_campaign=product_launch

The page itself is still https://example.com/contact and everything after ? provides additional information about how the visitor arrived.

UTM parameters do not track anything by themselves. They are simply values in the URL. An analytics script, form integration or another system must read and store them.

The most commonly used UTM parameters

Five UTM parameters are commonly used in marketing campaigns:

ParameterWhat it describesExample
utm_sourceWhere the visitor came fromgoogle
utm_mediumThe marketing channel or methodcpc
utm_campaignThe campaignspring_sale
utm_termKeyword or targeting informationform_builder
utm_contentA specific ad, link or creative variationhero_video

Google Analytics also supports additional manual campaign parameters, including utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic. The five above remain the ones you will encounter most often.

utm_source

Identifies where the traffic came from. Examples:

utm_source=google
utm_source=facebook
utm_source=linkedin
utm_source=newsletter
utm_source=partner_site

Think of source as the answer to who sent this visitor? For a Google Ads campaign, the source might be utm_source=google, for a newsletter utm_source=newsletter, or, if you send several newsletters and want to identify the platform instead utm_source=mailerlite.

The exact convention matters less than being consistent.

utm_medium

Describes how the visitor reached you. Examples:

utm_medium=cpc
utm_medium=email
utm_medium=social
utm_medium=referral

A common source/medium combination is:

utm_source=google
utm_medium=cpc

Here source — Google and medium — paid click advertising (Cost Per Click).

Another example:

utm_source=linkedin
utm_medium=paid_social

utm_campaign

Identifies the marketing campaign. Examples:

utm_campaign=spring_sale
utm_campaign=product_launch

Campaign names should be meaningful enough that someone looking at your reports several months later can still understand them. Avoid names like test2, new_campaign or final_final — they become difficult to manage very quickly.

utm_term

utm_term was traditionally used for paid-search keywords. For example:

utm_term=form_builder

It can also be used for additional targeting information when that makes sense for your reporting structure. You do not need to add utm_term to every URL.

utm_content

Helps distinguish different links or creatives inside the same campaign. Imagine that one campaign contains two ads:

utm_content=video_ad
utm_content=static_image

Or perhaps an email contains two links to the same landing page:

utm_content=header_button
utm_content=footer_link

Both links can share the same source, medium and campaign while utm_content tells you which variation generated the click.

A complete UTM URL example

Suppose you are promoting a new collection of running shoes through a paid Instagram campaign. Your landing page is:

https://example.com/running-shoes

A tagged version could be:

https://example.com/running-shoes?utm_source=instagram&utm_medium=paid_social&utm_campaign=spring_running&utm_content=video_ad

This tells you:

source   → instagram
medium   → paid_social
campaign → spring_running
content  → video_ad

If you later launch another creative for the same campaign, you can keep the first three values unchanged and update only utm_content:

utm_content=carousel_ad

Now your reports can distinguish traffic from the video ad and the carousel ad while keeping both visits grouped under the same campaign.

How UTM tracking works

The basic flow is simple: Campaign → UTM-tagged link → Visitor clicks → Landing page → Analytics reads the URL.

For example, a visitor clicks:

https://example.com/products?utm_source=facebook&utm_medium=paid_social&utm_campaign=september_sale

When the page loads, an analytics system can read those parameters and associate them with the visit. This gives you campaign-level reporting instead of seeing every visitor simply as someone who opened products page.

The important distinction is that the URL contains the data, but another system has to capture it.

Where should you use UTM parameters?

UTM parameters are useful whenever you control the link and want to identify the campaign behind a visit. Common examples include:

  • email newsletters;
  • paid social campaigns;
  • social media posts;
  • partner and affiliate links;
  • display advertising;
  • banners;
  • QR codes;
  • downloadable documents;
  • promotional campaigns.

They are especially useful when the normal HTTP referrer does not provide enough information. For example, a referrer might tell you facebook.com, and a UTM-tagged link can tell you:

sourcefacebook
mediumpaid_social
campaigncrm_launch
contentvideo_2

That is much more useful for marketing decisions.

How to name UTM parameters consistently

Good UTM tracking depends more on consistency than complexity.

Suppose three people on the same team create these values:

LinkedIn
linkedin
linkedin.com

Your analytics platform may treat them as three different sources.

The same problem happens with campaign names:

summer_sale
Summer-Sale
summer-sale
summer2026

All of them might refer to the same campaign, but your reports no longer know that.

A simple convention is usually enough. For example:

utm_source=linkedin
utm_medium=paid_social
utm_campaign=summer_sale
utm_content=video_ad

Useful rules include:

  • use lowercase values;
  • choose one separator, such as _;
  • use predictable source and medium names;
  • avoid spaces;
  • document your naming convention;
  • do not invent a new name for the same channel every time.

For larger teams, maintaining a simple UTM naming guide can prevent a surprising amount of reporting cleanup later.

How Google Analytics uses UTM parameters

Google Analytics can use manually tagged URLs to populate traffic-source dimensions such as source, medium and campaign.

For example:

utm_source=google
utm_medium=cpc
utm_campaign=spring_sale

provides manual campaign information that Google Analytics can use in its traffic-source reporting. Google currently recommends providing the relevant campaign parameters consistently when manual tagging is used.

Google Ads can also use auto-tagging, which adds a click identifier such as gclid to a destination URL. A URL might therefore contain ?gclid=... instead of relying only on manually entered UTM values.

Auto-tagging can provide Google Analytics with richer information from connected Google advertising products, including campaign, ad-group and keyword data.

UTM parameters and click IDs solve related problems, but they are not the same thing.

UTM tracking does not automatically tell you where a lead came from

This distinction becomes important when your website generates leads. Analytics might tell you:

The summer_sale campaign generated 350 visits and 18 conversions.

That is useful. But a sales team often wants something more specific:

Which campaign generated this enquiry?

Imagine someone lands on:

https://example.com/landing-page?utm_source=google&utm_medium=cpc&utm_campaign=summer_sale

Then they visit: /pricing, then /about and finally /contact where they submit a form. The UTM parameters were present on the original landing page, but not necessarily on /contact. If the form only records what is currently visible in the URL, the attribution information may already be gone.

That is why tracking website traffic and tracking lead attribution are related but different problems.

How to capture UTM parameters with form submissions

A common implementation looks like this:

  1. visitor arrives with UTM parameters;
  2. website reads the parameters;
  3. attribution data is stored;
  4. visitor browses other pages;
  5. visitor submits a form;
  6. stored attribution is attached to the submission.

Many form implementations do this using hidden fields:

<input type="hidden" name="utm_source">
<input type="hidden" name="utm_medium">
<input type="hidden" name="utm_campaign">

But adding hidden inputs is only one part of the solution.

Something still needs to:

  1. read the parameters from the landing URL;
  2. store them while the visitor navigates the website;
  3. populate the fields when the form is submitted.

If any of those steps is missing, attribution data can be lost. This is also why simply adding utm_source as a hidden field to a form does not create a complete attribution system.

First-touch vs last-touch attribution

Another question appears once attribution is persisted: which source should receive credit?

Consider this journey:

Day 1

Google Ads
utm_source=google

Day 4

LinkedIn campaign
utm_source=linkedin

Day 7

Direct visit
Form submission

There are several reasonable answers.

First-touch attribution

First touch gives credit to the original source that introduced the visitor. In this example: google. This can be useful when you want to understand which channels are creating initial awareness.

Last-touch attribution

Last touch gives credit to the latest meaningful marketing source before the conversion. Depending on how attribution is implemented, that might be linkedin. This can help identify channels that contribute closer to conversion.

Neither model is universally correct — they answer different questions. A useful attribution system may preserve both rather than overwriting the first source every time a visitor returns.

To understand how these two attribution models differ and when each is useful, read our guide to first-touch vs last-touch attribution.

Common UTM tracking mistakes

UTM tracking is technically simple, but small mistakes can make the resulting data difficult to trust.

Using inconsistent capitalization

These values may be treated differently:

Google
google
GOOGLE

Pick one convention and keep it. Lowercase values are usually the easiest to maintain.

Mixing source and medium

This:

utm_source=google
utm_medium=cpc

is much clearer than:

utm_source=cpc
utm_medium=google

Think:

source = where

medium = how

Creating new names for the same thing

If one campaign uses utm_medium=paid_social and another uses utm_medium=social_paid your reporting becomes unnecessarily fragmented.

Using UTMs on internal links

UTM parameters are designed primarily to describe incoming campaign traffic.

Adding new UTMs when a visitor clicks links inside your own website can overwrite or distort the original attribution. If someone originally came from Google Ads, clicking an internal promotional banner should not normally make their acquisition source suddenly become utm_source=homepage.

Use your analytics events or another internal-tracking mechanism for that.

Losing attribution after the landing page

A visitor does not always submit a form on the page where they first arrived. If your attribution system only reads the current URL during submission, you may lose the original campaign data.

Tracking campaigns but not leads

Campaign-level reporting can tell you that an ad generated conversions. Lead-level attribution lets you see the campaign alongside the actual enquiry. For a business using forms as its primary conversion mechanism, that difference can be significant.

UTM parameters vs referrer

A referrer and UTM parameters can both help identify where traffic came from, but they provide different information.

A referrer might contain:

https://www.google.com/

That tells you the visitor came from Google.

A UTM-tagged campaign might contain:

utm_source=google
utm_medium=cpc
utm_campaign=brand_search

Now you know much more about the context of the visit.

Referrer data can also be missing or incomplete in some situations, while UTM parameters are intentionally added by the campaign owner. A good attribution system can use both.

For example, if UTM parameters are available, they can provide explicit campaign information. If they are not available, referrer data can still help classify the visit.

UTM parameters vs click IDs

Advertising platforms can also append unique click identifiers to URLs. Common examples include:

  • gclid (Google click ID)
  • fbclid (Facebook/Meta click ID)
  • msclkid (Microsoft click ID)

These are different from UTM parameters. A UTM value usually describes the campaign in a human-readable way:

utm_source=google
utm_campaign=summer_sale

A click ID identifies a particular advertising click:

gclid=Cj0KCQjwteTUBhD4ARIsAEYjs3pBaFs...

Google Ads auto-tagging, for example, uses gclid so connected Google products can associate a visit with advertising data.

In practice, an attribution system may want to preserve both campaign parameters and available click IDs. They serve different purposes and can become useful later for analytics, advertising integrations or conversion reporting.

How Entrarium handles lead attribution

Traditional form setups often require hidden fields, custom JavaScript and additional configuration to preserve marketing information until a visitor finally submits a form.

Entrarium takes a different approach. Its built-in attribution is designed as part of the form and lead flow rather than as an afterthought. When attribution data is available, it stays connected to the form submission, helping you see not only which campaigns generated traffic, but also where individual leads came from.

The goal is a simple flow:

Campaign → Visitor → Website → Form submission → Lead + attribution

This is especially useful when a visitor does not convert immediately after landing on the website. Instead of relying on UTM parameters still being present in the final page URL, Entrarium can capture attribution earlier in the journey and carry it through to the submission.