BRUTAL MARKETING

HOW TO USE UTM TAGS IN YOUR DIGITAL CAMPAIGN URLS

june 2025
BRUTAL MARKETING

How to Use UTM Parameters in Your Digital Campaign URLs

june 2025

UTM Parameters: How to Set Up Ad Tracking and Carry the Data Through to the Deal in Your CRM

Ask your marketer which ad channel brought you money last month. Not clicks, not leads — money that reached the bank account. Nine times out of ten you'll get a pause and the phrase "let me check."

That pause is expensive. Budget gets allocated on gut feeling instead of numbers: the channel that floods you with cheap leads that never close keeps getting fed, while the one that brings in large clients is the first to get cut during a squeeze. The root cause is almost always the same — the data breaks at the click and never reaches the deal.

UTM parameters are the first brick in that chain. On their own they don't work magic, but without them you can't tell Facebook traffic from newsletter traffic, or paid search from organic. Below is how to build your tags so reports don't turn into mush, and how to stretch the thread from the ad all the way to revenue — instead of to a "(not set)" line in Google Analytics.

What UTM parameters are and why analytics is half-blind without them

A UTM parameter is a tail of values you add to a link after the question mark. The acronym stands for Urchin Tracking Module — a leftover from Urchin Software, the company Google bought in 2005 when it built its analytics platform.

Here's what it looks like:
https://site.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=black_friday

Everything after the ? is housekeeping data for your analytics system. The site works the same for a visitor with or without tags. Your reports, however, look completely different without them.

The problem is that without UTMs, Google Analytics is forced to guess the source of a visit. It leans on referrers, on the labels ad platforms send, and on fragile redirects. The result is predictable: a pile of traffic falls into "Unassigned" and "direct / none," and your channel reports stop matching reality.

The reason is that every platform labels traffic its own way. Facebook names the source one way, your email service another, and some visits lose their referrer along the road. Analytics throws it all into one pot and serves up an averaged picture you can't lean on when deciding where to put budget.

The fix is simple: you label each link yourself. The tag tells the system plainly — "this is a paid click from Facebook on the Black Friday campaign." The guessing stops, and instead of "mystery traffic" you see concrete rows in your report.

In our experience at Brutal Marketing, missing tags are the single most common reason a client shows up saying "I don't understand what's working in my ads." We fix the tagging first; only then does it make sense to talk about bid optimization or how end-to-end analytics fits into a digital sales funnel.
UTM Parameters: How to Set Up Ad Tracking and Carry the Data Through to the Deal in Your CRM – Brutal Marketing

The five UTM parameters: what goes in each one

There are five parameters. Three are required, two are optional. The parameter names are fixed; the values are yours to set. Each "parameter=value" pair is separated by an &.

utm_source, utm_medium, utm_campaign — the required three

This trio answers three questions: where the person came from, by what means, and as part of which campaign. Without it, your tagging is pointless.

utm_source — the specific traffic source. The platform the click came from: facebookgoogleinstagramemailtelegram. Write the platform name, not an abstraction like social
Example: utm_source=facebook

utm_medium — the traffic type, one level deeper than the source. If the source is Facebook, the medium can be paid (cpc) or organic (social). This parameter answers "free or paid, and in what format." 
Example: utm_medium=cpc

utm_campaign — the name of a specific promotion or campaign. A Black Friday sale, a product launch, a seasonal discount. The same utm_campaign stays unchanged across every channel of one promotion, even when the sources differ.
Example: utm_campaign=black_friday

The logic shows in an example. Say you're running Black Friday ads on Facebook, an email blast, and contextual ads in Google. All three channels share one utm_campaign=black_friday, but different utm_source and utm_medium. In your report you'll see three rows inside one campaign and compare which channel performed best.

utm_content and utm_term — when you actually need them

These two aren't required, and adding them to every link without a reason is busywork. But in two situations they save a pile of time.

utm_content distinguishes variants inside one channel. If two ads lead to the same page — say, a 15-second and a 30-second video — this parameter shows which creative worked. Without it both clicks merge into one source, and your test turns into guesswork. 
Example: utm_content=video_15s and utm_content=video_30s

If you regularly test creatives and headlines, this is the discipline that makes the results readable — the same approach we apply to A/B testing across channels.

utm_term is for paid search — it records the keyword that triggered the click. Launched an ad on the query "black friday deals"? You write it into utm_term
Example: utm_term=black_friday_deals

utm_id and the new GA4 parameters — what the old guides leave out

Most UTM articles are stuck on the five classic parameters. The move to Google Analytics 4 brought new ones, and one of them is critical.

utm_id — the campaign identifier. It's the key GA4 uses to link imported ad-cost data to sessions on your site. Without utm_id you can't pull click costs from Meta, TikTok, or LinkedIn into analytics and calculate the real return on your ad spend. Most teams skip this parameter — a mistake.

There's also utm_source_platformutm_creative_format, and utm_marketing_tactic. The utm_creative_format and utm_marketing_tactic parameters aren't reported in Google Analytics properties yet — they're listed in the documentation but don't show up in reports. But GA4 already recognizes utm_source_platform: it identifies the platform managing your budget and targeting (for example, Search Ads 360).

The practical takeaway: always set the source / medium / campaign trio, add utm_id to paid campaigns, and use the rest as needed. You don't need ten parameters on every link.

How to build a UTM link without errors

Building a tag by hand, typing parameters straight into the address bar, is a path to typos. There are two solid ways to do it cleanly.

Google Campaign URL Builder

A free, official Google tool. You paste the landing page address, fill in the source, medium, and campaign fields, and the tool assembles a ready link at the bottom of the form. As you fill it in, the URL builds in front of you — handy for a quick check.

The steps:
  1. Open Campaign URL Builder.
  2. Paste the URL of the page you're driving traffic to.
  3. Fill in utm_source, utm_medium, utm_campaign, and the optional fields if needed.
  4. Copy the finished link from the bottom.
  5. Drop it into your ad, post, or email.

For a Facebook Black Friday ad the result looks like this:
Before: https://site.com After: https://site.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=black_friday

For a Google search ad targeting a keyword, utm_term gets added:
https://site.com/?utm_source=google&utm_medium=cpc&utm_campaign=black_friday&utm_term=black_friday_deals

A generator spreadsheet for the team

When there are many tags and more than one person builds them, the URL builder stops being enough — everyone starts writing their own way. Here a shared Google Sheet with a formula that stitches the parameters into a finished link saves the day.

The principle: the sheet has a column for each parameter and a column with the assembled URL. A person fills in the fields from dropdown lists, and the formula builds the link. The lists make it impossible to invent Facebook where everyone else uses facebook.

The real value of the sheet isn't automation — it's a single source of truth. All tags live in one place, visible to the whole team, and nobody spawns their own variants with typos and mixed case. More on that in the next section, because this is exactly where most reports break.

Third-party builders like the ones inside HubSpot or ad accounts work too, but they have a catch: different platforms generate tags differently. The result in Google Analytics is one campaign splitting into several rows. If you must mix tools, check the links by hand before launch.
UTM Parameters: How to Set Up Ad Tracking and Carry the Data Through to the Deal in Your CRM​ – Brutal Marketing

A single naming standard — where 80% of reports fall apart

UTM parameters are case-sensitive. To Google Analytics, Facebook and facebook are two different sources. It sounds like a trifle, but that trifle splits one campaign across two rows and zeroes out the meaning of the report.

Picture this: one person wrote utm_campaign=Black_Friday, another black_friday, a third BlackFriday. Three campaigns appear in the report instead of one. You'll count the promotion's budget correctly, but the result fragments into pieces and comparing channels becomes impossible.

The cause isn't people — it's the absence of rules. With no standard, everyone writes whatever feels convenient in the moment. Two months later analytics holds hundreds of unique values, half of them duplicates of the same thing.

The fix is a written naming convention the whole team knows. The minimum set of rules we roll out for clients:
  • lowercase only, always;
  • separate words with an underscore or a hyphen, but never both — pick one;
  • no spaces and no non-Latin characters in values;
  • a fixed list of allowed utm_source and utm_medium values;
  • dates and versions in one format (2026_01, not "January" in one place and jan in another).

Here's what a basic standard can look like as a table:
The standard shouldn't live in the marketer's head. It sits in the same shared sheet as the link generator and gets updated when new channels appear.

That's five minutes up front versus weeks of digging through junk reports later.
UTM Parameters: How to Set Up Ad Tracking and Carry the Data Through to the Deal in Your CRM​ – Brutal Marketing
You can also see how much traffic your campaigns are receiving by going to Acquisition > Overview > All Traffic > Source/Medium

Where to find UTMs in Google Analytics 4

Old guides send you to "Traffic sources → Campaigns" — that navigation is gone. Universal Analytics was retired, and the path in GA4 is different.

To see your tag data, open Reports → Acquisition → Traffic acquisition in the left panel. The Traffic acquisition report shows where your site and app visitors come from — both new and returning — unlike the user acquisition report, which counts only new users.

In the table, switch the primary dimension to "Session source / medium" or "Session campaign" — those are your utm_source / utm_medium and utm_campaign. To break it down by ad, choose "Session manual ad content" — that's where utm_content lands.

One thing that rattles newcomers: GA4 processes data in batches, not instantly. Clicked your own link and don't see it in the report? That's normal — wait up to a day. For instant verification, use DebugView.

And a warning about money right away. If you open each ad platform separately and add up the revenue each one claims, the figure comes out inflated: different channels credit themselves with the same sale. At Brutal Marketing we never report on each ad platform's revenue precisely because of this double counting. We count revenue through one system — it gives a more conservative but honest number.

The main mistake — letting the data break at the click

Here's where the whole point of tagging begins. UTM parameters on their own carry data only as far as Google Analytics — to the click, the session, the lead. Past that, for most businesses, the trail goes cold.

But a click isn't money. Between the ad click and a paid invoice sits the entire sales department: the rep who called back, the script they followed, the funnel stages. If the lead's source doesn't reach that part, you're optimizing ads by clicks and leads — not by revenue. Those are different things.

The reason for the break is that the tag lives in analytics while the deal lives in the CRM, and the two systems don't talk to each other. The marketer looks at Google Analytics and celebrates cheap leads. The sales head looks at the CRM and sees that half those leads aren't a fit. Each is right within their own numbers, and there's no shared picture.

The fix is to stretch the tag past the click. The source, medium, and campaign should land in the deal card in your CRM the moment the lead is created. Then you open the funnel and see not "150 leads from Facebook" but "150 leads from Facebook, 28 deals, $41,000 in revenue, $1,470 average deal." Now you can cut and scale budget on those numbers.

That connection is what end-to-end analytics means: the path from the ad click to the money in one picture. How the trio works together is something we broke down in detail in our piece on how CRM, PPC, and end-to-end analytics combine for business growth. The part where the source moves from first contact to a closed deal is covered in our guide to leads, lead generation, and lead management.

For an owner the takeaway is simple: UTMs without a CRM are half a system. You see where people came from but not who brought money. For a sales head the takeaway matters just as much: when the source sits in the deal card, the channel report builds itself — no exports, no manual stitching of spreadsheets. How a sales team actually works with that data is shown in our practical guide to CRM analytics.

Common UTM mistakes and how to avoid them

Most tagging problems aren't complex technical failures — they're the same recurring slip-ups. Here are the ones we see most often, and what to do about each.

Inconsistent case and wording in parameters
Black Friday and black_friday are two campaigns to analytics. Fix: a single naming standard and closed value lists, as covered above.

Building one campaign across different platforms
Each tool generates tags its own way, and one promotion splits into several rows. Fix: build every link with one tool, and check by hand if you have to mix.

Tagging only some campaigns
Tag 20% of your ads and you'll see 20% of the traffic in the report. UTMs work on an all-or-nothing principle: tag every paid source, or the picture is incomplete and there's nothing to compare against.

Personal data and unfortunate wording in parameters
Tags are visible in the address bar to any visitor. If an ad targets an older audience, don't write utm_content=old_people — the client will see it. Keep wording neutral.

No utm_id on paid campaigns
Without it you can't import costs into GA4 or calculate return. Assign an identifier to every paid campaign.

The tag breaks at the click and never reaches the CRM
The most expensive mistake on the list — the whole previous section is about it. It's solved by configuring source pass-through into the deal card.
UTM Parameters: How to Set Up Ad Tracking and Carry the Data Through to the Deal in Your CRM​ – Brutal Marketing

Can you fix UTM mistakes after launch?

The short answer is no, not retroactively. Once a campaign has run with broken tags, you can't rewrite history in Google Analytics: historical data isn't editable.

The reason lies in the nature of analytics data — it records what happened, not what you wish you'd seen. A session with a faulty tag is already recorded with that tag, permanently.

The good news is that current and future data are easy to fix: change the tags in the active ads, and new traffic flows in correctly. The best news is that with proper campaign planning and a single naming standard, tag mistakes simply don't come up. It's cheaper to build the standard once than to untangle ruined reports later.

Checklist: UTMs that won't break your report

A short list to run through before launching any campaign:
  1. The utm_source / utm_medium / utm_campaign trio is on every link.
  2. Paid campaigns have utm_id added for cost import.
  3. All values are lowercase, following a single standard.
  4. Sources and mediums come from a closed list, not typed on the fly.
  5. Every link is built with one tool and stored in a shared sheet.
  6. No spaces, no non-Latin characters, no wording you'd be embarrassed to show a client.
  7. The lead's source is passed to the deal card in the CRM, not lost in analytics.
  8. After launch, tags are verified in GA4 under "Traffic acquisition."

Close all eight and your ad reports will reflect reality, and your budget decisions will rest on revenue rather than gut feeling. On how to measure that revenue and return, see our guide to calculating conversion rate and improving ROI.

Frequently Asked Questions

What are UTM parameters and why do you need them?

They're values added to a page's URL after the question mark. They tell your analytics system where a visitor came from: which platform, what traffic type, and as part of which campaign. Without them the traffic source has to be guessed, and part of your visits get lost in the "not set" category.

Which UTM parameters are required?

Three: utm_source (the source — google, facebook), utm_medium (the traffic type — cpc, email), and utm_campaign (the campaign name). The utm_content and utm_term parameters are optional. In GA4 it's worth adding utm_id to paid campaigns — without it you can't import cost data.

How do you build a UTM link correctly?

The simplest way is the free Google Campaign URL Builder: paste the page address, fill in source, medium, and campaign name, and the tool assembles a ready link. When there are many tags and a team builds them, use a shared generator spreadsheet with a single naming convention.

Are UTM parameters case-sensitive?

Yes. Google Analytics treats Facebook and facebook as two different sources. One slip in case splits a campaign across several report rows. Agree on a single spelling for the whole team and stick to it without exceptions.

Where do you view UTM results in Google Analytics 4?

Open "Reports → Acquisition → Traffic acquisition" and switch the dimension to "Session source / medium" or "Session campaign." The old "Traffic sources → Campaigns" path from Universal Analytics no longer exists.

Can you fix a UTM mistake after the campaign launches?

Historical data in analytics can't be fixed — what's recorded is recorded. But you can correct the tags in active ads, and new traffic will flow in with proper tagging. With a single naming standard, these mistakes usually don't happen.

Are UTM parameters visible to site visitors?

Yes, they show up in the browser's address bar. So don't write anything in the parameters that you wouldn't want a client to see — audience segment names, for example. Keep the wording neutral and technical.

How do UTM parameters help the sales team, not just marketing?

When the source from the tag reaches the deal card in the CRM, the sales head sees not just leads but each channel's conversion into real money. That makes it possible to judge lead quality by source and to stop wasting reps' time on traffic that never closes.

Set up the UTM–ads–CRM connection to see revenue by channel

We build end-to-end analytics where the lead's source reaches the deal and the money, instead of dying at the click. You get a report that shows which channel brings revenue, not just leads.

Start by setting up end-to-end analytics, or talk to us about CRM implementation so your ad data connects to real sales.
google local ads, local advertising google, performance max for store goals, google maps advertising, google local campaigns, local business advertising | Brutal Marketing blog | Google Local Ads in 2026: How to Launch Local Advertising and Drive Customers In-Store
By submitting an application, you agree to the privacy policy
Join our community at Telegram ✈️