What Are UTM Parameters? How UTM Tracking Shapes Ad Analysis

What are UTM parameters and what do they do?
UTM parameters are short tags you add to the end of a URL so your analytics tool knows which source, medium and campaign sent each visitor. Google Analytics 4 reads these tags, so you can separate ad, email and social traffic and judge every campaign by the results it actually drives.
The name comes from Urchin Tracking Module, the product Google bought and turned into Google Analytics. The name is old, but the job has not changed. In short, you attach an ID card to a link, and your analytics tool reads that card.
I have audited ad accounts and analytics setups since 2012. Many of the most expensive mistakes I find are not technical at all; they are tagging mistakes. A campaign spends money, yet its traffic shows up as "Direct" or "Unassigned". As a result, nobody can say which ad produced the sales.
In this guide I explain UTM parameters using Google's official documentation. I also cover how they appear in GA4, how they interact with Google Ads auto-tagging, which naming rules keep reports clean, and the errors I see most often in real accounts.
What does a URL with UTM parameters look like?
A tagged link adds a query string to the normal address. That string starts with a question mark, each parameter follows a "name=value" pattern, and an ampersand separates one parameter from the next. For example, a newsletter link might look like this:
https://example.com/offer/?utm_source=newsletter&utm_medium=email&utm_campaign=black_friday
When someone clicks it, the page opens as usual. Nothing changes for the visitor. However, the GA4 tag reads the parameters in the address bar and credits the session to "newsletter / email" and to the "black_friday" campaign.
One detail matters here: UTM parameters do not change page content; they only change measurement. In other words, ten visitors arriving with ten different tags all see the same page. If you want to know how parameters affect search engines, read my guide to URL parameters and SEO. This article stays on the measurement and ad analysis side.
Which UTM parameters exist and what does each one mean?
The Google Analytics Help Center lists nine campaign parameters. Five are the classic fields most marketers know; the rest are newer detail fields. The table below summarises each one with a sample value.
| Parameter | What it describes | Example value |
|---|---|---|
| utm_source | The referrer that sent the traffic | google, instagram, newsletter |
| utm_medium | The marketing medium or channel type | cpc, email, social, display |
| utm_campaign | The campaign, product or promotion | black_friday |
| utm_id | The campaign ID | cmp_0425 |
| utm_term | The paid keyword | running_shoes |
| utm_content | Tells creatives apart within a campaign | video_a, banner_b |
| utm_source_platform | The platform directing the traffic | Search Ads 360 |
| utm_creative_format | The type of creative | video, native |
| utm_marketing_tactic | The targeting approach | remarketing, prospecting |
According to Google, utm_creative_format and utm_marketing_tactic do not appear in reports at the moment. Therefore I suggest you get the first seven fields right before you spend time on those two. You can check the full list on Google's campaign data help page.
Which UTM parameters are required?
Google says you should always use utm_source, utm_medium and utm_campaign whenever you add parameters to a URL. Technically a single parameter still reaches GA4; however, your reports stay half empty without all three.
Google also "strongly recommends" that you set every relevant field, especially utm_id and utm_source_platform. In practice, I prioritise them like this:
- On every link: utm_source, utm_medium, utm_campaign.
- If you plan to import campaign cost data: utm_id, because cost rows match on the campaign ID.
- If you test several creatives: utm_content.
- For search ads without auto-tagging: utm_term.
So never skip the required trio, and choose the rest based on the question you want to answer. For instance, if you need to know which of two Instagram Stories drove sales, you cannot answer that without utm_content. On the other hand, stuffing all nine parameters into every link creates clutter. The right level of detail is the level your team can maintain.
Where do UTM parameters show up in GA4 reports?
GA4 turns UTM values into its own dimensions. Google's documentation says you can view Session source/medium, Session medium, Session source and Session campaign in the Traffic acquisition report under Acquisition.
In practice, the first view I open is Session source/medium. There you see rows such as "instagram / social" or "newsletter / email". Then I add campaign as a secondary dimension, so I can compare different campaigns from the same source side by side.
- Traffic acquisition: source, medium and campaign at session level.
- User acquisition: the source that first brought each user to the site.
- Explorations: free combinations of campaign, content and term dimensions.
One point surprises many teams. Google notes that UTM parameters do not appear in the "Landing page + query string" and "Page path + query string" dimensions. So if you cannot find your tagged URL in a page report, do not panic. The data has not vanished; it simply lives in the campaign dimensions. If you want a refresher on how GA4 works, see my introduction to GA4.
How does utm_medium decide your channel groups?
In my view, utm_medium is the field that shapes ad analysis the most. When GA4 sorts traffic into default channel groups such as Paid Search, Paid Social or Email, it looks heavily at this value. A wrong medium puts a good campaign in the wrong channel.
Based on Google's channel group documentation, some of the rules work like this:
- Paid Search: the source is a search site and the medium matches a paid pattern such as cpc, ppc, retargeting or a value starting with "paid".
- Paid Social: the source is a social network and the medium matches the same paid pattern.
- Organic Social: the source is a social network, or the medium is a value such as "social" or "sm".
- Email: the source or medium is "email" or one of its spelling variants.
- Display: the medium is a value such as "display", "banner" or "interstitial".
The source value counts as well. A known network name like "instagram" or "facebook" lets GA4 recognise social traffic, while an invented label like "ig_story" does not.
Traffic that matches no rule lands in "Unassigned". For example, if you write "instagram_ads" as the medium, GA4 will not treat it as paid social. That is why the medium field is not a place for creativity. Check the full rules in the default channel group documentation.
How do Google Ads auto-tagging and UTM parameters work together?
Google Ads offers auto-tagging for its own ads. When it is on, Google appends a parameter called gclid to every ad click. Gclid stands for Google Click Identifier, and each click gets a unique value.
According to Google's help page, auto-tagging comes switched on by default for new accounts. Google also describes it as necessary to track conversions on all browsers. To check it, go to the Admin icon, then Account settings, then the Auto-tagging section.
So what happens when a click carries both UTM tags and a gclid? The Google Ads help page states that in GA4, auto-tagging takes priority over manual tagging because there is no override option. In other words, gclid wins for Google Ads traffic. You can read the details on the official auto-tagging page.
My rule is simple. In a GA4 property linked to Google Ads, I do not add UTM tags to Google Ads ads. I keep auto-tagging on and reserve UTM tags for Meta, TikTok, LinkedIn, email, SMS and print. That way the two systems never blur each other's data.
Do you still need UTM parameters in Google Ads?
Usually not. If Google Ads and GA4 are linked, campaign, ad group and keyword data already flow through gclid. Moreover, that data includes cost and click details that UTM tags cannot carry.
That said, there are cases where you still need them. First, a CRM or a non-Google analytics tool may not understand gclid. Second, some websites reject unknown URL parameters; Google itself warns that a small share of sites show an error page when auto-tagging is on.
In those cases, use the Final URL suffix field in Google Ads. Whatever you put there sits at the end of the landing page URL. Consequently, you can set rules at account or campaign level instead of editing each ad by hand.
Still, test before you go live whenever you mix gclid and UTM tags. Preview an ad, open the landing URL and check the GA4 realtime report to see which source the session receives. If you want your whole Google Ads setup reviewed, my Google Ads management page explains how my team and I work.
How do UTM parameters change your ad analysis?
Put simply, UTM tags connect spend to outcomes. Without them, the sales a campaign drives often end up credited to another channel or to no channel at all.
In real accounts I see four concrete effects:
- Channel accuracy: Meta ads show as Paid Social and never mix with organic posts.
- Creative comparison: utm_content lets you separate a video from a static image inside one campaign.
- Conversion credit: GA4 ties key events to the right source and campaign.
- Budget decisions: you see which channel has the higher ROAS from data, not from gut feeling.
Imagine an ad platform reporting a strong conversion count for a campaign, while the matching UTM row in GA4 shows far fewer. That gap is not a bug. Platforms use different attribution windows and models; I cover Meta's side in my article on Meta attribution settings. Here, UTM data gives you an independent second opinion.
For a quick check you can use the ROAS calculator. Keep in mind, though, that the revenue figure you enter is only as accurate as your tagging.
What naming convention should you use for UTM parameters?
Google states clearly that parameter values are case sensitive. So utm_source=google and utm_source=Google become two separate rows. That one detail can turn a report into a mess within a few months.
For that reason, I write down a naming convention in every account before any campaign starts. My core principles are:
- Always lowercase: instagram, email, cpc.
- One separator: underscores instead of spaces, and never a mix.
- No special characters: plain letters and digits avoid encoding problems.
- A fixed medium list: only values that match GA4's channel rules, such as cpc or paid_social.
- A fixed campaign pattern: for example goal_product_period.
Put the convention in a shared spreadsheet and make sure everyone who builds links uses it. When the agency, the in-house team and influencers all draw from the same list, reports stay consistent. Also, new team members learn the rules on day one instead of guessing.
How do you build a tagged link with a UTM builder?
You can type parameters by hand, but every hand-typed link invites a typo. That is why my team always uses a builder. The UTM builder on my site is a free tool I made for exactly this job.
The process takes a few steps:
- Enter the full landing page URL and confirm the page actually loads.
- Copy source, medium and campaign from your naming sheet.
- Add content and term if you need them.
- Copy the result, open it in a browser and check that it shows up in GA4 realtime.
- Log the final link in your sheet, so you always know which tag ran where.
For print, I suggest you turn the link into a QR code instead of printing a long URL. With the QR code generator you can encode the tagged address, then measure visits from flyers, posters or packaging. Otherwise that traffic will most likely appear as Direct.
How should you use UTM parameters on Meta and other ad platforms?
Meta, TikTok and LinkedIn do not pass a gclid style identifier into GA4. Therefore UTM tags are essential if you want to see their traffic correctly in GA4.
In Meta Ads Manager, each ad has its own URL parameters field. You paste the UTM string there and Meta appends it to the landing page URL. Meta also offers dynamic parameters that fill in the campaign or ad name automatically, so you do not need to tag hundreds of ads one by one.
My basic template looks like this:
- utm_source: facebook or instagram, a value that clearly names the platform.
- utm_medium: paid_social or cpc, a value that fits GA4's paid pattern.
- utm_campaign: the campaign name, following your convention.
- utm_content: the ad or creative name.
Tag organic posts and bio links too, but set the medium to "social". Then paid and organic performance never mix. For ideas on growing that traffic, see my guide on driving website traffic from social media.
What are the most common UTM mistakes I see?
The same mistakes keep appearing in the accounts I audit. The list below ranks them by how badly they damage reporting.
- Tagging internal links: a UTM tag on a homepage banner can overwrite the visitor's real source and credit the conversion to the wrong channel.
- Mixed capitalisation: "Instagram" and "instagram" become two sources.
- Invented medium values: anything outside GA4's rules inflates Unassigned.
- Needless UTM tags on Google Ads: with auto-tagging on, they only add confusion.
- Parameters lost in redirects: some redirects strip the query string, so the session looks like Direct.
- Untested short links: sharing a shortened URL without checking where it lands.
The first mistake is the most dangerous because it fails silently. To measure internal clicks, use GA4 events or link click tracking instead. Also, scan your redirect chains regularly with a tool such as the broken link checker.
How can UTM tagging reduce Unassigned and Direct traffic?
A growing Unassigned row in GA4 usually points to a tagging problem. A growing Direct row means the tag is missing or got lost on the way. Both hurt ad analysis in the same way: you cannot see what your money bought.
My diagnostic order looks like this:
- For Unassigned: open the Session source/medium report and list the medium values in that row. You will usually find values like "Instagram_Ads" that match no rule.
- For Direct: open recent campaign links one by one and check whether the UTM string survives in the address bar.
- For in-app browsers: test clicks from email and social apps on a real phone.
Once you find the cause, you cannot repair past data, because GA4 does not reclassify old sessions. So fix it early and write down the date. Then everyone who reads the report knows where the break sits. For guidance on which numbers to focus on, see how to read a digital marketing report.
How do UTM parameters connect to conversion tracking?
On their own, UTM tags only tell you where traffic came from. The real value appears when you combine that with conversions. If a purchase or form submission is a key event in GA4, reports show it alongside the source and campaign of the session.
That makes the setup order important. First, define your conversion events correctly. Next, write your tagging convention. Finally, launch the campaigns. If you reverse the order, you lose the first week of campaign data.
On the Google Ads side, enhanced conversions offer another way to strengthen measurement. They do not replace UTM tags; instead, they improve matching where cookies are limited. I explain the setup in my enhanced conversions guide.
If you are unsure which conversion should be your main success metric, clarify the goal first. For example, a service site usually cares about form submissions, while a shop cares about purchase value. My article on digital marketing KPIs can help you choose.
Do UTM parameters hurt SEO?
Not when you use them correctly. Tagged links usually live where search engines rarely crawl: in ads, emails and social posts. Consequently, they seldom touch search results directly.
Problems start when tagged URLs leak into the site itself. If a menu link keeps a UTM string, a search engine may crawl a parameter version of the same page. A canonical tag points those copies back to the main URL, yet crawling still wastes resources.
So I recommend three simple rules:
- Every page carries a self-referencing canonical tag.
- Internal links never contain UTM parameters.
- Your XML sitemap lists clean URLs only.
With those rules in place, UTM tags and SEO never clash. If you need help on the technical SEO side, my team and I run these checks as part of our SEO consulting work.
How do you plan UTM tags for a multichannel campaign?
Businesses that run several channels at once need more than individual links; they need a plan. The plan I use is a simple sheet with one row per link.
Its columns are date, owner, landing page, source, medium, campaign, content and final URL. Then, when a campaign ends, you can see at a glance which link ran where.
Consider a November sale running on four channels:
- Google Ads: no UTM tags, auto-tagging on.
- Meta ads: source facebook or instagram, medium paid_social, campaign november_sale.
- Newsletter: source newsletter, medium email, campaign november_sale.
- Influencer posts: source instagram, medium social, campaign november_sale, content creator_name.
Here the campaign name stays identical across channels. In other words, one campaign filter in GA4 shows every channel side by side. Meanwhile, because source and medium differ, you can still read each channel's contribution separately.
Where can UTM data mislead you?
UTM tags are powerful, but they do not show everything. Knowing their limits helps you read the data without overstating it.
The first limit is consent and cookies. If a user declines measurement, or the browser blocks it, the session may be missing even with a perfect tag. So read UTM numbers as a consistent estimate, not an exact count.
The second limit is the multi-touch journey. Someone sees your Instagram ad, then searches your brand on Google a week later and buys. In reports, that sale often goes to search. As a result, UTM data may understate the value of the first touch.
That is why I never judge a campaign on the UTM report alone. The ad platform's report, GA4 and CRM records sit side by side. If all three point the same way, I decide with confidence; if they diverge, I check the measurement setup first.
The third limit is dark social. Links copied into messaging apps such as WhatsApp often travel without their parameters. In short, treat UTM data as a consistent decision aid rather than the single source of truth.
How do you keep UTM tagging consistent across teams and agencies?
Even the best naming convention falls apart within months if nobody writes it down. This happens fastest when several agencies or freelance creators each tag links their own way.
These are the habits that keep things in order:
- One source sheet: every approved source and medium value lives in one place.
- A monthly check: once a month I list new source and medium values in GA4 and fix anything off convention.
- Onboarding: when a new agency or influencer joins, we share the tagging rules on day one.
- One tool: everybody builds links with the same builder.
This small discipline keeps reports comparable over the years. Moreover, end of campaign reviews rely on data that speaks one language instead of opinions about which channel worked.
How do you test a tagged link before launch?
Five minutes of testing before launch can prevent weeks of lost data. My team and I use the same checklist for every new campaign.
- Open the URL: load it in a private window and confirm the page works.
- Check the parameters: after the page loads, make sure the UTM string is still in the address bar.
- Watch realtime: confirm the session appears in GA4 realtime with the right source and medium.
- Try mobile: click the link once inside the in-app browsers of social apps.
- Test a conversion: if you can, submit a test form and confirm the key event lands on the same campaign.
If one of these steps fails, the cause usually sits in redirect rules, the cookie banner or tag manager settings. Also, if you use a link shortener, open its destination separately; some shorteners encode the query string in unexpected ways. In short, never skip the test, since the costliest errors are the ones you discover after a campaign ends.
What is my final take on UTM parameters?
UTM parameters are the cheapest and most neglected part of ad analysis. Setting them up takes minutes, yet a poor setup can drive wrong budget decisions for months.
To sum up, follow this order. Keep auto-tagging on for Google Ads. Use the required trio on every other external channel. Pick medium values that match GA4's channel rules. Put your naming convention in writing, and never place UTM tags on internal links.
Also, keep the same convention when a campaign ends. That way you can compare year on year and spot seasonal effects.
With these steps in place, your reports will tell you which channel really makes money. If you would like a second pair of eyes on your campaign measurement, my team and I can review both your tagging and your conversion setup.




