Use Case Concepts

What is UTM tracking?

UTM tracking, Urchin Tracking Module tracking, is a standardised method of appending identifying parameters to URLs that enables web analytics platforms to attribute website visits to specific marketing campaigns, traffic sources, and channels. When a user clicks a URL containing UTM parameters the analytics tracking code on the destination page reads the parameter values and records the session with the corresponding campaign attribution, allowing marketers to measure how much traffic, how many conversions, and how much revenue each campaign, source, and channel generates.

The UTM standard was created by Urchin Software, a web analytics company acquired by Google in 2005. Google incorporated Urchin’s tracking parameter system into Google Analytics, which became the dominant web analytics platform, cementing UTM parameters as the universal standard for URL-based campaign tracking across the marketing industry. Virtually every analytics platform, Google Analytics, Adobe Analytics, Mixpanel, Heap, Amplitude, recognises and processes UTM parameters using the same parameter names and the same attribution logic.

UTM tracking is entirely URL-based, it requires no additional tracking pixels, server-side integrations, or platform-specific implementations beyond appending the correct parameters to destination URLs before distributing them. This simplicity is one of UTM tracking’s greatest strengths, any URL can be UTM-tracked by adding parameters, any analytics platform that recognises UTM parameters processes them automatically, and UTM data is visible in the URL, enabling easy auditing and debugging.

For redirect management UTM tracking creates specific technical considerations, UTM parameter URLs are distinct URLs from their base equivalents and require careful handling to prevent duplicate content while preserving attribution accuracy through redirect chains and redirect configurations.

UTM parameter specification

UTM tracking uses five standardised parameters, each capturing a specific dimension of campaign attribution. Understanding each parameter’s purpose and correct usage is fundamental to consistent, useful UTM tracking data.

utm_source, the traffic source: identifies the specific platform, website, or system that sent the traffic. The source is the most specific origination point, the particular entity from which the visitor came.

Examples by channel: Email marketing, utm_source=mailchimp for Mailchimp-sent emails, utm_source=klaviyo for Klaviyo, utm_source=newsletter for a generic newsletter identifier. Paid search, utm_source=google for Google Ads, utm_source=bing for Microsoft Ads. Social media, utm_source=facebook, utm_source=instagram, utm_source=linkedin, utm_source=twitter. Partnerships, utm_source=partner-company-name for partner referral traffic. Print and offline, utm_source=print-ad, utm_source=business-card for offline to online tracking.

utm_medium, the marketing channel: identifies the type of channel, the category of marketing activity through which the traffic arrived. Medium provides the channel-level dimension that enables cross-platform channel comparisons.

Standard medium values: cpc: cost-per-click paid advertising across any platform. email: email marketing campaigns. social: organic social media posts. paid-social: paid social media advertising. display: display and banner advertising. affiliate: affiliate marketing traffic. referral: traffic from referring websites. organic: organic search, though organic traffic typically arrives without UTM parameters. direct: not typically applied to UTM-tagged URLs, direct traffic means no referral.

utm_campaign, the campaign name: identifies the specific marketing initiative being tracked. The campaign dimension is the primary analysis level for most marketing performance reporting, comparing conversion rates, cost-per-acquisition, and return on investment across different campaigns.

Campaign naming best practices: Descriptive and recognisable, spring-sale-2024, product-launch-widget, black-friday-promo. Consistent format across campaigns, using the same naming convention, [season]-[initiative]-[year]: makes campaigns easily sortable and comparable. No spaces, use hyphens or underscores as word separators. Spaces in UTM parameter values create URL encoding issues, spring%20sale rather than spring-sale: and analytics fragmentation.

utm_term, the paid keyword: identifies the keyword that triggered a paid search advertisement. Used primarily for paid search campaigns, enabling keyword-level performance analysis.

utm_term=redirect+management+software identifies visits from users who searched for “redirect management software.” Keyword-level data enables identifying which search terms drive the most valuable traffic, informing bid adjustments and keyword strategy.

For non-paid-search campaigns utm_term is sometimes repurposed for other identifying information, but this creates confusion since the parameter’s standard semantic is keyword identification. Using utm_content for non-keyword differentiation is generally preferable.

utm_content, the creative or placement: differentiates between multiple links, creative executions, or placements within the same campaign. Used for A/B testing creative variants or distinguishing traffic from different placements.

Creative testing, utm_content=blue-cta vs utm_content=green-cta for button colour testing. Email placement, utm_content=header-link vs utm_content=body-link vs utm_content=footer-link for different links within the same email. Ad creative, utm_content=video-ad vs utm_content=static-image-ad for different creative formats. Navigation position, utm_content=hero-banner vs utm_content=sidebar-widget for different on-page placements.

UTM parameter construction and formatting

Correctly constructing UTM parameter strings ensures accurate analytics data and avoids common formatting errors.

URL construction: UTM parameters are appended to the destination URL as a query string. The first parameter follows a ? character. Subsequent parameters are separated by & characters.

Base URL, https://example.com/products/blue-widget With UTM parameters:

https://example.com/products/blue-widget?utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024&utm_content=hero-cta
https://example.com/products/blue-widget?utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024&utm_content=hero-cta
https://example.com/products/blue-widget?utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024&utm_content=hero-cta

If the destination URL already contains query parameters the UTM parameters are appended with &: Base URL, https://example.com/products?category=widgets With UTM parameters:

https://example.com/products?category=widgets&utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024
https://example.com/products?category=widgets&utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024
https://example.com/products?category=widgets&utm_source=email&utm_medium=newsletter&utm_campaign=spring-sale-2024

Case sensitivity: UTM parameter values are case-sensitive in analytics processing. utm_source=Email and utm_source=email are treated as different sources, appearing as separate rows in analytics reports. Enforcing lowercase for all UTM parameter values prevents case-based fragmentation. utm_campaign=SpringSale and utm_campaign=spring-sale and utm_campaign=SPRING-SALE all appear as different campaigns in analytics despite representing the same campaign.

URL encoding: spaces and special characters in UTM parameter values must be URL encoded. A space encodes as %20 or + in query strings. An ampersand in a parameter value, Smith & Jones: encodes as %26. Most URL builder tools handle encoding automatically, but manually constructed UTM URLs must encode special characters correctly.

Parameter order: the order of UTM parameters in the URL does not affect analytics processing, utm_source=email&utm_medium=newsletter and utm_medium=newsletter&utm_source=email produce identical analytics attribution. However consistent parameter ordering, establishing a standard order across all UTM URLs, makes URLs easier to read and audit.

UTM tracking implementation

URL builder tools: Google’s Campaign URL Builder, available at ga-dev-tools.google.com, provides a form-based interface for constructing UTM-tagged URLs. Entering the destination URL and parameter values produces a correctly formatted tracking URL ready for campaign distribution. The tool handles URL encoding and parameter formatting automatically.

Spreadsheet-based UTM governance: maintaining a master UTM tracking spreadsheet, documenting every UTM-tagged URL, its campaign context, distribution channel, and creation date, provides governance over UTM parameter consistency. The spreadsheet becomes the authoritative reference for all active UTM parameters, preventing duplicate campaigns, inconsistent naming, and orphaned tracking URLs.

UTM parameter management tools: dedicated UTM management platforms, UTM.io, Terminus, Campfire, provide database-driven UTM parameter management beyond what spreadsheets can offer. These tools enforce naming conventions, provide team collaboration features, and maintain searchable UTM parameter archives.

Auto-tagging vs UTM: Google Ads and Microsoft Ads both support auto-tagging, automatically appending click identifier parameters, gclid for Google, msclkid for Microsoft, to destination URLs without manual UTM parameter setup. Auto-tagging provides more granular campaign data than UTM parameters, click-level data rather than campaign-level data, and does not require manual UTM URL construction for every ad. For Google and Microsoft paid search campaigns auto-tagging is generally preferable to manual UTM tagging.

UTM parameters remain necessary for channels that do not support auto-tagging, email marketing platforms, social media organic posts, partner referrals, offline-to-online tracking. A combined approach, auto-tagging for paid search, UTM parameters for everything else, provides comprehensive attribution coverage.

UTM tracking and redirects

The intersection of UTM tracking and redirect management requires specific attention, redirect configurations can affect UTM attribution in ways that corrupt analytics data.

Parameter preservation through redirects: when a UTM-tagged URL passes through a redirect the UTM parameters must be preserved in the redirect destination for attribution to work correctly. A redirect from old-domain.com/page?utm_source=email&utm_medium=newsletter to new-domain.com/page: stripping the query string, loses the UTM attribution. The visitor arrives at new-domain.com/page with no UTM parameters, analytics attributes the session as direct traffic rather than email newsletter traffic.

Redirect configurations should preserve query strings, passing UTM parameters through to redirect destinations. Most web server redirect rules preserve query strings by default, but verifying this behaviour is essential before routing UTM-tagged campaign traffic through redirects.

Nginx query string preservation in redirects, the $request_uri variable includes the query string:

return 301 https://new-domain
return 301 https://new-domain
return 301 https://new-domain

Apache query string preservation, the [QSA] flag appends the original query string to the redirect destination:

RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,QSA,L]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,QSA,L]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,QSA,L]

301 redirect caching and UTM attribution: 301 permanent redirects cached by browsers present a significant UTM tracking problem. When a UTM-tagged URL returns a 301 redirect the browser caches the redirect. On subsequent visits to the same UTM URL the browser goes directly to the destination without visiting the redirect, the UTM parameters are never processed by the analytics code. Subsequent clicks from the same browser are attributed as direct traffic rather than the correct campaign source.

Using 302 temporary redirects for redirect URLs that are used as UTM campaign destinations prevents this caching problem. The 302 ensures every click registers with the redirect server, the UTM parameters are processed fresh on every visit.

Adding UTM parameters to redirect destinations: a common mistake is adding UTM parameters to redirect destination URLs, tagging every visitor who follows a redirect as arriving from a specific campaign regardless of their actual traffic source. A redirect from old-url.com/page to new-url.com/page?utm_source=redirect attributes all visitors to the redirect source, overwriting their actual traffic source attribution. Redirect destination URLs should be clean canonical URLs without UTM parameters.

Redirect chains and UTM parameter loss: multi-hop redirect chains can lose UTM parameters if intermediate redirects strip query strings. A three-hop chain where the first redirect preserves UTM parameters but the second strips them results in UTM attribution loss. Verifying UTM parameter preservation through complete redirect chains, testing with UTM-tagged source URLs and checking whether parameters arrive at final destinations, identifies parameter loss in complex chains.

Analytics configuration for UTM data

Analytics platform configuration affects how UTM data is processed and reported, proper configuration maximises the value of UTM tracking data.

Google Analytics 4 UTM processing: GA4 automatically processes utm_source, utm_medium, utm_campaign, utm_term, and utm_content parameters, assigning session-scoped attribution based on the parameter values present when a session begins. UTM data appears in the Traffic Acquisition report, showing sessions, conversions, and revenue by source, medium, campaign, and other dimensions.

Channel groupings: analytics platforms use channel groupings, rule-based categorisation of traffic sources into standard channels, to organise UTM-attributed traffic into reporting categories. Configuring channel grouping rules that correctly classify UTM parameter combinations ensures traffic is attributed to the correct reporting channel. utm_medium=email sessions should be classified in the Email channel. utm_medium=cpc sessions in the Paid Search channel.

UTM parameter exclusion from canonical URLs: Google Search Console and analytics platforms should be configured to exclude UTM parameters from canonical URL reporting, treating example.com/page?utm_source=email and example.com/page as the same page. GA4 handles this automatically, UTM parameters do not appear as distinct pages in page-level reports.

Common UTM tracking mistakes

Inconsistent parameter naming: using different values for the same campaign across different channels, utm_campaign=spring-sale in email and utm_campaign=SpringSale2024 in paid social, creates fragmented campaign reporting. A standardised naming convention enforced through a UTM management tool or governance spreadsheet prevents inconsistency.

UTM-tagging internal links: adding UTM parameters to links within the site, from one page to another on the same domain. Internal UTM tags override session attribution, a user who arrived via email and clicks an internally UTM-tagged link has their attribution overwritten to the internal link’s UTM values. Never use UTM parameters on internal links.

Missing UTM parameters on key channels: distributing campaign links without UTM parameters, relying on referrer data alone for attribution. Referrer data is unreliable, HTTPS-to-HTTP transitions, privacy browsers, and some social media platforms strip referrer information. UTM parameters provide explicit attribution that is independent of referrer reliability.

Not documenting UTM parameters: creating UTM URLs without maintaining records of what parameters were used and for which campaigns. Without documentation UTM data in analytics becomes uninterpretable, identifying what utm_campaign=test-2024-q1-v3 refers to months after creation is impossible without records.

Related terms

Related terms

Ready to keep every link alive?

Ready to keep every link alive?

Ready to keep every link alive?