You send an email campaign, post on LinkedIn, and run a Google ad — all pointing to the same landing page. A week later, you open GA4 and see a spike in traffic. Great. But where did it come from? Without UTM parameters, the answer is almost always "Direct" or a vague session source that tells you nothing useful.
UTM parameters are small text tags you add to URLs. They cost nothing, require no code changes, and give you precise campaign attribution in Google Analytics 4. Here's how they work.
What Are UTM Parameters?
UTM stands for Urchin Tracking Module — a naming convention from Urchin Software, which Google acquired and eventually turned into Google Analytics. The parameters are appended to URLs as query strings, starting after a ? and separated by &.
https://example.com/landing-page ?utm_source=newsletter &utm_medium=email &utm_campaign=spring-sale-2026
When someone clicks this link, GA4 reads the parameters automatically and logs them as session attributes. No JavaScript changes, no server-side code — it just works with your existing GA4 setup.
The Five UTM Parameters
| Parameter | What it tracks | Example |
|---|---|---|
| utm_source | Where the traffic originates | newsletter, google, twitter |
| utm_medium | The marketing channel or method | email, cpc, social |
| utm_campaign | The campaign name | spring-sale-2026, product-launch |
| utm_content | Differentiates links within a campaign | header-banner, footer-link |
| utm_term | Paid search keyword | project management software |
utm_source — Where did they come from?
This identifies the traffic origin. Use the platform or service name: google, newsletter, facebook, partner-blog. Keep it lowercase and consistent — GA4 is case-sensitive, so Newsletter and newsletter will show up as separate sources.
utm_medium — How did they get there?
This is the channel type. GA4 uses the medium to auto-classify sessions into channel groups, so stick to conventional values: email for email campaigns, cpc for paid search, social for organic social, banner for display ads.
utm_campaign — Which campaign?
A human-readable campaign identifier. Use hyphens instead of spaces, and consider including a date or quarter: q1-2026-product-launch. This is what you'll filter by in the GA4 reports.
utm_content — A/B testing and multiple links
Useful when you have two links in the same email pointing to the same destination. Tag them differently — utm_content=header-cta vs utm_content=ps-link — and you'll know which one drives more clicks.
utm_term — Paid keyword tracking
Mainly used with Google Ads. You can populate it automatically using the {keyword} ValueTrack parameter in your ad URLs. Skip this for email and social campaigns — it's not relevant there.
A real campaign URL
https://example.com/sale ?utm_source=newsletter &utm_medium=email &utm_campaign=spring-sale-2026 &utm_content=main-cta-button
Where to Check Results in GA4
In GA4, go to Reports > Acquisition > Traffic acquisition. By default, the primary dimension is "Session default channel group." Switch it to "Session source / medium" or "Session campaign" to see UTM-level detail.
You'll see metrics like sessions, engaged sessions, conversions, and revenue broken down by exactly which UTM-tagged URL drove the traffic. If a session has no UTM tags, it falls into "Direct" or gets auto-categorized by GA4 based on the referrer.
Building tagged URLs manually gets tedious fast. The UTM URL generator lets you fill in the fields and copy the finished URL. If any of your values contain spaces or special characters, run them through the URL encoder first. To inspect a URL someone else built, the URL parser breaks it into its components instantly.
FAQ
- Do UTM parameters affect SEO rankings?
- No — Google understands that UTM parameters are tracking tags, not content variations. Googlebot typically crawls the canonical URL without query parameters, so UTM-tagged URLs don't create duplicate content issues or affect rankings. That said, it's good practice to set up a canonical tag on your landing pages pointing to the parameter-free URL, just to be thorough.
- Which UTM parameters are required?
- Technically none are strictly required, but utm_source and utm_medium are effectively mandatory if you want the session to be classified correctly in GA4's channel reports. Without them, the traffic may end up lumped into "Direct." Add utm_campaign if you want to filter and compare campaign performance.
- Should I encode UTM parameter values?
- Yes, if they contain spaces or special characters. Spaces should become
%20or+, and characters like&inside a value must be encoded as%26to avoid breaking the URL structure. Use hyphens instead of spaces in campaign names to avoid this entirely — it's cleaner and easier to read in reports. - What happens if someone shares a UTM-tagged URL?
- The UTM parameters travel with the URL, so anyone who clicks a shared link will be attributed to the original campaign. This can skew your data — for example, if a tweet with a UTM tag gets reshared widely, all that traffic shows up under your original Twitter campaign. It's an inherent limitation of URL-based tracking, and why first-party analytics data should always be interpreted with context.
Summary
- UTM parameters tell GA4 exactly where your traffic came from — without them, it's mostly guesswork
- The three essential parameters are
utm_source,utm_medium, andutm_campaign - Use lowercase values and hyphens instead of spaces for consistency
- Check results in GA4 under Reports > Acquisition > Traffic acquisition
- Use
utm_contentto A/B test different links in the same email or ad
Tools to help you build and inspect UTM-tagged URLs:
- UTM URL Generator — fill in the fields and get a properly formatted URL
- URL Encoder — encode special characters in parameter values
- URL Parser — break apart any URL to inspect its query parameters