UTM Parameters
Chapter 19 — Using UTM Parameters in Social Media Marketing
Social clicks are messy without UTMs. Tag every social post, ad, and bio link with a stable pattern so you can split organic vs paid, compare creatives, and roll up results by campaign across platforms.
Social UTMs follow a simple, stable pattern
utm_source= the platform name in lowercase (linkedin, twitter, facebook, instagram, youtube, tiktok, reddit)utm_medium= use social for organic; pick one distinct value for paid (paid-social or cpc) and never mixutm_campaign= the shared campaign identifier across all related posts and adsutm_content= the creative or content variant (format, message, placement, or person)
Keep platform and medium values consistent across posts and ads
| Platform | utm_source |
Organic utm_medium |
Paid utm_medium (pick one) |
|---|---|---|---|
| social | paid-social or cpc | ||
| X (Twitter) | social | paid-social or cpc | |
| social | paid-social or cpc | ||
| social | paid-social or cpc | ||
| YouTube | youtube | social | paid-social or cpc |
| TikTok | tiktok | social | paid-social or cpc |
| social | paid-social or cpc |
- Keep names exact and lowercase. Do not mix “linkedin” and “LinkedIn” or “li.”
Working links for typical social posts and ads
| Scenario | Goal | Final URL example |
|---|---|---|
| Organic LinkedIn post promoting a webinar | Attribute webinar signups to LinkedIn organic | https://example.com/webinar?utm_source=linkedin&utm_medium=social&utm_campaign=apac-finops-webinar-2026&utm_content=post-1-video |
| LinkedIn Sponsored Content for the same webinar | Separate paid performance from organic | https://example.com/webinar?utm_source=linkedin&utm_medium=paid-social&utm_campaign=apac-finops-webinar-2026&utm_content=single-image-ad-a |
| X (Twitter) thread from the CTO announcing a report | Track platform and variant | https://example.com/report?utm_source=twitter&utm_medium=social&utm_campaign=2026-threat-report&utm_content=thread-cto |
| Facebook retargeting ad for product demo | Tie results to the paid social cohort | https://example.com/demo?utm_source=facebook&utm_medium=paid-social&utm_campaign=q2-demandgen&utm_content=carousel-3cards |
| YouTube video description link to a case study | Attribute clicks from YouTube | https://example.com/case-study?utm_source=youtube&utm_medium=social&utm_campaign=manufacturing-erp&utm_content=video-desc |
| LinkedIn post by an industry analyst | Attribute traffic to that specific post | https://example.com/benchmark?utm_source=linkedin&utm_medium=social&utm_campaign=benchmark-2026&utm_content=influencer-jlee |
Use one campaign tag across all related social placements
Using one utm_campaign on all related posts and ads (across platforms) answers, “What was the total impact of our launch on social?”
Example: Product Launch 2026 across LinkedIn and Twitter
| Post/Ad | Suggested UTMs |
|---|---|
| LinkedIn organic video | utm_source=linkedin&utm_medium=social&utm_campaign=prodlaunch-2026&utm_content=video-30s |
| LinkedIn Sponsored Message | utm_source=linkedin&utm_medium=paid-social&utm_campaign=prodlaunch-2026&utm_content=msg-a |
| Twitter organic thread | utm_source=twitter&utm_medium=social&utm_campaign=prodlaunch-2026&utm_content=thread-1 |
| Twitter ad with image | utm_source=twitter&utm_medium=paid-social&utm_campaign=prodlaunch-2026&utm_content=image-1 |
Differentiate creatives and people with utm_content
Use utm_content to mark what exactly was clicked.
- Format: video-30s, image-carousel, text-post
- Message variant: copy-a, copy-b
- Placement: feed, stories, right-rail
- Audience shorthand (if needed): cfo-segment, devops-segment
- Influencer/employee: influencer-jlee, employee-asmith
A simple LinkedIn A/B headline test can use the same utm_campaign and swap utm_content between copy-a and copy-b to isolate message impact.
Set clear organic vs paid rules and stick to them
Organic posts
utm_source= platform (e.g., linkedin)utm_medium= socialutm_campaign= initiative (e.g., 2026-threat-report)utm_content= format or variant (e.g., post-2-image)
Paid social ads
utm_source= platform (e.g., facebook)utm_medium= paid-social or cpc (decide once and keep it)utm_campaign= your marketing campaign identifier (use your standard, not a random ad platform label)utm_content= ad or creative variant (e.g., carousel-3cards, video-15s)
Platform-added parameters do not replace UTMs
- Platforms add their own parameters (fbclid on Facebook, li_fat_id on LinkedIn). Some also send clicks through their shorteners.
- These help the platform connect clicks to impressions. They do not set your source/medium/campaign.
- Always keep UTMs on your links to control how analytics groups traffic.
Short URLs are safe if they preserve the query string
- Build the full UTM URL first, then shorten it. Do not let the shortener “add UTMs.”
- The shortener must use 301/302 redirects that keep the query string.
- Test before posting:
- Paste the short URL in a fresh incognito window on desktop and mobile.
- Confirm the final landing URL still has your UTMs.
- Check a real-time report or a debugging tool to confirm source/medium/campaign.
Give influencers and employees pre-tagged links
- Send them your fully tagged URL.
- Keep
utm_sourceas the platform to keep network rollups clean. - Put the person or program into
utm_content(e.g., influencer-jlee, employee-asmith) or another agreed field in your scheme.
Copy-and-paste recipes you can use today
| Use case | URL pattern |
|---|---|
| LinkedIn company page post | https://yourdomain.com/asset?utm_source=linkedin&utm_medium=social&utm_campaign=your-campaign&utm_content=post-n |
| LinkedIn Sponsored Content | https://yourdomain.com/asset?utm_source=linkedin&utm_medium=paid-social&utm_campaign=your-campaign&utm_content=ad-variant |
| Twitter organic thread | https://yourdomain.com/asset?utm_source=twitter&utm_medium=social&utm_campaign=your-campaign&utm_content=thread-n |
| Facebook retargeting carousel | https://yourdomain.com/asset?utm_source=facebook&utm_medium=paid-social&utm_campaign=your-campaign&utm_content=carousel-n |
Automate UTMs in ad platforms with dynamic macros
You can set default URL parameters so every ad click includes UTMs you control.
Meta (Facebook/Instagram)
- Add “URL Parameters” at the ad level.
- Template:
utm_source=facebook&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}} - Use IDs if names are messy: {{campaign.id}}, {{ad.id}}
- Use “Third-party URL tracking” or “URL parameters” on the ad.
- Template:
utm_source=linkedin&utm_medium=paid-social&utm_campaign={campaign.name}&utm_content={creative.id}
X (Twitter), TikTok, Reddit
- Support dynamic placeholders for campaign/ad identifiers.
- Pattern:
utm_campaign={campaign_name}&utm_content={ad_id} - Check current macro syntax in each platform’s docs before launch.
Run this 60-second QA before you publish (Social UTM QA Loop)
- Source: Is
utm_sourcethe platform in lowercase? - Medium: Is
utm_medium“social” for organic and your chosen paid value for ads? - Campaign: Do all related posts/ads share the same
utm_campaign? - Content: Does
utm_contentclearly identify the creative or person? - Redirects: If shortened, do UTMs survive the hop?
Open DevTools and verify a short link keeps UTMs:
1) Create a full UTM URL and shorten it with your branded short domain.
2) In a fresh incognito window, open the short URL.
3) In DevTools > Network, click the first request (the short URL). Follow the redirect chain.
4) Confirm the final landing URL contains your exact utm_source, utm_medium, utm_campaign, and utm_content.
5) In your analytics real-time view, verify the session shows the expected source/medium.
Test your knowledge
Loading quiz questions...