You send a newsletter, post the same offer on social media, and run a small paid campaign. Three days later, Google Analytics shows traffic, but you can't confidently tell which link brought the visitors in.
UTM parameters solve a very specific part of that problem. They label the links you control so your analytics tool has better information about where a visit came from. They're not glamorous, but neither is guessing where your leads came from.

Here's a practical guide to using UTMs without ending up with seventeen names for the same channel.
What are UTM parameters?
UTM parameters are pieces of text added to the end of a destination URL. A link might look like https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=fall_launch.
The webpage destination is still /pricing. The extra parameters are labels for analytics. When someone clicks the link, a correctly configured Google Analytics 4 property can use those labels in acquisition reports.
Google documents this in its campaign URL builder guide. The exact labels are your responsibility, so a naming convention matters.
The three parameters to get right
utm_source identifies a specific traffic source, such as newsletter or partner_name. utm_medium describes the channel or medium, such as email or cpc. utm_campaign labels the promotion, such as fall_launch.
Google also recognizes useful optional fields, including utm_content for differentiating creative or placements and utm_term for additional term information where applicable.
For a small team, consistent source, medium, and campaign values are the highest priority. Add other fields only when someone will actually use them.
Build a clean URL step by step
Start with the final landing-page URL and make sure it loads. Add a question mark before the first parameter. Put an ampersand between each additional key-value pair. Use URL encoding when a value contains spaces or special characters.
Consider an email campaign sending readers to an offer page: https://example.com/offer?utm_source=customer_newsletter&utm_medium=email&utm_campaign=october_offer.
Check the final URL in a browser before sending it. A campaign link that points to a 404 page or a different destination creates a bigger problem than messy reporting.
Use one naming system for the whole team
Choose lowercase names, a consistent word separator, and one agreed vocabulary for channels. email, Email, and EMAIL can fragment reports because campaign parameters are case sensitive.
Keep a shared campaign sheet with the destination URL, source, medium, campaign name, owner, and launch date. Copy approved values rather than typing new ones each time.
Don't stuff personally identifying information such as a customer's name or email address into UTM values. Links get copied, logged, and shared.
Where to see UTMs in GA4
Once GA4 is installed and collecting data, open Reports → Acquisition → Traffic acquisition. Look for session-scoped source/medium and campaign dimensions. You may need to change the primary dimension or add a secondary dimension.
Give reporting time to populate, and test with a real visit rather than assuming the data pipeline works. Realtime and DebugView can help with implementation checks, but historical reports may not fill instantly.
Be precise about scope: session campaign and first-user acquisition are different ways of attributing traffic.
Common UTM mistakes
First, don't tag ordinary links between pages on your own website. UTMs are for campaign entry points; internal tagging can distort acquisition attribution.
Second, avoid renaming a campaign midway through it. Third, don't mix paid and unpaid campaigns under the same medium just because both ran on the same platform.
Fourth, remember that click counts in an email platform or ad platform won't necessarily match GA4 sessions. Consent behavior, blockers, redirects, timeouts, and attribution rules can contribute to differences.
If you are measuring advertising returns rather than just traffic sources, our ROAS formula and break-even guide explains why tagged visits alone cannot tell you whether ad spending paid off.
What UTMs cannot do
A tagged link cannot prove that a campaign caused a sale. It cannot restore data lost to tracking restrictions, and it does not replace correctly configured GA4 events or key events.
Think of UTMs as useful labels on the entrance, not a complete map of every step the customer took. Combine them with landing-page engagement and real customer outcomes.
If you are still setting up reporting, our Marketing Analytics guide covers the larger measurement picture.
A campaign naming system that survives a second employee
UTM tracking tends to fail in ordinary handoffs: one person writes `Email`, another uses `newsletter`, and a third names the same campaign `OctoberSale`. The problem is not the URL syntax; it is that no one can reproduce the naming decision. Here is a small hypothetical naming register Clear Metric Lab would use for a campaign called `autumn_offer`.
Keep the campaign name consistent across channels and use a distinct source and medium for each distribution route. The table below is an example vocabulary, not a claim that GA4 automatically groups every custom label exactly as you expect.
| Distribution | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Owned customer email | customer_newsletter | autumn_offer | |
| Partner email | partner_a | autumn_offer | |
| Organic Instagram link | social | autumn_offer | |
| Paid search | cpc | autumn_offer |
A partner newsletter is not your own newsletter even if both use the email medium. Distinguishing the source allows you to compare them later. Likewise, paid search should not be labeled `social` or `email` simply because the campaign has the same promotion.
Copyable pattern: `https://example.com/offer?utm_source=customer_newsletter&utm_medium=email&utm_campaign=autumn_offer`. Test the final URL, including redirects, before sending. Never put a contact's email, phone number, customer ID, or other personal information in the UTM values.
Now imagine your email service reports 80 link clicks while GA4 shows 64 sessions with that campaign label. The numbers should trigger an investigation, not an assumption that one vendor is lying. A click does not always create a counted GA4 session; tracking consent, blockers, redirects, and session definitions can affect counts. Keep a record of click count and GA4 sessions separately.
Before interpreting campaign performance, verify the tag on a test visit and confirm its source and medium in the intended GA4 report. Preserve the original spreadsheet of links used in the actual send. Those two steps are more valuable than inventing a giant list of UTM parameters your team will never maintain.
Your campaign handoff card
- Campaign owner, landing URL, and launch date are recorded.
- Every distribution channel uses one approved source/medium pair.
- The destination works on a phone, and a test session appears where expected.
- The team knows campaign-labeled sessions are not proof of incremental sales.
This register is a proposed workflow built by Clear Metric Lab for illustration. It does not contain actual campaign outcomes.
Quick pre-send checklist
Does the destination open? Are the source, medium, and campaign values spelled consistently? Do your labels avoid personal data? Can you find the visit in the right GA4 report? Do you have an outcome to measure after the click?
If yes, you've done the important part. Keep your naming sheet nearby, because clean campaign measurement is really a habit.
Example URLs use example.com and are not connected to a real campaign.
Leave a Reply