A UTM is a short tag you bolt onto the end of a link so your analytics can tell you exactly where a click came from. Add ?utm_source=instagram&utm_medium=social&utm_campaign=spring-launch to a URL and Google Analytics 4 stops dumping that traffic into "Direct" or a vague "Social" bucket — it shows you that Tuesday's Instagram Story drove 43 signups while the LinkedIn post drove 2. This guide covers the five UTM parameters, a naming scheme that won't fragment your data, exactly where the trackable link goes on each network Zilfu publishes to in 2026 — Instagram, Threads, Facebook, TikTok, Pinterest, X, and LinkedIn — and how to read the results in GA4. Reach for our free UTM builder to build the link so the tags stay consistent.
What UTM parameters actually are
UTM stands for "Urchin Tracking Module" — a naming convention that survived from Urchin, the analytics product Google bought in 2005 and turned into Google Analytics. Two decades later the tags are still the universal standard, and they're refreshingly simple: a UTM is a key-value pair in the query string of a URL. Everything after the ? is metadata your analytics reads and your visitor's browser ignores. The page loads identically; only your reports change.
Why they matter for social specifically: without UTMs, a link-in-bio click, a Story link tap, and a feed-post link all look the same in analytics — or worse, they get filed under "Direct" because the click came through an in-app browser that strips the referrer. UTMs are the only way to reliably separate "this signup came from my Instagram bio" from "this signup came from my X post." They turn social traffic from an opaque lump into a per-placement, per-campaign breakdown you can actually act on.
The five UTM parameters
There are exactly five UTM parameters. You will use three of them constantly, one occasionally, and one almost never. Here's what each answers and when to reach for it.
| Parameter | What it answers | Social example | How often |
|---|---|---|---|
utm_source (required) | Which platform or site sent the click? | instagram, x, linkedin, tiktok | Every link |
utm_medium | Which type of channel is it? | social (or cpc for paid) | Every link |
utm_campaign | Which promotion or push? | spring-launch, black-friday | Every link |
utm_content | Which placement or variant? | bio-link, story, post-a | When A/B testing or splitting placements |
utm_term | Which paid keyword? | social-media-scheduler | Paid search only — rarely on social |
Two things worth internalizing. First, utm_source is the only parameter Google Analytics strictly requires to attribute a visit — but source + medium + campaign is the trio worth filling on every social link, because medium lets you group all social traffic together and campaign lets you measure a specific push across networks. Second, utm_term is a holdover from paid search; on organic social you'll almost never use it. Don't feel obligated to fill all five — an empty parameter is better than a meaningless one, and a good UTM builder simply omits any field you leave blank.
The one distinction people get wrong: source vs. medium
The most common UTM mistake is conflating source and medium, which silently fragments your reports. The clean rule: source is the specific named platform; medium is the category it belongs to. Instagram, Facebook, X, LinkedIn, TikTok, Pinterest, and Threads are all sources; they share the medium social. Your newsletter is the source newsletter with the medium email. A paid ad on Instagram is source instagram with medium cpc (or paid-social), which is how you keep paid and organic from the same platform separate.
Get this right and GA4 gives you two views for free: switch the dimension to medium and you see organic social vs. email vs. paid at a glance; switch to source and you drill into which specific network performed. Get it wrong — tagging one Instagram link medium=instagram and another medium=social — and the same platform splits across two rows that never add up. Pick social as your organic-social medium and never deviate.
A naming scheme that won't fragment your data
UTMs are case-sensitive and literal: to an analytics tool, Instagram, instagram, and IG are three different sources that each get their own row. Multiply that inconsistency across a team and your "Instagram" traffic ends up scattered over half a dozen near-duplicate labels. The fix is a short style guide everyone follows. These five rules cover 95% of the mess:
- Lowercase everything. Always
instagram, neverInstagram. The UTM builder lowercases values automatically so you can't slip. - Dashes, not spaces or underscores. Spaces become
%20and read terribly; pick dashes and stick to them, e.g.spring-launch. The builder swaps spaces for dashes for you. - One canonical name per source, forever. Decide
xvstwitter,linkedinvslionce, write it down, and never improvise a new spelling mid-campaign. - Keep a shared campaign sheet. If more than one person posts, a simple spreadsheet of approved source/medium/campaign values is the single highest-leverage thing you can do for clean data.
- Date or version your campaigns. Reusing
summer-saleevery year merges 2025 and 2026 into one undifferentiated row. Usesummer-sale-2026.
Where the trackable link goes on each platform
This is the part most UTM guides skip and the part that actually trips people up: building the link is easy, but every network handles clickable links differently. Some give you a real link in the post; most don't, and force the link into your bio or a link-in-bio page. Here's the 2026 reality for each network Zilfu publishes to, plus where to attach the UTM.
| Platform | Where a clickable link is allowed | What to tag |
|---|---|---|
| Profile bio link, link-in-bio page, and the link sticker in Stories. Feed/Reel captions are not clickable. | Bio link → utm_content=bio-link; Story link → utm_content=story | |
| Clickable directly in feed-post text and as a link-preview card. The most link-friendly network. | Tag the in-post URL; utm_content=post | |
| Clickable in the post body and in the profile "website" field. Links in the first comment also work (and dodge the in-feed link penalty). | Tag the in-post or first-comment URL; utm_content=post | |
| X (Twitter) | Clickable directly in any post, and in the profile website field. | Tag the in-post URL; utm_content=post |
| Every Pin has a destination URL field — the single most click-driven surface in social. Profile also has a website link. | Tag the Pin destination URL; utm_content=pin | |
| TikTok | Bio link (and link-in-bio page). Captions aren't clickable; TikTok also down-ranks off-platform link-chasing. | Bio link → utm_content=bio-link |
| Threads | Clickable in post text and as a profile link. A genuinely link-friendly surface. | Tag the in-post URL; utm_content=post |
Two patterns fall out of this table. On the link-friendly networks — Facebook, X, LinkedIn, Threads, and Pinterest — you paste the full UTM link straight into the post or destination field. On the link-hostile networks — Instagram and TikTok, where captions aren't clickable — the link has to live in your bio, and if you want to point to more than one place you need a link-in-bio page. That's where a single tracked destination earns its keep: instead of swapping your one bio link every time you post, you maintain a link-in-bio page with multiple tracked buttons, and each button carries its own UTM so you can see which offer your Instagram and TikTok audiences actually click.
Won't the long URL look ugly?
On most platforms, no — the URL gets hidden behind a link-preview card (Facebook, LinkedIn, X) or sits in a dedicated field (Pinterest destination, Instagram bio) where the visitor never reads the raw string. Where the full link is visible, run it through a link shortener; the UTM parameters survive the redirect and still register in GA4. The one place to be careful is X, where a link always counts as 23 characters against your 280 regardless of its real length — so a UTM'd link and a bare link cost you exactly the same, and there's no character reason to shorten it.
How to build a consistent UTM scheme
Here's the repeatable process. Do this once to define your scheme, then it becomes a 30-second step every time you post a link. The UTM builder handles the encoding so you can focus on the naming.
- Lock in your source and medium values. Decide once, in writing, exactly how you'll spell each platform — for example
instagram,x,linkedin,tiktok— and that all organic social usesutm_medium=social. This is your style guide; every link from now on uses these exact values, lowercase, with no improvised variants. - Name the campaign before you tag anything. Give the push one campaign name and reuse it on every link across every network, so GA4 can roll the whole push up into a single Session campaign row. Use dashes and add a year or version (
spring-launch-2026) so you never merge two campaigns that happen to share a theme. - Add utm_content only where you need to split placements. If a network exposes more than one link spot — Instagram bio vs. Story, or several buttons on a link-in-bio page — set a distinct
utm_contentper spot (bio-link,story,pin). Skip it when there's only one link location; an empty content tag is fine. - Build the link in the UTM builder. Paste your destination URL and your values into the free UTM builder. It lowercases, swaps spaces for dashes, encodes everything correctly, and gives you a copy-ready link — so a typo can't quietly split your data. Use the platform presets to fill source, medium, and content in one click.
- Place the link where each platform allows it. Paste the link in-post on Facebook, X, LinkedIn, Threads, and Pinterest (the Pin destination field). For Instagram and TikTok, where captions aren't clickable, put it in your bio or on a link-in-bio page. Never put a UTM on a link that points to your own site internally.
- Verify the results in GA4. A day or two after the post is live, open Reports → Acquisition → Traffic acquisition and switch the dimension to Session source / medium or Session campaign. Confirm your traffic shows up under the right source and lands in the Organic Social channel group — if it's in "Unassigned," a malformed medium value is almost always the cause.
Reading the results in GA4
Once your tagged links are live and clicks are coming in, GA4 surfaces them in a few places. The fastest path: open Reports → Acquisition → Traffic acquisition. By default the table groups by Session default channel group; click the dimension dropdown at the top of the first column and switch it to Session source / medium to see rows like instagram / social and x / social side by side. Switch it to Session campaign to see how a specific push (spring-launch) performed across every network at once.
To split by placement — bio vs. Story vs. post — you'll want utm_content, which doesn't appear in the standard channel reports. Build a quick Exploration (the free-form report builder under Explore), add Session manual ad content as a dimension, and you'll see bio-link, story, and pin broken out. The metrics that matter most for social are Sessions (how many clicks landed), Engaged sessions (clicks that stuck), and — if you've set up conversions — Key events, so you can answer the only question that counts: which placement actually drove signups, not just clicks.
A timing note: GA4 attributes by session source, and its default channel grouping files anything tagged medium=social under "Organic Social" (or "Paid Social" for cpc/paid-social). That's another reason to keep your medium values disciplined — a typo like medium=socail won't fall into the Social channel group and will hide in "Unassigned." If a chunk of traffic lands in "Unassigned," a malformed UTM is almost always the cause.
How Zilfu fits into UTM tracking
Zilfu doesn't replace your analytics — it's where the posts those UTM links live in get scheduled and published. You build the tracked link in the free UTM builder, drop it into the right place for each network (in-post text for Facebook, X, LinkedIn, Threads, and Pinterest; bio or link-in-bio for Instagram and TikTok), and schedule the post across all seven supported networks from one composer. Because you're publishing through the official platform APIs, the link lands exactly as you tagged it — no in-app rewriting that mangles your parameters.
For the link-hostile networks, Zilfu's link-in-bio page is the natural home for your tracked destinations: build one page with multiple buttons, give each button its own UTM, and point your Instagram and TikTok bio links there so you can see in GA4 which button your audience clicks. Zilfu's first-comment feature auto-posts a follow-up comment on Threads today. On LinkedIn — where links in the post body can suppress reach — you can apply the same link-in-comment pattern manually: post normally, then drop the tracked link in your own first comment.
On measuring: Zilfu's per-post analytics show reach, likes, comments, and saves — the on-platform engagement metrics. Clicks and the downstream conversion story live in GA4, not in Zilfu's dashboard, which is exactly what UTMs are for. Use Zilfu to see whether a post earned engagement, and GA4 (via your UTMs) to see whether that engagement turned into traffic and signups. If you run an automated stack, you can push tagged posts into the queue programmatically through the API or MCP server. The free plan covers 20 posts a month — enough to test a UTM scheme across a few networks before you commit. Pair this with our caption-writing guide so the posts carrying those links actually earn the click.
Frequently asked questions
What are UTM parameters?
UTM parameters are short tags added to the end of a URL — like ?utm_source=instagram&utm_medium=social&utm_campaign=spring-launch — that tell your analytics tool exactly where a click came from. There are five of them (source, medium, campaign, content, term). The page loads identically for the visitor; only your reports change. Without them, most social traffic gets filed under "Direct" or a vague "Social" bucket, so you can't tell which network, post, or placement actually drove the click.
What do the five UTM parameters mean?
utm_source is the specific platform or site that sent the click (instagram, x, linkedin). utm_medium is the channel category (social, email, cpc). utm_campaign is the promotion or push (spring-launch, black-friday). utm_content distinguishes placements or A/B variants (bio-link, story, post-a). utm_term is for paid-search keywords and is rarely used on organic social. You will use source, medium, and campaign on every link; content occasionally; term almost never.
Which UTM parameters are required?
Only utm_source is strictly required for Google Analytics to attribute the visit. In practice, source + medium + campaign is the trio worth filling on every social link — medium lets you group all social traffic together, and campaign lets you measure one push across multiple networks. Leave the others blank when they don't apply; an empty parameter is better than a meaningless one. You can build a clean link with the free UTM builder, which omits any field you leave empty.
What is the difference between source and medium?
Source is the specific named platform; medium is the category it belongs to. Instagram, Facebook, X, LinkedIn, TikTok, Pinterest, and Threads are all sources that share the medium social. Your newsletter is source newsletter, medium email. A paid Instagram ad is source instagram, medium cpc (or paid-social), which keeps it separate from your organic Instagram posts. Getting this right gives you both a category view and a per-platform view in GA4; getting it wrong splits one platform across rows that never add up.
How do I name UTMs so my data stays clean?
UTMs are case-sensitive and literal, so Instagram, instagram, and IG are three different sources. Follow five rules: lowercase everything; use dashes instead of spaces or underscores; pick one canonical name per source and never improvise a new spelling; keep a shared sheet of approved values if more than one person posts; and date or version campaigns (summer-sale-2026, not summer-sale) so years don't merge. The UTM builder lowercases and dash-cases values automatically.
Where do I put the trackable link on Instagram?
Instagram feed and Reel captions are not clickable, so a tracked link can only go in three places: your profile bio link, a link-in-bio page, and the link sticker in Stories. Tag the bio link with utm_content=bio-link and the Story link with utm_content=story so you can tell them apart in analytics. If you want to point to more than one destination from your single bio link, use a link-in-bio page with multiple tracked buttons.
Where does the link go on each platform?
On the link-friendly networks — Facebook, X, LinkedIn, Threads, and Pinterest — paste the full UTM link straight into the post text or the destination field (every Pinterest Pin has a URL field). On the link-hostile networks — Instagram and TikTok, where captions aren't clickable — the link has to live in your bio or a link-in-bio page. LinkedIn also lets you drop the link in the first comment to dodge the in-feed link penalty.
Will UTM links hurt my SEO?
No, when used correctly. Google treats UTMs as tracking parameters, and canonical tags prevent any duplicate-content issues. The one rule that matters: never put UTMs on internal links within your own site, because that overwrites a visitor's original source attribution and creates a self-referral.
Why should I never UTM internal links?
If you tag a link from your own homepage to your own pricing page, GA4 treats the click as a brand-new session and overwrites the visitor's original source — so a person who arrived from your Instagram bio suddenly shows up as an internal referral, and your attribution is lost. UTMs belong only on links you post off-site (a social profile, a Story, a newsletter, an ad). Inside your own domain, link with plain URLs.
How do I read UTM results in GA4?
Open Reports → Acquisition → Traffic acquisition, then change the first-column dimension to Session source / medium to see rows like instagram / social, or to Session campaign to see one push across every network. To split by placement (bio vs. Story vs. post), build a free-form Exploration and add the Session manual ad content dimension, which surfaces your utm_content values. Watch the Sessions, Engaged sessions, and Key events metrics to see which placement drove signups, not just clicks.
Do UTM links work outside Google Analytics?
Yes. UTM parameters are a universal convention, not a Google-only feature. Plausible, Fathom, Matomo, Mixpanel, PostHog, and virtually every other analytics tool read the same utm_ tags, so the link you build works the same way regardless of which analytics platform you use.
Won't the long UTM URL look ugly in my post?
On most platforms it stays hidden — the URL sits behind a link-preview card (Facebook, LinkedIn, X) or in a dedicated field (Pinterest destination, Instagram bio) where the visitor never reads the raw string. Where the full link is visible, run it through a link shortener; the UTM parameters survive the redirect. On X, note that any link counts as 23 characters against your 280 regardless of length, so a tracked link costs the same as a bare one.
Does Zilfu track clicks or build UTMs for me?
Zilfu schedules and publishes the posts your UTM links live in across all seven supported networks, and because it uses the official platform APIs the link lands exactly as you tagged it. Clicks and conversions are tracked in your own analytics (GA4), not in Zilfu's dashboard — Zilfu's per-post analytics show reach, likes, comments, and saves. To build the links themselves, use the free UTM builder, and for Instagram and TikTok point your bio at a link-in-bio page with tracked buttons.