UTM Parameters Explained: How to Tag Links So Analytics Tells the Truth
Your GA4 acquisition report says “referral,” your ad platform says “paid,” and your team swears it was the newsletter. When “email” gets mixed with “social,” the fix is usually simple: clean UTM parameters.
UTMs are the five tags you can add to the end of URLs so analytics can track how visitors arrive and what they clicked. They look like ?utm_source=…&utm_medium=…, and the five standard fields are Source, Medium, Campaign, Term, and Content. GA4 reads those values from the query string and turns them into the labels you rely on to judge performance.
This guide shows you what each parameter does, how GA4 uses it, and a naming convention (lowercase, hyphens, consistent mediums) your team can stick to. You’ll also get copy-paste examples for email, social, paid, and partner links, plus the mistakes that quietly wreck attribution—like tagging internal links, mixing cases, adding personal data, or losing UTMs in redirects. If you want a quick way to build clean URLs, the free UTM builder at https://hirebalzac.ai/free-seo-tools/utm-builder/ runs in the browser with no signup (and it’s part of the free tools hub at https://hirebalzac.ai/free-seo-tools/). Balzac publishes the articles those links can point to.
What Are the Five UTM Parameters? (Source, Medium, Campaign, Term, Content)
When “email” gets mixed with “social,” the fix is usually simple: clean utm parameters. HubSpot defines UTM parameters as five tags you add to the end of a URL so analytics can identify where visitors came from and what they clicked.
Here’s what each of the five UTM parameters means, in plain English, plus the decision it helps you make:
- utm_source (Source): The specific origin of the click, for example newsletter, facebook, or a partner name. Use it to answer: Which site, list, or partner sent the traffic?
- utm_medium (Medium): The channel type. HubSpot describes medium as the tag that shows which marketing channels bring visitors, with examples like email, social, or cost-per-click. Use it to answer: Which channel should get more budget and attention?
- utm_campaign (Campaign): The campaign identifier, for example product-launch, black-friday, or webinar-2026. HubSpot frames this as the tag that identifies which campaign the promotion belongs to. Use it to answer: Did this specific campaign perform?
- utm_term (Term): The keyword you are targeting in paid search. HubSpot describes it as a way to manually identify paid keywords. Use it to answer: Which paid keywords drove the right traffic?
- utm_content (Content): The exact creative element that got clicked, for example hero-button, text-link, image-a. HubSpot describes it as identifying the exact element on your ad or promotion that was clicked. Use it to answer: Which version of the ad or link placement won?
Think of source and medium as your “where did it come from” labels, and campaign, term, and content as your “which exact effort” labels. That separation keeps GA4 acquisition reports readable when you run multiple promos at once.
How Does Google Analytics 4 Use UTM Parameters?
GA4 turns UTM parameters into the labels you use to read acquisition reports. When someone clicks a tagged link, GA4 parses the query string (for example, utm_source, utm_medium, utm_campaign) and stores those values on the session. That is why a clean google analytics utm setup makes “where did it come from” and “which exact effort” feel obvious instead of guessy.
Google documents how GA4 handles campaign tagging in its official guide to URL campaign parameters. If you want one source of truth for what GA4 recognizes and how it maps, use that page.
Where UTMs Show Up in GA4 Reports
You see UTMs most clearly in GA4’s acquisition reporting and in Explorations. Common places to look:
- Reports > Acquisition > Traffic acquisition: use dimensions like Session source, Session medium, and Session campaign to group sessions by your UTM tags.
- Reports > Acquisition > User acquisition: use First user source, First user medium, and First user campaign to understand what originally brought a user in.
- Explore (Free form): add dimensions such as Session source/medium and Session campaign, then break down by Landing page + query string to sanity-check tagged URLs.
In plain terms: utm_source and utm_medium usually power “source / medium” style views, while utm_campaign powers campaign groupings. utm_content and utm_term become extra dimensions you can pull into Explorations when you need to separate creatives, placements, or paid keywords.
GA4 also applies attribution rules and channel grouping on top of your UTMs. That is why a consistent utm naming convention matters: GA4 can only group what you name the same way.
How to Create a UTM Naming Convention Your Team Won’t Break
GA4 can only group what you name the same way, so your utm naming convention matters as much as the utm parameters themselves. If one person tags utm_medium=Email and another uses utm_medium=email, you get two rows in reports and a messy “google analytics utm” view of performance.
A convention that survives handoffs has two traits: it is simple enough to remember, and strict enough to prevent “creative” tags.
UTM Naming Convention Rules That Stay Consistent
Use these rules for every tagged external link:
- Lowercase everything: sources, mediums, campaigns, terms, content.
- Use hyphens for spaces: spring-sale, not spring_sale or spring sale.
- Keep utm_medium from drifting: pick a small set of mediums and reuse them.
- Make utm_campaign stable: one campaign name per initiative, reused across channels (email, paid social, partners) so you can compare apples to apples.
- Use utm_content for variations: placement and creative names like hero-button, footer-link, video-15s.
Write campaign names like a file path: initiative then detail. Example: product-launch-analytics or webinar-ga4-attribution. Avoid dates unless the date defines the campaign (otherwise you create duplicates every time you rerun it).
Copy this “allowed values” checklist into a team doc and enforce it in reviews:
- utm_medium (allowed): email, social, paid-social, cpc, display, affiliate, partner, referral
- utm_source (pattern): platform or sender name, for example linkedin, facebook, newsletter, partnername
- utm_campaign (pattern): initiative-name (stable), for example spring-sale, product-launch
- utm_content (pattern): creative-or-placement, for example text-link, image-a, hero-cta
If you want this to stick, assign one owner for the list of mediums and sources, and treat changes like a schema migration, not a casual edit.
UTM Examples You Can Copy for Email, Social, Paid, and Partners
A naming convention only works if people can apply it fast. These utm parameters examples give you copy-paste URLs for common channels. Replace the domain and path with your landing page, then swap values to match your team’s source and medium list.
- Email newsletter
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=product-launch&utm_content=hero-button - Lifecycle email (welcome)
https://example.com/get-started?utm_source=onboarding&utm_medium=email&utm_campaign=welcome-series&utm_content=email-1-textlink - Organic social post
https://example.com/blog/utm-guide?utm_source=linkedin&utm_medium=social&utm_campaign=utm-education&utm_content=organic-post - Paid social (Meta Ads style placeholders)
https://example.com/demo?utm_source=facebook&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}
Cometly shares this kind of Meta Ads URL Parameters syntax so you can pass campaign, ad set, and ad names into UTMs. - Paid search (manual keyword)
https://example.com/landing/seo-agent?utm_source=google&utm_medium=cpc&utm_campaign=ai-seo&utm_term=ai%20seo%20agent&utm_content=text-ad-a - Partner link (logo page, directory, or co-marketing)
https://example.com/partners?utm_source=partnername&utm_medium=partner&utm_campaign=co-marketing&utm_content=listing
Fast Way to Build and Reuse Tagged Links
If you want fewer typos, use a utm builder that assembles the query string for you. Balzac’s free UTM builder runs in the browser with no signup: https://hirebalzac.ai/free-seo-tools/utm-builder/. If you need other utilities alongside campaign tagging, the tools hub is https://hirebalzac.ai/free-seo-tools/.
Keep values lowercase, stick to hyphens, and reuse the same medium labels so GA4 groups clicks cleanly.
Which UTM Mistakes Break Your Data (and How to Avoid Them)?
Lowercase and hyphens keep reports tidy, but a few common utm parameters mistakes can still wreck attribution. These are the failures that create duplicate rows, mislabel sessions, or strip tags before GA4 ever sees them.
High-Impact UTM Mistakes That Break GA4 Reporting
- Tagging internal links: Never add UTMs to links that move people around your own site. GA4 treats the click as a new campaign, so you overwrite the real source (for example, email) with whatever you put in utm_source. Use GA4 events, recommended events, or Google Tag Manager click tracking for on-site buttons instead.
- Putting personal data in UTM values: Do not include email addresses, names, phone numbers, or any identifier in utm_campaign, utm_term, or utm_content. UTMs land in URLs, browser history, screenshots, and referrer logs. Keep values descriptive and anonymous, like trial-onboarding or cta-hero.
- Inconsistent casing and spelling: GA4 does not merge Email and email. You get two rows. The same happens with paid_social vs paid-social, or linkedin vs LinkedIn. Lock a small allowed list for utm_medium and enforce lowercase everywhere.
- Redirects that drop parameters: Some link shorteners, tracking redirects, and misconfigured server redirects fail to pass the full query string. If the redirect strips ?utm_…, GA4 falls back to referrer or “direct.” Always test the final landing URL in the browser address bar and confirm the UTMs still exist after every hop.
Google’s own guide to URL campaign parameters is the reference for what GA4 recognizes and expects in a google analytics utm setup.
Quick Fix Checklist (Before You Ship a Tagged Link)
- Confirm the link points off-site or from an external placement to your site, not between your own pages.
- Scan values for personal data, then replace with neutral labels.
- Normalize everything to lowercase and hyphens, then compare against your utm naming convention list.
- Click the link through every redirect, then verify the final URL still contains all UTMs.
- Open GA4 Realtime and confirm the session shows the expected source and medium.
Conclusion: A Simple UTM Workflow You Can Use Every Time
Google’s URL campaign parameters doc tells you what GA4 recognizes. Your job is to make utm parameters repeatable so every link ships with clean labels, every time.
Use this workflow as a checklist for any external link you want GA4 to attribute correctly, from newsletters to paid campaigns.
- Build the URL: start with the final landing page URL (the page you want people to reach after any tracking). Add utm_source, utm_medium, and utm_campaign every time. Add utm_content when you need to separate placements or creatives. Add utm_term for paid keywords.
- QA the tags: enforce your utm naming convention before the link leaves your hands. Check lowercase, hyphens for spaces, and mediums that match your allowed list (for example, keep email and paid-social consistent). Confirm you did not tag an internal navigation link and you did not include personal data in any UTM value.
- Launch the link: paste the exact tagged URL into your email tool, ad platform, partner doc, QR generator, or PDF. If the click goes through a redirect (link shorteners, tracking links, some social schedulers), test it once to confirm the redirect keeps the query string intact.
- Verify in GA4: click the link yourself (or use a teammate). In GA4, open Reports > Acquisition > Traffic acquisition and check Session source, Session medium, and Session campaign. If you need deeper debugging, use Explore and add Landing page + query string to confirm the UTMs arrived.
One Habit That Keeps Google Analytics UTM Data Honest
Centralize link creation. One shared sheet, one owner for medium values, and one review step before launch prevents “Email” vs “email” and other silent splits in GA4.
If you need content for those tagged links to point to, Balzac publishes the articles those links can promote.