AnalyticsUTMSocial Media Measurement

UTM Parameters for Social Media: A Naming Convention Guide

Design a consistent UTM naming convention so social traffic stays clean in any analytics tool. A practical taxonomy playbook for marketers.

Dan — Founder, SocialKit7 min read

A UTM parameter is a snippet of text you add to the end of a link so your analytics tool knows exactly where a click came from. The five standard tags — utm_source, utm_medium, utm_campaign, utm_content, and utm_term — get read by Google Analytics, Matomo, Fathom, Plausible, and nearly every other platform, and they turn a vague blob of "social" traffic into a labeled, sortable dataset you can actually make decisions from.

But here is the part most guides skip: the tags themselves are the easy part. The thing that decides whether your social reporting is trustworthy or a mess is your naming convention — the rules you write down for what values go into each parameter and how they are spelled. This guide is that playbook. It is not a click-by-click Google Analytics tutorial; it is a taxonomy you can adopt today so every link you ever build stays consistent.

Why the convention matters more than the tags

Analytics tools treat UTM values as raw strings, and they are case-sensitive. To your reporting, Facebook, facebook, and FaceBook are three different sources. IG-Stories and ig_stories are two different mediums. Nobody decides to fragment their data — it happens one link at a time, because two people on the same team guessed slightly differently.

The cost shows up later. When you open your reports to answer "how much traffic did Instagram drive last quarter?", you find the answer split across five spellings, and you spend an afternoon merging rows in a spreadsheet instead of learning anything. A naming convention is the cheap insurance that prevents that afternoon. If you want the deeper why behind attribution generally, our guide to tracking social media conversions covers how these tagged clicks connect to actual revenue.

Two rules solve ninety percent of the fragmentation problem:

  • Lowercase everything. Always. No exceptions. It removes an entire category of duplicate-value bugs.
  • Pick one word separator and never mix. Hyphens are the safest choice because underscores can get hidden by underlined-link styling and some tools handle them oddly. So black-friday, never black_friday or blackFriday.

Write those two rules at the top of your convention doc and enforce them, and your data quality jumps immediately.

The five parameters, and what actually belongs in each

Getting clean reports depends on using each parameter for its intended job. Mixing them up — putting the platform in the campaign, or the post format in the source — is the second most common way social data gets messy.

utm_source — where the click physically came from

This is the specific platform or property. Use the plain platform name, lowercased and consistent forever: instagram, tiktok, youtube, linkedin, facebook, pinterest, x, threads, bluesky, mastodon, google-business.

The single most important discipline here is to freeze the spelling. Decide once whether Twitter/X is x or twitter in your world, write it down, and never deviate. The goal is that in six months every teammate types the exact same string without thinking.

utm_medium — the type of channel

Medium describes the marketing channel category, not the platform. For organic social posts, the near-universal convention is social (some teams use social-organic to distinguish it from paid). This is what lets your analytics tool group all social traffic together regardless of which network it came from.

Keep your medium list short and closed. A healthy set for most social programs is just:

  • social — organic posts across every network
  • social-paid — anything behind ad spend
  • social-bio — link-in-bio and profile links
  • email — if your newsletter promotes social content
  • influencer — creator-driven placements you want to isolate

If you find yourself inventing a new medium for every post, that information belongs in utm_content, not here.

utm_campaign — the initiative you are running

This ties clicks to a reason — a launch, a sale, a content series, a seasonal push. This is the parameter most worth designing carefully because it is how you answer "did this campaign work?"

A durable pattern is theme-detail or year-theme: spring-sale, 2025-q1-webinar, product-launch-v2, holiday-gift-guide. Include a date element for anything recurring so next year's version does not collide with this year's in your reports.

Crucially, the campaign value should be the same across every platform for a given initiative. If you run one spring sale across Instagram, LinkedIn, and Pinterest, all three use utm_campaign=spring-sale. That is what lets you compare platforms head-to-head — the campaign is the constant, the source is the variable.

utm_content — the variant, for A/B and format tracking

Content is your free slot for distinguishing versions of a link that are otherwise identical: which post, which format, which CTA, which creative. Use it for reel, carousel, story-swipeup, bio-link, pinned-comment, or cta-a vs cta-b.

This is where per-post granularity lives, which keeps utm_source and utm_medium clean and stable. If you post the same link as both a Reel and a Story, same source, same medium, same campaign — only utm_content changes.

utm_term — usually skip it for social

utm_term was built for paid-search keywords. For organic social you can safely leave it empty. Some teams repurpose it to tag the creator or handle in influencer campaigns (utm_term=jane-doe), which is a reasonable use — just decide deliberately rather than dumping random data into it.

A convention you can copy today

Here is a complete, opinionated scheme. Adapt the values, but keep the structure rigid.

Global rules

  1. Lowercase only.
  2. Hyphens as separators, never spaces or underscores.
  3. No brand names, emoji, or special characters in values.
  4. Source = platform, Medium = channel type, Campaign = initiative, Content = variant.

Value dictionaries (the closed lists your team picks from)

  • utm_source: instagram · tiktok · youtube · facebook · linkedin · x · threads · bluesky · pinterest · mastodon · google-business
  • utm_medium: social · social-paid · social-bio · influencer
  • utm_campaign: {theme} or {year}-{quarter}-{theme}
  • utm_content: {format} or {format}-{variant} (e.g. reel-a)

A worked example. You are promoting a Q1 webinar with a Reel on Instagram:

https://yoursite.com/webinar?utm_source=instagram&utm_medium=social&utm_campaign=2025-q1-webinar&utm_content=reel

The same webinar shared from your LinkedIn feed:

https://yoursite.com/webinar?utm_source=linkedin&utm_medium=social&utm_campaign=2025-q1-webinar&utm_content=feed-post

Notice everything is predictable. The only things that change between platforms are source and content. That predictability is the entire point — it is what makes your reports self-organize.

The weakest link in any convention is the human typing values by hand. Two safeguards fix this.

First, keep your value dictionaries in a shared doc or spreadsheet that the whole team pulls from — a single source of truth for approved spellings. Second, build every tagged URL with a tool instead of assembling query strings by hand. Our free UTM builder lets you fill in the fields and copies a correctly-formatted link, which eliminates the stray capital letter and the missing ampersand that quietly poison a dataset. If you are fuzzy on the mechanics, the UTM code glossary entry breaks down each parameter in one paragraph.

For consistency at scale, a related habit helps: when you schedule the same campaign across many networks, decide the UTM values before you write the posts, not after. If you plan and publish your calendar in SocialKit — where you can schedule, customize per platform, and analyze all 11 networks from one place — you can paste the pre-built, correctly-tagged link into each platform's version as you compose it, so tagging becomes part of the posting workflow instead of a forgotten afterthought.

Reading the data once it flows in

A clean convention pays off the moment you open reports. Because your medium is consistently social, you can isolate every social click in one filter. Because your campaign value is shared across platforms, you can pivot by source within a campaign and see which network actually drove the conversions — not just the clicks.

That distinction matters. Clicks are cheap; tracked outcomes are the truth. UTMs get the visitor labeled at the door, but you still need your analytics tool's goals or events to record what they did next. The conversion tracking glossary entry explains how the tagged click and the recorded goal connect into a full attribution picture. Once both halves are in place, questions like "which platform drove the most trial signups from the spring sale?" become a two-click report instead of a research project.

Common mistakes that quietly ruin reports

  • Tagging internal links. Never put UTMs on links between pages of your own site — it overwrites the original source and makes it look like your homepage referred the visitor. UTMs are for inbound links only.
  • Putting the platform in utm_campaign. instagram-spring-sale as a campaign name breaks cross-platform comparison. Platform is always the source; keep the campaign identical everywhere.
  • Inventing a new medium per post. If your medium list is longer than about six values, you are using medium for data that belongs in content.
  • Inconsistent casing. The number-one cause of split reports. Lowercase everything, forever.
  • Skipping the date on recurring campaigns. This year's holiday-guide merges with last year's. Add a year.

The one-page rule

If you remember nothing else: write your convention down on a single page, share it, and make it the only source of approved values. UTMs do not fail because the tags are complicated — they fail because two people spelled the same thing differently. A short, enforced naming convention is what turns social link tracking from a spreadsheet cleanup chore into a reporting system you can actually trust.

Set your dictionaries, build every link with the UTM builder, and keep your posting and tagging in one workflow — start a free 7-day SocialKit trial if you want your scheduling and your measurement living in the same place.