UTM parameters are tags you add to the end of a URL (utm_source, utm_medium, utm_campaign and, optionally, utm_content and utm_term) so Google Analytics 4 knows which source, medium and campaign each visit came from. Use them on every link you publish outside your website, with a consistent, all-lowercase naming convention, and never on internal links.
- utm_source says who sent the visit; utm_medium, what type of traffic it is; utm_campaign, which campaign it belongs to.
- GA4 is case-sensitive: "Facebook" and "facebook" are different sources.
- The medium determines the channel in GA4; use values like cpc, paid_social, email or social.
- WhatsApp, PDFs, QR codes and print show up as Direct if you don't tag them.
- Never put UTMs on internal links within your own site.
What UTMs are and why you need them
UTM stands for Urchin Tracking Module, the tool Google bought and turned into Analytics. Today they're simply parameters that go after the question mark in a URL. For example, a link to your store from an Instagram ad might look like this:
yoursite.com/promo?utm_source=instagram&utm_medium=paid_social&utm_campaign=back-to-school-2026&utm_content=video-backpacks
Your page looks exactly the same; the difference is that Google Analytics 4 reads those tags and records where the visit came from. Without them, GA4 guesses based on the browser's "referrer," which many apps don't send. That's why clicks from WhatsApp, email apps, PDFs and QR codes end up as Direct traffic and you have no idea which campaign brought them in.
If you invest in ads, you can't calculate your return properly without UTMs; we explain why in ROAS, ROI and CPA explained.
The parameters, one by one
| Parameter | What it answers | Examples | Required? |
|---|---|---|---|
| utm_source | Who is sending the visit? | facebook, instagram, google, newsletter, whatsapp, flyer | Yes |
| utm_medium | What type of traffic is it? | cpc, paid_social, social, email, qr, referral, sms | Yes |
| utm_campaign | Which campaign or promotion? | buen-fin-2026, lerdo-branch-launch | Yes |
| utm_content | Which exact ad or link? | video-testimonial, header-button, blue-banner | Optional |
| utm_term | Which keyword or audience? | dentist-torreon, retargeting-audience | Optional |
| utm_id | Campaign ID for importing cost data | c2026-014 | Optional |
GA4 also recognizes utm_source_platform, utm_creative_format and utm_marketing_tactic, which are useful for large teams. For a small business, the first five are enough.
How GA4 assigns the channel (and why the medium matters)
GA4 groups traffic into default channels: Paid Search, Paid Social, Organic Social, Email, Referral, Direct and others. To decide the channel, it looks mainly at utm_medium and at whether the source is a known social network or search engine.
- A medium like cpc, ppc or one starting with paid (for example, paid_social), combined with a social source, is classified as Paid Social.
- The medium email lands in Email.
- Mediums like social with a social source land in Organic Social.
- A made-up medium, like "fb-ad" or "promo," can end up as Unassigned.
The takeaway: name your campaigns however you like, but use standard values for the medium. If in doubt, the free UTM builder suggests GA4-compatible mediums and builds the URL without typos.
A naming convention that won't fall apart
The mistake that damages reports the most isn't forgetting UTMs; it's writing them differently every time. "Facebook," "facebook," "fb" and "FB" are four different sources to GA4. Before you start tagging, write your convention down in a shared document:
- Everything lowercase, with no accents or spaces. Use hyphens: buen-fin-2026.
- A closed list of sources and mediums. For example: facebook, instagram, google, tiktok, whatsapp, newsletter, flyer; and cpc, paid_social, social, email, qr, sms.
- Campaigns with a date or season: hot-sale-2026, not "promo."
- A descriptive utm_content: the creative's format and angle (video-price, carousel-reviews).
- A log sheet with every URL generated, who created it and where it was published.
A nutrition practice in the Las Quintas neighborhood of Torreón had its Instagram traffic split across six sources because the name was spelled differently each time. Standardizing the convention took one afternoon, and since then its monthly report fits in a single table.
UTMs in ads: Meta, Google and TikTok
Google Ads
Google Ads has auto-tagging with the gclid parameter. If you link your Ads account to GA4, that's the recommended option and you don't need manual UTMs; if you don't link them or you use a different analytics tool, add UTMs with the account's tracking template.
Meta Ads
In each ad, the URL parameters field accepts dynamic parameters like {{campaign.name}}, {{adset.name}}, {{ad.name}} and {{site_source_name}}, which Meta fills in automatically. That way you don't write a link for every ad. Watch out: if your campaign names have capital letters or spaces, that's exactly what will reach GA4, so name your campaigns using the same convention. More details in our Meta Ads guide for beginners.
TikTok and other platforms
TikTok Ads also supports URL parameters in the ad. For organic social posts, use a tagged link in your bio or in the story link.
WhatsApp, QR codes, print and email: the traffic that gets lost
This is where UTMs pay off the most in Mexico, because a large share of promotion runs through channels that leave no trace:
- WhatsApp: broadcast lists, Status updates and messages to customers. Tag with utm_source=whatsapp and a medium like referral or whichever you define, and shorten it with the link shortener so it doesn't look suspicious.
- QR codes on flyers, menus, packaging and vinyl banners: generate the URL with UTMs, then create the code with the QR code generator. Use a different utm_content for each piece (fair-flyer, downtown-branch-banner) so you can compare which one works.
- Email marketing: most platforms add UTMs automatically; check that the medium is email. Read our guide to email marketing for small businesses.
- Radio, billboards and sponsorships: a short, easy-to-remember URL that redirects to a UTM-tagged URL lets you measure something that used to be a total blind spot.
Copy-ready examples: a bakery in Gómez Palacio
Picture a bakery in Gómez Palacio promoting seasonal cakes for Day of the Dead across several channels. With a clear convention, every link looks like this:
| Where it's published | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|
| Instagram ad (video) | paid_social | day-of-the-dead-2026 | video-pan-de-muerto | |
| Facebook ad (carousel) | paid_social | day-of-the-dead-2026 | carousel-flavors | |
| Organic post, link in bio | social | day-of-the-dead-2026 | link-bio | |
| WhatsApp broadcast list | referral | day-of-the-dead-2026 | customer-broadcast | |
| Email newsletter | newsletter | day-of-the-dead-2026 | main-button | |
| QR code on the cake box | packaging | qr | day-of-the-dead-2026 | medium-box |
At the end of the season, the bakery opens GA4, filters by the day-of-the-dead-2026 campaign and sees in one table how many orders came from the video, how many from the carousel, how many from the WhatsApp list and how many from people who scanned the QR code on the box. With that information it decides where to invest next year: maybe it discovers the packaging QR code drives repeat purchases nobody was tracking, or that the carousel generated lots of visits but few orders.
Notice that the campaign name is the same across every channel. That lets you see the season's total and, at the same time, break it down by source, medium and content. If you change the campaign name for each channel, you lose the big picture.
Where to see the results in GA4
In GA4, go to Reports, Acquisition and then Traffic acquisition. Change the primary dimension to "Session source / medium" or "Session campaign." To see which campaign drove purchases or leads, make sure your key events are marked (purchase, generate_lead, WhatsApp click) and add the corresponding column.
For finer analysis, use Explore with a free-form table: rows by campaign and content, with sessions, key events and revenue as metrics. That way you can compare which creative or which flyer performed best.
A practical tip: build a fixed monthly report, always with the same columns (campaign, source / medium, sessions, key events, revenue or leads), and save it. After a few months you'll have a historical series that tells you which seasons, channels and messages perform best for your business, something no ad platform gives you on its own. If your team prefers a visual dashboard, Looker Studio connects to GA4 at no extra cost and can display that same table with date and campaign filters.
If you also want to measure visits coming from ChatGPT and other AI assistants, check out our guide to tracking ChatGPT traffic in GA4.
Common mistakes and how to avoid them
- UTMs on internal links (menus, banners on your own site): they overwrite the original source and break attribution. Use events to track internal clicks.
- Mixing upper and lower case: it quietly ruins your reports.
- Tagging Google Ads links by hand while auto-tagging is on, with values that contradict each other.
- Breaking the URL: if your page already has a "?", the UTMs go after "&", not after another "?".
- Personal data in the URL: never put email addresses or phone numbers in parameters; besides being risky, it violates Google Analytics policies.
- Not checking that redirects keep the parameters: some platforms and link shorteners strip them. Click a test link and confirm it in the Realtime report.
If you'd like us to set up your analytics, key events and UTM convention properly, our digital marketing team does it as part of any campaign.





