Bengaluru and Erode, India — working with clients in other time zones

Analytics

How to use UTM parameters without wrecking your reports

Simple naming rules, a shared sheet everyone builds links from, and the places where UTM tags do more harm than good.

A campaign performance dashboard

Open the traffic acquisition report in GA4 and look at session source and medium. If facebook / social, Facebook / Social, fb / post and FB-ads / paid all appear as separate rows, you have the usual UTM problem. Everyone who shared a link invented their own labels. The data exists, but it is split across rows nobody can add up with confidence, and some of it has slipped into Unassigned.

What each parameter records

UTM parameters are labels added to the end of a URL. When someone clicks the link, GA4 reads the labels and records where the visit came from. Three of them do most of the work and belong on every tagged link.

  • utm_source names the specific place the link appeared, such as newsletter, linkedin or expo-catalogue.
  • utm_medium names the type of channel, such as email, paid_social or print.
  • utm_campaign names the piece of work the link belongs to, such as 2026-09_valve-range-launch.

Two more are optional. utm_content tells versions apart within one campaign, such as the header button and the footer link in the same email. utm_term was designed for paid search keywords and is seldom needed now, because Google Ads auto-tagging already passes keyword detail.

Naming rules that stop the sprawl

Two facts about GA4 shape the rules. It treats values as case-sensitive, so Email and email are counted as different mediums. And it sorts visits into default channel groups by matching source and medium against fixed definitions, so a medium it does not recognise lands in Unassigned.

  • Write every value in lowercase, without exception.
  • Separate words with hyphens or underscores, never spaces. Spaces become %20 and often break when a link is pasted into a message or a PDF.
  • Use medium values the default channel groups already recognise: email for email, cpc for paid search, paid_social for paid social ads and social for unpaid posts. Check Google's current channel group definitions before you finalise the list.
  • Where no default fits, as with print, pick one value, record it, and create a custom channel group in GA4 so those visits get their own row.
  • Start campaign names with the year and month, such as 2026-09, so they sort by date and old campaigns are easy to archive.
  • Never put personal data in a UTM value: no email addresses, phone numbers or names. Google's Analytics policies prohibit it, and it sits badly with data protection law such as India's DPDP Act and GDPR.

A shared Google Sheet works for most small teams, because it puts the rules inside the tool people use to make links.

Rules written in a document get forgotten; rules built into the tool people use every day get followed.

Give it these columns: date, owner, destination URL, source, medium, campaign, content, final URL, where used and notes. Turn source and medium into dropdowns with data validation, so nobody can type a new variant. Build the final URL with a formula that joins the parts, converts them to lowercase and swaps spaces for hyphens. If the destination URL already contains a question mark, the formula must join the tags with an ampersand instead, or the link breaks.

Consider an engineering components exporter that sends a monthly newsletter to distributors and prints a QR code in its expo catalogue. The newsletter link uses source newsletter, medium email and campaign 2026-09_valve-range-launch. The QR code uses source expo-catalogue, medium print and the same campaign. Months later, the team can see which route sent more distributors to the new product pages, and nobody has to remember what fb-2 meant.

Lock the dropdown lists and give one person the job of adding a new source when a genuinely new channel appears. That person also decides what a new value should be called, so two people never add the same channel under different names.

Where UTM parameters do more harm than good

Tagging everything creates its own mess. Leave tags off in these places.

  • Links between pages of your own site. A tag on an internal banner can overwrite the visitor's real source, so an enquiry that began with an organic search is credited to your own homepage.
  • Google Ads with auto-tagging switched on. The click identifier already brings campaign, ad group and keyword detail into a linked GA4 property, and manual tags on top give you two versions of the same click.
  • Canonical URLs, sitemaps and navigation menus. Tagged versions of a page can be crawled and treated as duplicates.
  • Links other sites publish about you on their own initiative. Referral reporting already captures these.
  • Printed web addresses people have to type. Print a short, readable address on your own domain that redirects to the tagged link, or use a QR code.

Once a quarter, export source and medium from GA4 and compare them with the sheet. When you find a stray value, trace it back to the link that created it and fix the link, not just the report.

The takeaway

Export last month's session source and medium from GA4, list every spelling variant you find, and turn the clean versions into dropdowns in a shared link sheet.


Written by Fibvo — Bengaluru and Erode, India — working with clients in other time zones. Questions, or think we have it wrong? Tell us.

Keep reading

Related articles

Next step

Tell us what you are trying to grow.

Send the problem in a paragraph. We will reply within one working day with an honest view of whether we can help, and what it is likely to cost.

Call +91 93451 90983 WhatsApp us