TUTORIAL

A UTM Naming Convention a Small Business Can Actually Keep

Most messy analytics reports are not a tracking problem but a spelling problem: Facebook, facebook and fb as three separate rows. A naming convention fixes that with two short fixed lists, one pattern for campaign names and a log of every link you make.

WHAT THIS ADDSAgency naming guides are built for teams running hundreds of campaigns and end up with ten-part campaign codes nobody remembers. This one is cut down to what a business with one or two people tagging links will follow: two closed lists, one campaign pattern, and the three rules Google's own help page asks for.

Open the free UTM builderDownload the UTM naming convention sheet (PDF)

Why tagged links still give messy reports

A business tags its links for a few months, opens GA4 and finds facebook, Facebook, fb and facebook.com as four separate rows, a campaign called "Spring Sale" next to one called spring-sale, and a medium called "Social Media Post" that GA4 files under Unassigned. Every link was tagged. None of them can be added up without a spreadsheet.

That is not a tracking failure. It is a naming failure, and Google says so directly. Its help page on campaign URLs recommends a strict, case-sensitive naming convention for source, medium and campaign, gives Meta and meta as an example of two values GA4 counts separately, and suggests lowercase as the standard. It also asks for one source value per platform and one medium value per channel.

A naming convention is just that advice written down so that you, or whoever makes the next link, cannot drift from it.

The convention, in four parts

1. A closed list of sources

One lowercase name for each place that sends you visitors. facebook, not fb in one link and facebook in the next. instagram for the bio, stories and posts alike. newsletter for your email list. google for your Google Business Profile and Google Ads. If you sometimes send a link from your own inbox to one person, that can be email or the name of the mailbox; pick one. A new source is written onto the list before anyone uses it.

2. Mediums taken straight from GA4's rules

The medium decides which channel GA4 puts the visit in, so it is the one tag where your own preference does not matter. GA4's default channel group reads the medium (and for paid traffic, the source) and sorts visits by rules Google publishes. The values below land where you expect:

  • social → Organic Social (also accepted: sm, social-media, social-network).
  • paid_social → Paid Social, when the source is a social site. GA4 treats any medium starting with paid, or containing cp, as paid.
  • email → Email.
  • cpc → Paid Search, when the source is a search site.
  • referral → Referral.
  • sms → SMS.

Anything else is allowed, but GA4 will show it under Unassigned in the channel report. That is a fair trade for QR codes on printed material, where qr as a medium makes the printed codes easy to find in the source/medium report. Write the trade-off down so nobody "fixes" it later.

3. One pattern for campaign names

Campaign is the tag people improvise most. Pick one pattern and stick to it. For a small business, topic_month_year works: spring_sale_apr_2027, new_menu_jun_2027, open_day_sep_2027. It sorts sensibly, it says what the push was, and it keeps a repeat of the same offer next year on its own row. Use the same campaign name on every link that belongs to the push, whichever channel it is posted in. That is what lets you compare channels for one offer.

4. A narrow job for utm_content

Only use utm_content when two links share the same source, medium and campaign and you want to tell them apart: two buttons in one email (top_button, footer_link), two ads with different photos (photo_a, photo_b), or a QR code on the menu versus the receipt. If you never compare them, leave it empty. An empty field is better than a field filled with a different idea every time.

BeforeAfter the conventionFacebook post sourceFacebookfacebookFacebook ad mediumPaid Social Adpaid_socialNewsletter mediume-mail-blastemailCampaignSpring Sale!!spring_sale_apr_2027Second email button(left empty)footer_link
The same five links, before and after a naming convention. Only the right-hand column adds up in GA4.

How to make the convention stick

A rule nobody can see does not last. Three habits keep it alive:

  1. Build links in one place. The free UTM builder has "Tidy values" on by default, which lowercases everything and turns spaces into underscores, and its presets use the GA4-friendly mediums above. Even when someone types "Spring Sale", the link says spring_sale.
  2. Copy from the last link. Every link you copy is saved in the builder's history in your browser. "Use again" brings back the values of an earlier link, so the next one is spelled exactly the same. Download the history as a CSV once a month and keep it with your marketing notes.
  3. Keep the list next to the person who makes links. The sheet with this post has the allowed sources, the mediums with the channel each one lands in, the campaign pattern and a log. Print it or keep the PDF open.

The convention also pays off after the click. On paid plans, Fynl saves the source, medium and campaign on every lead that comes in through its forms, website pages or chat, and its Reports page groups leads and won jobs by source and medium. Clean values there mean one row per channel instead of four.

If your existing data is already messy, you do not need to rebuild it. Start the convention today, note the date, and compare like with like from that day forward. GA4 cannot rename old values for you.

Common questions while setting it up

Hyphens or underscores? Either works, as long as you only use one. The builder's tidy option uses underscores, and paid_social is easier to read than paid-social next to the GA4 rule that looks for a medium starting with paid.

Should the source be the platform or the account? The platform. If you run two Instagram accounts, keep source=instagram for both and use the campaign or content to separate them. GA4's own advice is one source per platform.

What about links my team posts without asking? The cheapest fix is to give them the finished link. A short list of ready-made links for the bio, the newsletter footer and the email signature covers most of what people share. Our step-by-step guide to creating UTM links shows how to build and test each one, and the guide to tagging your Google Business Profile covers the link most local businesses forget.

The UTM builder sits with the QR code generator, the calculators and the other no-cost tools on our free tools page.

DO THISWrite down your allowed sources and mediums, agree one campaign pattern (topic_month_year), tag every link in lowercase with underscores, and log each link the day you make it.
KEEP ITA fill-in naming convention: allowed sources, the GA4-friendly mediums, the campaign pattern and a link log. Download the UTM naming convention sheet — free PDF, no sign-up.

Questions people also ask

What is a UTM naming convention?

A written set of allowed values for utm_source and utm_medium, one pattern for utm_campaign, and rules such as lowercase only, so every tagged link is spelled the same way and adds up in your reports.

Are UTM parameters case-sensitive?

Yes. Google's help says values are case-sensitive, so utm_source=Google and utm_source=google show as two different sources. Use lowercase.

What utm_medium values does GA4 recognise?

For the main channels: social for organic social, a medium starting with paid such as paid_social for paid social, email, cpc for paid search, referral and sms. Other values still appear in reports but fall under Unassigned in the channel report.

How should I name UTM campaigns?

Use one short pattern every time, such as topic_month_year (spring_sale_apr_2027), and the same campaign name on every link that belongs to the same push.

Sources

Make the first link that follows the rules

Tidy values turns every tag into lowercase with underscores, and your history keeps the spellings you used last time.

Open the free UTM builderMore free tool guides