UTM Parameters: A Complete Campaign Tagging Guide
UTM parameters are the five text fields appended to URLs that tell GA4 which campaign sent each visitor. Without them, most paid traffic appears as direct or unattributed in reports. With a consistent naming convention applied across every campaign, UTM data becomes the cleanest attribution signal you have. This piece covers the five parameters, a naming framework, and the mistakes that corrupt channel data.
- Without UTMs, much paid traffic appears as direct in GA4 because referrer headers are frequently stripped.
- Source, medium, and campaign are required; use all lowercase and hyphens, never spaces or inconsistent capitalisation.
- Google Ads auto-tagging passes richer data than manual UTMs, leave it on and use manual UTMs for every other channel.
- Never add UTMs to internal links; every UTM overwrites the original traffic source for that session.
Why UTMs matter
Without UTM parameters, GA4 attributes a large share of paid traffic to the “direct” channel. This happens because the referrer header that browsers send, which normally tells analytics where a visitor came from, gets stripped in several common situations: HTTPS to HTTP redirects, some email clients, certain social apps, and clicks from PDF documents. The visitor arrived from a campaign you paid for, but the session appears unattributed.
UTM parameters bypass the referrer entirely. Because the values are in the URL itself, they survive any referrer-stripping and land in GA4 regardless of how the browser handled the previous page. For any channel that does not have native tracking integration (everything except Google Ads with auto-tagging on), UTMs are the only reliable way to see which campaigns are producing results in your analytics data.
The five parameters
| Parameter | What It Captures | Example |
|---|---|---|
utm_source | The platform or publisher that sent the traffic | linkedin, meta, mailchimp |
utm_medium | The marketing channel type | paid-search, paid-social, email |
utm_campaign | The specific campaign name | july-lead-gen, brand-awareness-q3 |
utm_content | The specific ad or creative variant | blue-cta, video-testimonial |
utm_term | The keyword (for paid search, populated automatically) | performance+marketing+agency |
Source, medium, and campaign are required for clean attribution. Content and term are optional but useful for A/B testing and keyword-level reporting. A tagged URL looks like: https://www.beeyacorp.org/contact?utm_source=linkedin&utm_medium=paid-social&utm_campaign=july-lead-gen.
Naming conventions
The naming convention you choose matters less than applying it consistently and enforcing it across everyone who creates links. GA4 is case-sensitive: Paid-Search and paid-search appear as two separate channels. One person capitalising and another not creates a data split that corrupts any report comparing channels over time.
- 01
Always lowercase
No exceptions. All UTM values in lowercase, always. This eliminates case-sensitivity errors entirely.
- 02
Use hyphens, not spaces or underscores
Spaces in UTM values get encoded as
%20or+in the URL, which sometimes breaks and always looks messy. Underscores work but create inconsistency with how most platforms display values. Hyphens are readable and reliable. - 03
Standardise medium values across all platforms
A fixed list for medium:
paid-search,paid-social,email,affiliate,display,organic-social. Use the same value every time regardless of which platform you are tagging. - 04
Make campaign names self-describing
A campaign named
c1is useless in a report six months later. Use a format like[year]-[month]-[product or service]-[intent]so the report reads clearly without a separate reference document:2026-07-paid-media-audit-lead-gen. - 05
Maintain a tagging spreadsheet
A single shared document where every tagged URL is created using a formula, not typed manually. Manual entry is where typos and inconsistency enter. The spreadsheet acts as both a URL builder and an archive.
Auto-tagging vs manual UTMs
Google Ads auto-tagging appends a gclid to destination URLs automatically and sends richer data to GA4 than manual UTMs can carry: keyword, match type, ad group, campaign, network, and device. Leave auto-tagging on for Google Ads and do not add manual UTMs to Google Ads destination URLs unless your analytics setup cannot process the gclid (some third-party tools) and you have verified that the manual tags will not conflict.
For every other paid channel, LinkedIn, Meta (if not using native Meta integration), email platforms, affiliate networks, QR codes, and offline media, manual UTMs are the correct approach. Meta’s Conversions API sends conversion data server-side, but the session attribution in GA4 still depends on the UTMs in the ad URL unless you use Meta’s native GA4 integration.
How UTMs appear in GA4
GA4 maps UTM values into its own channel groupings by matching the source and medium values against a set of rules. utm_medium=paid-social maps to the “Paid Social” channel in default channel groups. If your medium value does not match any rule (for example, utm_medium=ppc), the session goes into “Unassigned,” where it is invisible in channel reports.
The practical verification step after setting up UTM tagging: send a test click through each tagged URL, open GA4 DebugView, confirm the session appears with the correct source, medium, and campaign values, and check that it maps to the expected channel group in the Traffic Acquisition report. This takes five minutes per channel and prevents weeks of corrupted data. The GA4 reporting layer for all of this is in the GA4 reports guide, and the full measurement context is in the measurement guide.
Common mistakes
| Mistake | Effect in GA4 |
|---|---|
| Adding UTMs to internal links | Every page with a UTM overwrites the original traffic source; a visitor from paid search who clicks a tagged internal link becomes “direct” from that point |
| Inconsistent capitalisation | Splits channel data: “Paid-Search” and “paid-search” are two separate rows in every report |
Using cpc as medium for paid social | Blends Meta and LinkedIn spend with Google Ads in GA4’s Paid Search channel group |
| No UTMs on email links | Email traffic appears as direct, making it impossible to measure email campaign ROI separately from organic brand visits |
| Including dynamic values without testing | Some platforms insert macro values like {campaignid} literally if not configured; the URL breaks and GA4 receives a garbage string |
Clean UTM data is the foundation of the GA4 channel reports in the paid media dashboards guide and the offline conversion imports covered in the CRM tracking guide. Our analytics and attribution service includes UTM architecture as part of the tracking setup.
Frequently Asked Questions
UTM parameters are five optional tags added to the end of a URL that tell Google Analytics and other analytics tools which marketing activity sent a visitor. The name comes from Urchin Tracking Module, the web analytics product Google acquired and eventually turned into Google Analytics. When a visitor clicks a tagged URL, the parameter values are captured in their session and appear in acquisition reports.
No. Google Ads uses auto-tagging by default, which appends a gclid (Google Click Identifier) parameter to destination URLs automatically. GA4 reads the gclid and attributes the session to Google Ads without manual UTMs. Manual UTMs on Google Ads URLs can conflict with auto-tagging if not set up correctly. The safest approach is to leave auto-tagging on and use manual UTMs only for channels that do not have their own native tagging: LinkedIn, email, affiliates, and offline QR codes.
Use paid-social (with a hyphen, lowercase) consistently across all paid social platforms. Common mistakes include using cpc for social (which blends it with paid search in GA4’s default channel groups) or using different terms per platform such as social on Meta and paid_social on LinkedIn. Consistency across platforms is what makes the medium field useful for channel-level comparison.
No. UTM parameters are not visible to search engine crawlers in a way that affects ranking. Google strips UTM parameters from the canonical URL it indexes, so they do not create duplicate content issues when used correctly. The one exception: if your site serves different content based on UTM values and the UTM URL gets indexed, that can create issues, but this is a CMS configuration problem rather than a UTM problem.
Ready to fix what’s costing you conversions?
We’ll review your acquisition funnel, show you exactly what’s underperforming, and hand you a clear, prioritised plan, whether or not you choose to work with us.
Get a clear diagnosis of your acquisition performance.
- 30-minute review
- Free, with no obligation
- Clear findings and priorities
- You keep the findings
30 minutes · Free · No obligation · You keep the findings
