Skip to content

UTM Parameters Explained: Track Campaign Performance

Last Updated: August 29, 2026

What UTM Parameters Are and Why They Matter

UTM parameters are query string values appended to URLs that tell Google Analytics where traffic originated. Without UTM parameters, Google Analytics attributes all non-search traffic to "Direct" or "Organic," making it impossible to distinguish between traffic from a Facebook post, a newsletter email, a paid ad, or a podcast mention. UTMs solve this attribution problem by tagging each link with descriptive metadata.

A URL with UTM parameters looks like this: https://example.com/spring-sale?utm_source=facebook&utm_medium=social&utm_campaign=spring2026&utm_content=teaser_post&utm_term=running_shoes. When a user clicks this link, Google Analytics reads the UTM values and attributes the session to the Facebook Spring 2026 campaign, the teaser post content variant, and the running shoes term.

The critical rule: never apply UTM parameters to internal links (links between pages on your own site). UTMs on internal links reset the attribution chain, overwriting the original traffic source. A user who arrives from Google organic, clicks an internal link with UTM parameters, and then converts gets attributed to the UTM source instead of Google organic. This corrupts your attribution data.

The Five UTM Parameters Explained

utm_source identifies the traffic source. Use the platform name: facebook, instagram, google, newsletter-name, podcast-name. This parameter is required. Be consistent with naming: "Facebook" and "facebook" and "fb" all create separate entries in your reports. Pick one convention and document it for your team.

utm_medium identifies the marketing medium or channel. Standard values include: organic (unpaid search), cpc (paid search), social (organic social), email, affiliate, referral, display (banner ads), and video. This parameter is required. Google Analytics uses this value to group traffic in the Acquisition reports, so using non-standard values like "fb_post" instead of "social" breaks the default grouping.

utm_campaign identifies the specific campaign. Use descriptive names: spring2026, product_launch_headphones, black_friday_2026, newsletter_weekly_roundup. This parameter is required for campaign tracking. Include the date or timeframe to distinguish recurring campaigns.

utm_term identifies the paid search keyword or targeting parameter. Primarily used for Google Ads campaigns where it auto-populates with the triggering keyword. For non-PPC campaigns, use it to tag audience segments, interest targeting, or content topics.

utm_content differentiates similar content or links within the same campaign. Use it for A/B testing: version_a vs version_b, for placement: header_cta vs sidebar_cta, or for content type: teaser_post vs carousel_ad. This parameter is optional but invaluable for understanding which creative elements drive engagement.

Building URLs with Campaign URL Builder

Google's Campaign URL Builder (GA4 URL Builder) generates UTM-tagged URLs through a simple form. Enter your destination URL, source, medium, and campaign name, and the tool generates the complete tagged URL. Copy and paste it into your campaign materials.

For bulk URL creation, use a spreadsheet. Create columns for destination URL, utm_source, utm_medium, utm_campaign, utm_term, and utm_content. Use a CONCATENATE formula to build the tagged URLs:

=A2 & "?utm_source=" & B2 & "&utm_medium=" & C2 & "&utm_campaign=" & D2 & IF(E2="","","&utm_term=" & E2) & IF(F2="","","&utm_content=" & F2)

For a product launch campaign across three channels, the spreadsheet would contain rows like: example.com/product?utm_source=newsletter&utm_medium=email&utm_campaign=launch2026, example.com/product?utm_source=facebook&utm_medium=social&utm_campaign=launch2026, and example.com/product?utm_source=podcast&utm_medium=referral&utm_campaign=launch2026.

UTM Naming Conventions That Keep Data Clean

Adopt a consistent naming convention before your first campaign. The most common mistakes are inconsistent capitalization (Facebook vs facebook), inconsistent separators (spring_sale vs spring-sale vs springSale), and inconsistent abbreviations (fb vs facebook). Each variation creates a separate entry in Google Analytics reports, fragmenting your data.

Recommended conventions: all lowercase for utm_source and utm_medium, underscores for multi-word names (spring_2026, not spring-2026), campaign names with date suffixes (product_launch_q1_2026), and content variants with clear identifiers (hero_banner, sidebar_cta, email_header). Document these conventions in a shared spreadsheet or wiki that your entire marketing team references.

Create a UTM tracking spreadsheet with columns for: campaign name, destination URL, utm_source, utm_medium, utm_campaign, utm_term, utm_content, launch date, and status. This provides a historical record of every tagged URL and prevents duplicate or conflicting campaign names.

Common UTM Mistakes That Corrupt Data

UTMs on internal links is the most damaging mistake. A navigation link from your homepage to a product page with utm_source=homepage creates a new session attribution, overwriting the original traffic source. The user who came from Google organic now appears to have come from your homepage. Never tag links within your own site.

Inconsistent naming fragments your data. If one team member tags email campaigns as "email" and another tags them as "newsletter," your Email channel splits into two separate entries. Create a naming convention document and enforce it across all team members.

Missing utm_medium causes traffic to appear in the wrong channel grouping. Without utm_medium, Google Analytics cannot categorize the traffic correctly. Always include utm_source, utm_medium, and utm_campaign at minimum.

Using UTMs for A/B testing without unique content values makes it impossible to determine which variant performed better. Tag each variant with a distinct utm_content value: variant_a vs variant_b, or red_button vs green_button.

Tracking QR Code Campaigns with UTMs

QR codes that link to URLs without UTM parameters cannot be distinguished from direct traffic. Every QR code should include UTM parameters that identify the placement, medium, and campaign. A QR code on a printed flyer linking to https://example.com/sale is untrackable. The same code linking to https://example.com/sale?utm_source=flyer&utm_medium=print&utm_campaign=spring2026 appears in your reports as print traffic from the spring campaign.

Generate unique QR codes for each placement with different utm_content values. A coffee shop poster uses utm_content=downtown_poster, while a suburb location uses utm_content=suburb_poster. This reveals which physical locations generate the most scans and conversions. Use our QR code generator to create UTM-tagged QR codes with proper campaign attribution.

Analyzing UTM Data in GA4

In GA4, UTM data appears in the Acquisition reports. Navigate to Reports > Acquisition > Traffic acquisition to see sessions grouped by session source, session medium, and session campaign. The default channel grouping automatically categorizes traffic based on utm_medium values: organic, paid, social, email, referral, and display.

Create custom explorations to analyze UTM performance in detail. Build a freeform exploration with utm_campaign as the row dimension and sessions, engagement rate, and conversions as the column values. This reveals which campaigns drive not just traffic but meaningful engagement and business results.

Compare campaign performance using the date comparison feature. Set the date range to the campaign period and compare against the previous period or the same period last year. This shows the incremental lift from your campaign beyond baseline organic traffic.