Book a free review

Notes · Tracking

UTM links: know which post brought the lead

A simple UTM naming system for Instagram, Meta ads, WhatsApp and email links, so GA4 shows which post or ad brought each lead.

Fig. 01 — How a tagged link turns into a lead with a source

You posted on Instagram, ran a Meta ad, put a link in your bio and sent a WhatsApp broadcast. Three enquiries came in. Which one worked?

Without tagged links, analytics will lump most of that traffic together, or worse, call it “direct”. UTM parameters fix this. They’re a few extra words added to the end of a link that tell Google Analytics where the visit came from.

01 · The five parameters

A tagged link looks like this:

https://example.com/free-review?utm_source=instagram&utm_medium=social&utm_campaign=oct-review-offer&utm_content=reel-tracking

  • utm_source: the platform. instagram, facebook, whatsapp, newsletter.
  • utm_medium: the type of traffic. social, paid_social, email, cpc.
  • utm_campaign: the campaign or offer. oct-review-offer.
  • utm_content: which post or ad. reel-tracking, story-1.
  • utm_term: for search keywords; rarely needed outside search ads.

Source, medium and campaign are the ones to always fill in.

02 · Get the medium right, or GA4 files it in the wrong place

GA4 sorts traffic into channels using rules. For Paid Social, the source must be a social site and the medium must match a pattern that includes cpc, ppc, retargeting or anything starting with paid. Use utm_medium=social for organic posts and you’ll land in Organic Social instead (GA4 default channel group).

So: organic posts get social, paid ads get paid_social. That one rule keeps your paid and organic results apart.

03 · Lowercase, always

GA4 treats Instagram and instagram as two different sources. Pick lowercase with hyphens, never spaces, and never change it. Mixed capitals are the most common reason a UTM report looks messy.

04 · A naming system you can copy

Where the link goes utm_source utm_medium utm_campaign
Instagram bio instagram social bio
Instagram post or reel instagram social the offer, e.g. oct-review-offer
Meta ad facebook or instagram paid_social the campaign name
WhatsApp broadcast whatsapp social the message, e.g. diwali-offer
Email newsletter email the email’s subject, shortened

Put the table in a shared sheet and build every link from it. That’s the whole system.

05 · Meta ads can fill the tags in for you

Under the ad’s destination, the URL parameters field has a “Build a URL parameter” helper that accepts dynamic values like {{campaign.name}} and {{ad.name}}, so every ad tags itself with its own campaign and ad name. One catch: the names are captured when the ad is published, so renaming a campaign later doesn’t update links already running. Name campaigns well before launch, and the reports read themselves.

06 · Google Ads: let auto-tagging do it

For Google Ads, turn on auto-tagging and link the account to GA4. Google passes the campaign details itself, so you don’t need manual UTMs on Google Ads links.

What you get

A GA4 report, Traffic acquisition by session source / medium, that shows which post, ad and broadcast brought visits, and with a conversion set up, which ones brought enquiries. That’s the number that decides where next month’s budget goes.

Tracking is part of every website and ad account I set up. If yours shows mostly “direct” traffic, the free review will tell you why.

Lowercase, consistent, written down. A UTM system only works if every link follows the same rules.

Related: Website development · Meta Ads management · Google Ads management

Want me to check yours?

Book a free review
Book reviewWhatsApp