Always include utm_source, utm_medium, and utm_campaign together, and apply a team-wide naming convention with lowercase letters and hyphens. This single habit prevents most of the broken attribution marketers see in GA4. Partial or inconsistent tags do not just create messy data, they fragment your reports into categories that look like separate campaigns when they are really one. A shared registry keeps everyone using the same language.
TL;DR:
- Always include utm_source, utm_medium, and utm_campaign together to ensure accurate attribution and avoid β(not set)β entries in GA4 reports.
- Use lowercase, hyphen-separated values for all UTM parameters and maintain a shared naming registry to prevent fragmented data and casing mismatches.
- Test each tagged URL in GA4 real-time reports before publishing, and check for correct parameter display and consistent campaign grouping post-launch.
- Rely on Googleβs Campaign URL Builder and avoid mixing manual UTMs with auto-tagging in Google Ads to prevent parameter conflicts and data loss.
- Regularly audit your UTM registry, keep parameters consistent, and limit campaign naming complexity to sustain clear, reliable tracking over time.
Table of Contents
- UTM parameters explained: what each one does and when to use it
- How GA4 reads UTM tags and where tagging goes wrong
- Step-by-step: build a clean UTM-tagged URL
- Naming conventions and governance for teams
- Tools and workflows for building and managing UTM links
- Testing, QA, and launch checklist
- Practical UTM examples and templates
- Common mistakes, troubleshooting, and quick fixes
- How to analyze and report on UTM data in Google Analytics
- Integrating UTM tagging with broader attribution models
- Keeping UTM tags compliant with privacy expectations
- Handling dynamic parameters and auto-tagging in complex setups
- Publisher perspective: simple UTM governance for small teams
- How A creative studio can help with UTM setup and campaign QA.
- FAQ
- Sources
UTM parameters explained: what each one does and when to use it
A UTM parameter is a short tag you add to the end of a URL so Google Analytics knows where a visitor came from. Three of them form the required trio, and GA4 expects all three before it will attribute a session cleanly.
- utm_source: identifies where the traffic originates, such as newsletter, Facebook, or google.
- utm_medium: describes the channel type, such as email, social, or CPC.
- utm_campaign: names the specific initiative, such as fall-sale-2026 or product-launch.
- utm_content: distinguishes between versions of the same ad or link, useful for A/B tests.
- utm_term: historically used for paid search keywords, now less common outside Google Ads.
GA4 also recognizes a few additional fields worth knowing. utm_id ties a URL to a specific campaign ID in Google Ads or Search Ads 360. utm_source_platform and utm_marketing_tactic help categorize traffic by platform and strategy, and utm_creative_format labels the ad unit itself, such as display or video. These extras are optional, but according to GA4βs developer documentation, custom parameters like these need to be registered as dimensions before they show up in standard reports or explorations.
The core trio is non-negotiable. utm_content and utm_term are useful refinements but not required for GA4 to attribute a session correctly.
A properly built URL looks like this:
https://example.com/landing-page?utm_source=newsletter&utm_medium=email&utm_campaign=fall-sale-2026
Notice the question mark starts the parameter string, and each additional parameter is joined with an ampersand. No spaces, no capital letters, no guessing at what βemail_newsletterβ meant three months ago.

How GA4 reads UTM tags and where tagging goes wrong
GA4 behaves differently than older analytics platforms in one important way: once it detects any UTM parameter on an incoming URL, it pulls source and medium data exclusively from those UTM values rather than blending in other signals. Analytics Mania explains that Google recommends always using utm_source, utm_medium, and utm_campaign together, because missing a required field often produces β(not set)β entries in acquisition reports instead of a clean channel label.
This is the all-or-nothing effect. Tag a link with only utm_campaign and skip utm_source or utm_medium, and GA4 will not fill in the blanks sensibly. It will often log the session under a vague or unassigned bucket instead of the channel you meant.
Googleβs own traffic-source documentation confirms this precedence rule, noting that when manual tagging and auto-tagging are both present, auto-tagging takes priority for core fields, and that any UTM parameter triggers GA4 to derive cross-channel dimensions from UTMs alone.
Default channel grouping in GA4 also depends on recognizable medium values. A utm_medium of βcpcβ maps to Paid Search. A medium like βe-mail-blastβ or βEmailβ with a capital letter will not reliably match the expected pattern, and GA4 may route that traffic somewhere unexpected.
Symptoms of a tagging problem usually show up the same way:
- A spike in βUnassignedβ traffic in the Traffic Acquisition report.
- Campaigns that should be grouped together appearing as separate rows because of a casing mismatch.
- Referral traffic appearing where paid traffic should be.
If you spot these symptoms, check your active campaign URLs against your naming registry before assuming the channel itself underperformed.
Step-by-step: build a clean UTM-tagged URL
Building a tagged URL is mechanical once you know the order of operations. Follow these steps every time, whether you are working by hand or using a tool.
- Start with the full destination URL, including https:// and the exact landing page path.
- Add a question mark immediately after the URL with no space.
- Add utm_source first, followed by an ampersand before each additional parameter.
- Add utm_medium next, using a value from your approved medium list.
- Add utm_campaign, using lowercase words separated by hyphens.
- Add utm_content or utm_term only if you need to distinguish ad variants or keywords.
- Copy the finished URL and test it in a browser before publishing anywhere.
Googleβs own Campaign URL Builder does steps two through six for you. Enter the website URL, then fill in source, medium, and campaign name as required fields, with content and term as optional extras. The tool assembles the string automatically and reduces the chance of a stray space or missing ampersand.
Before you publish any link, check for three things: no capital letters where lowercase is expected, no spaces (hyphens only), and no duplicated parameters from copying an old template.
Pro Tip: Keep a plain text version of your most common UTM strings in a shared document so nobody retypes utm_medium=social as utm_medium=Social by accident.
One exception matters here. When running Google Ads campaigns with auto-tagging enabled, Google appends its own gclid parameter and populates richer platform data automatically. Manual UTMs on Google Ads links can conflict with that auto-tagged data, so auto-tagging is generally the better choice for Google Ads specifically, while manual tagging remains correct for email, social, and other paid platforms.
Naming conventions and governance for teams
A UTM system only stays useful if more than one person can follow it without asking questions. That means fixed rules, not personal preference.
- Use lowercase for every parameter value, with no exceptions for brand names or acronyms.
- Separate words with hyphens, never underscores or spaces.
- Maintain a fixed, short list of accepted utm_medium values, such as email, social, cpc, referral, and affiliate.
- Write campaign names using a consistent pattern of season or quarter, initiative, and year.
Neil Patelβs guide to UTM parameters echoes this same structure, recommending lowercase values, hyphens over spaces, and a fixed medium vocabulary specifically to prevent fragmented reporting across a team.
A campaign naming template keeps everyone aligned. Here is a simple structure your team can copy directly:
| Element | Format example | Sample value |
|---|---|---|
| Season or quarter | q#-year | q4-2026 |
| Initiative | short-description | fall-sale |
| Channel detail | medium-source | email-newsletter |
| Full campaign name | combined | q4-2026-fall-sale |
Governance does not require expensive software. A single shared spreadsheet, with one row per live campaign link, works for most small teams. Assign one person as the owner of that sheet, someone who approves new campaign names before they go live and flags duplicates. When someone wants a new initiative name, they check the sheet first, then add their row once the link is built and tested. This takes minutes and saves hours of untangling mismatched reports later. Our campaign strategy process builds this kind of registry into the planning phase so it never becomes an afterthought.
Tools and workflows for building and managing UTM links
Most small teams do not need enterprise software to keep UTM tagging consistent. The right tool depends on team size and how many campaigns run at once.
- Google Campaign URL Builder: free, fast, and ideal for one-off links or small teams without a shared spreadsheet yet.
- Browser extensions: several UTM builder extensions let you generate and copy tagged links without leaving the page you are promoting.
- Spreadsheet templates: a shared sheet with dropdown menus for source and medium enforces your controlled vocabulary automatically.
- Dedicated UTM management tools: worth considering once a team manages dozens of active campaigns across multiple people.
A dependable workflow follows four steps in order: build the link, register it in your shared sheet or tool, shorten it only if the platform requires a shorter format, then test the final link before scheduling it anywhere.
If you shorten a UTM-tagged URL, append the UTM parameters first, then run the full tagged link through the shortener, never the other way around. Clarity Globalβs guide to UTM tags warns that shorteners can drop or alter query parameters if the order is reversed, which silently erases your tracking data. When scheduling posts through a social media tool, paste the finished shortened link into the scheduler rather than letting the scheduler generate its own link, since some platforms apply their own tracking that can override or conflict with your UTMs.
Testing, QA, and launch checklist
A few minutes of testing before launch catches almost every tagging error before it reaches a live campaign.
- Click the finished link yourself and confirm the landing page loads correctly.
- Check the URL bar to confirm all three required parameters appear exactly as written.
- Open GA4βs real-time report and send a test click to confirm the session appears with the right source and medium.
- Scan your site navigation and internal links to confirm none of them accidentally carry the campaign tag.
After launch, check the Traffic Acquisition report in GA4 within a day or two to confirm the campaign is grouping into the expected channel, not landing in Unassigned or a mismatched category. Spot-check a handful of individual sessions to confirm the campaign name matches what you registered.
Pro Tip: Set a recurring calendar reminder, every 90 days, to audit your UTM registry for duplicate or inconsistent entries before they pile up.
A short, regular audit cadence keeps a small registry from turning into an unreadable mess six months later.
Practical UTM examples and templates
Having a few ready-made templates speeds up execution when a campaign needs to launch quickly.
- Email:
?utm_source=newsletter&utm_medium=email&utm_campaign=q4-2026-fall-sale&utm_content=header-ctaversusutm_content=footer-ctato compare click placement. - Organic social:
?utm_source=instagram&utm_medium=social&utm_campaign=q4-2026-fall-sale - Paid ads: for platforms other than Google Ads, use
?utm_source=facebook&utm_medium=cpc&utm_campaign=q4-2026-fall-sale. For Google Ads itself, rely on auto-tagging rather than adding manual UTMs, since Google appends its own tracking automatically. - QR codes: point the code at a tagged URL such as
?utm_source=print-flyer&utm_medium=qr-code&utm_campaign=q4-2026-fall-saleso in-store or print traffic shows up distinctly from digital clicks.
These templates only work if the campaign name and medium match what is already in your shared registry. A one-off value, even a well-intentioned one, creates a new row in your reports instead of joining the existing campaign.
Common mistakes, troubleshooting, and quick fixes
Most UTM problems trace back to a small number of repeat offenders.
- Case mismatches: βEmailβ and βemailβ register as two different values in GA4.
- Missing a required parameter: skipping utm_source or utm_medium produces unassigned or incomplete attribution.
- Tagging internal links: adding UTMs to links within your own site resets the session and attributes it to the wrong source.
- Broken encoding: spaces or special characters left unescaped can break the URL entirely.
- Shortening before tagging: running a link through a shortener before adding UTMs, or in the wrong order, can strip the parameters.
When something looks wrong in your reports, work through it in order: reproduce the issue by clicking the exact link in question, inspect the URL string character by character, correct the error at the source, then document what went wrong in your registry so the same mistake does not repeat.
Retroactive fixes have limits. GA4 will not reprocess historical sessions once they have already been logged under the wrong label, so the real fix is catching the error before a campaign goes live, not after.
How to analyze and report on UTM data in Google Analytics
Once your links are live, GA4βs Traffic Acquisition report under Reports > Acquisition is the main place to review campaign performance. Each row groups sessions by source, medium, or campaign, depending on which dimension you select, and you can add a secondary dimension to see content or term breakdowns within a single campaign.
For a closer look, build an exploration using the Free Form template and add session campaign, session source, and session medium as dimensions alongside the metrics that matter, such as conversions or engagement rate. This view makes it easy to confirm that every row matches a name in your registry rather than a typo or a one-off variant.
If your team uses another analytics platform alongside GA4, most will read the same utm_source, utm_medium, and utm_campaign parameters natively, since these became a de facto standard well before GA4 existed. Export campaign-level data regularly if you need to combine GA4 numbers with a separate reporting tool or a marketing dashboard, and always confirm that the parameter spelling matches exactly between systems. A mismatch in capitalization between two platforms can make the same campaign look like two different ones.
Integrating UTM tagging with broader attribution models
UTM tags answer the βlast clickβ question well: which specific link brought a visitor to your site. They are not a full attribution model on their own, and treating them as one leads to overvaluing the final touchpoint in a longer customer journey.
GA4βs built-in attribution reports allow you to compare last-click, first-click, and data-driven models using the same UTM data as the input. If a customer clicked a social ad, then returned a week later through an email link before converting, your UTMs captured both of those touches. The attribution model you choose determines how credit gets split between them, not whether the touches were tracked at all.
For small teams, the practical move is to keep UTM tagging consistent across every channel so that whichever attribution model you review later has clean data to work with. Decide on one default model, document which one your team reports from, and avoid switching models mid-quarter, since it makes campaign comparisons across time inconsistent. A properly tagged campaign feeds every attribution view equally well.
Keeping UTM tags compliant with privacy expectations
UTM parameters themselves do not contain personal data. They describe a campaign, not a person, which makes them lower risk than cookies or user identifiers from a privacy standpoint.
That said, a few habits keep tagging practices aligned with general privacy expectations. Never include a customerβs name, email address, or any identifying detail inside a UTM parameter value, even for internal testing purposes. Treat utm_content values as campaign descriptors only, such as βheader-ctaβ or βversion-b,β never as a way to encode individual recipient data.
If your email platform or CRM appends additional tracking parameters beyond your own UTMs, review what those parameters capture before combining them with your campaign data. Some platforms layer in recipient-specific identifiers that carry different privacy obligations than a standard UTM string. When in doubt, keep your own UTM tagging separate from any platform-level tracking and document which system is responsible for which parameter.
Handling dynamic parameters and auto-tagging in complex setups
Larger or more complex campaigns often need UTMs that adjust automatically rather than being typed by hand every time. Many ad platforms support dynamic parameters, like ValueTrack in Google Ads, that insert details such as device type, keyword, or placement into the URL at the moment a click happens.
The key rule here mirrors the auto-tagging guidance from earlier: when a platform offers reliable built-in tagging, such as Google Adsβ gclid system, let it handle that channel rather than layering manual UTMs on top. Mixing manual and automatic tagging on the same link risks parameter conflicts, where GA4 cannot tell which value should take precedence.
For platforms without built-in dynamic tagging, a templated approach works well. Build your UTM structure once with placeholders for the variable piece, such as utm_content={ad_name}, and let your ad platformβs dynamic insertion fill in the rest at serve time. Test a handful of generated URLs manually after setup to confirm the dynamic values are populating correctly and not leaving a literal placeholder in the live link. Complex setups with many ad variants benefit from automating this generation through a spreadsheet formula or a dedicated tool rather than building each URL by hand, since manual entry is where casing errors and typos creep in fastest.
Publisher perspective: simple UTM governance for small teams
Most small businesses do not need a UTM management platform. They need three parameters used consistently, a shared sheet, and one person willing to own it. The all-or-nothing rule in GA4 is unforgiving, but it is also simple to satisfy once a team commits to it.
The real failure point is not complexity, it is drift. A campaign gets tagged correctly in January and sloppily in June because the person who built the original template moved to a different project. A one-page naming policy survives that kind of turnover far better than good intentions do.
Some creative studios build UTM registries and naming templates directly into the campaign planning work for clients, to keep tagging consistent even as the people running campaigns change over time.
β Charles
How A creative studio can help with UTM setup and campaign QA.

Clean campaign tracking is part of a bigger picture: a website and marketing presence that actually reflects your business. I build UTM naming systems and tagging templates into the campaign strategy work I do with small business clients, so reporting stays readable from the first link you send. If you are launching a new site, redesigning an existing one, or planning a campaign and want the measurement side handled correctly from day one, my Marketing & Strategy services cover campaign planning and tagging setup, and my Web Design & Development work includes GA4 setup so your tracking is ready before launch. Reach out and we will map out a system that fits your team.
FAQ
How do I set up UTM tags for a campaign?
Start with a destination URL, then add utm_source, utm_medium, and utm_campaign in that order, separated by a question mark and ampersands. Use Googleβs Campaign URL Builder to avoid formatting errors, and test the finished link in GA4βs real-time report before publishing it.
What are the most common UTM mistakes?
The most frequent errors are mixing uppercase and lowercase letters in the same parameter, leaving out one of the three required fields, and accidentally tagging internal links on your own site. Each of these can push sessions into an unassigned or mismatched category in GA4βs acquisition reports.
How do I generate a UTM tag?
Use Googleβs free Campaign URL Builder tool, which assembles the full tagged URL once you enter your website address along with source, medium, and campaign name. A shared spreadsheet with dropdown menus for approved values works well too, especially for teams managing several campaigns at once.
How many UTM parameters should I use?
The three required parameters, utm_source, utm_medium, and utm_campaign, are enough for most campaigns and are necessary for GA4 to attribute a session correctly. Add utm_content or utm_term only when you need to distinguish between specific ad variants, link placements, or keywords within that same campaign.
