Measurement

UTM tracking for social media agencies: a naming scheme that survives contact with reality

If you cannot say which post drove the traffic, you cannot prove the retainer worked. A simple, consistent link tagging scheme fixes that in an afternoon.

By Mila De SociaUpdated 4 min read
On this page

The most uncomfortable moment in a client meeting is when someone asks which posts actually sent people to the site, and the honest answer is that you do not know.

It is an avoidable moment. The fix is not clever analytics; it is tagging links consistently before you publish, every time, with a scheme you can still read in six months.

What goes wrong without a convention

Three failures account for almost all unattributable social traffic:

  • Untagged links. The click lands in Google Analytics as instagram.com / referral at best, and direct at worst once it has been through an in-app browser. You can see that social sent traffic. You cannot see which post.

  • Inconsistent tagging. source=ig, source=instagram, source=Instagram and source=insta are four different sources in every report you will ever run. By the time you notice, the data is already split.

  • Tagging the campaign but not the post. Knowing a campaign drove 400 clicks is better than nothing, but it does not tell you which of the eleven posts in it did the work, which is the only part that changes what you do next.

A scheme that works across clients

Keep the five parameters doing exactly one job each. Lowercase everything, use hyphens, never spaces.

source: the platform, always spelled the same way

instagram, facebook, linkedin, x, tiktok, youtube, pinterest, threads, bluesky, telegram.

Pick the full name over the abbreviation and write it down somewhere the whole team can see. The specific choice matters far less than everyone making the same one.

medium: how it was published

social-organic, social-paid, bio-link, story, dm.

Resist the urge to get clever here. You will want to compare organic and paid eventually, and a medium that mixes them makes that impossible.

campaign: the thing you are running

spring-menu-launch, black-friday-2026, always-on.

Give everything a campaign, including routine posting. always-on is a perfectly good answer and it stops a third of your traffic appearing as uncategorised.

content: the individual post

This is the one most agencies skip and the one that makes reporting useful. Use something that identifies the specific post: a date and a short slug, like 2026-09-14-pasta-reel.

Without this, you cannot answer the only question the client really has.

term: leave it alone

Reserve it for paid search keywords. Using it for anything else will confuse whoever inherits the account.

The rules that keep it clean

  1. Lowercase, always. UTM values are case-sensitive. Instagram and instagram will be two rows forever.

  2. Hyphens, not underscores or spaces. Spaces get encoded and become unreadable.

  3. Never tag internal links. Putting UTMs on a link from one page of the client's site to another restarts the session and destroys the attribution you were trying to measure.

  4. Tag the link once, at publish time. Tagging later, by hand, in a spreadsheet, is how inconsistency enters.

  5. Shorten after tagging, not before. A tagged link is ugly; shortening it keeps the caption clean and the tags intact.

Several platforms strip or mangle query strings, and in-app browsers are inconsistent about what they pass through. A short link that you control resolves to the tagged URL server-side, which means the attribution survives the trip. You also get a click count that is independent of the platform's own reporting, which is useful on the day a client disputes a number.

The side benefit is that bio links, link-in-bio pages and anything you hand to a client all flow through the same measurement, instead of being a separate thing you have to explain.

Where to start

You do not need to retrofit anything. Agree the convention this week, apply it to everything you publish from Monday, and write it into your onboarding doc so the next person inherits it.

In a month you will be able to open a report and say which three posts drove the traffic. That sentence is worth more in a renewal conversation than any amount of reach.

attributionutmtracked linksreporting

About the author

Mila De Socia

Social Media Researcher

Mila spends her days looking at social accounts and noticing what's changing. She writes Haba Social's insights and the Everything Social newsletter.

Tag every link automatically

Haba Social shortens and tags links as you publish, then attributes clicks back to the post, platform and campaign.