UTM Parameters: The Complete Guide to Campaign Tracking
UTM parameters are the simplest and most effective way to track where your website traffic comes from. If you're spending time or money on marketing — email newsletters, social media posts, paid ads, partner links — UTM tags tell you exactly what's working and what isn't.
What are UTM parameters?
UTM (Urchin Tracking Module) parameters are tags added to the end of a URL. When someone clicks a link with UTM parameters, the analytics platform on the destination page reads those tags and records the traffic source, medium, and campaign name. They were originally created by Urchin Software, which Google acquired in 2005 to create Google Analytics.
A URL with UTM parameters looks like this:
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=march-launch
The page loads normally for the visitor — they don't notice the parameters. But your analytics platform records that this visit came from your newsletter, via email, as part of the "march-launch" campaign.
The five UTM parameters
There are five standard UTM parameters. The first three are the most commonly used:
utm_source (required)
Identifies where the traffic is coming from. This is the platform or website that sent the visitor.
utm_source=google— from Google (paid or organic)utm_source=newsletter— from your email newsletterutm_source=twitter— from Twitter/Xutm_source=partner-blog— from a partner's blog
utm_medium (required)
Identifies the marketing medium or channel type. This categorises the kind of traffic.
utm_medium=email— email campaignsutm_medium=social— social media (organic)utm_medium=cpc— cost-per-click paid adsutm_medium=referral— referral from another siteutm_medium=display— display/banner ads
utm_campaign (required)
Names the specific campaign. Use this to distinguish between different initiatives.
utm_campaign=spring-saleutm_campaign=product-launch-march-2026utm_campaign=weekly-digest-12
utm_term (optional)
Identifies paid search keywords. Primarily used for paid search campaigns to track which keyword triggered the ad.
utm_term=privacy+analyticsutm_term=gdpr+compliant+analytics
utm_content (optional)
Differentiates between similar content or links within the same campaign. Useful for A/B testing or when you have multiple links pointing to the same page.
utm_content=header-cta— clicked the link in the headerutm_content=footer-link— clicked the link in the footerutm_content=blue-buttonvsutm_content=green-button— A/B test variants
Building UTM URLs
You can build UTM URLs manually by appending parameters to any URL with a ? for the first parameter and & between additional parameters:
https://litestats.io/pricing?utm_source=twitter&utm_medium=social&utm_campaign=launch-announcement&utm_content=pinned-tweet
For convenience, use a UTM generator tool that builds the URL for you and ensures consistent formatting.
Best practices for UTM parameters
1. Use lowercase consistently
UTM parameters are case-sensitive in most analytics platforms. utm_source=Twitter and utm_source=twitter will appear as separate sources. Pick lowercase and stick with it.
2. Use hyphens instead of spaces
Spaces in URLs get encoded as %20 or +, which makes your data harder to read. Use hyphens: spring-sale instead of spring sale or spring_sale.
3. Create a naming convention document
Before your team starts creating UTM links, agree on a naming convention. Document what values to use for utm_source, utm_medium, and campaign naming patterns. This prevents data fragmentation from inconsistent tagging.
Example convention:
- Sources: google, facebook, twitter, linkedin, newsletter, partner-name
- Mediums: email, social, cpc, display, referral, affiliate
- Campaigns: {year}-{month}-{description} — e.g. 2026-03-product-launch
4. Don't use UTM tags on internal links
UTM parameters should only be used on links from external sources pointing to your site. Using them on internal links (e.g. links within your site) will overwrite the original acquisition source, making your campaign data inaccurate.
5. Keep campaign names descriptive but concise
utm_campaign=q1-2026-email-existing-customers-pricing-update is too long. utm_campaign=q1-pricing-update captures the essential information cleanly.
6. Test your URLs before sharing
Click the URL yourself and verify it loads correctly and that the parameters appear in your analytics dashboard. A misplaced & or typo can break tracking.
Common UTM mistakes
- Inconsistent capitalisation: "Email" and "email" become separate mediums
- Using spaces: They encode badly and create messy data
- Tagging internal links: Overwrites the real traffic source
- Forgetting utm_medium: Without a medium, your analytics can't properly categorise the channel
- Overly generic campaign names: "spring" doesn't tell you which spring or which initiative
- Not documenting conventions: Different team members use different naming, fragmenting your data
UTM tracking in privacy-first analytics
UTM parameters work identically in privacy-first analytics platforms. When a visitor arrives with UTM tags in the URL, the analytics script reads them and records the source, medium, and campaign alongside the pageview event. No cookies, no personal data, just clean campaign attribution.
The key advantage is accuracy: since cookieless analytics see 100% of traffic (no consent required), your UTM campaign data reflects the real numbers, not just the visitors who opted into cookie tracking.
Build UTM links in seconds. Use our free UTM Generator or read the UTM tracking docs to get started.