For Facebook & Meta campaigns
Tag Facebook posts and Meta Ads with attribution-ready UTMs.
Generated URL
Copy a starter, then tweak it for your campaign.
Meta Ad
https://example.com/?utm_source=facebook&utm_medium=paid-social&utm_campaign=spring-sale&utm_content=video-15s
Organic page post
https://example.com/?utm_source=facebook&utm_medium=social&utm_campaign=launch-week
Group post
https://example.com/?utm_source=facebook&utm_medium=community&utm_campaign=ama
Dynamic ad parameters
https://example.com/?utm_source=facebook&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}
Story link sticker
https://example.com/?utm_source=facebook&utm_medium=social&utm_campaign=launch-week&utm_content=story
Shop product link
https://example.com/p/sku-42?utm_source=facebook&utm_medium=shop&utm_campaign=spring-sale
Meta's in-platform reporting only tells half the story — once a click leaves Facebook, you need UTMs to see what happened in your own analytics.
Pair utm_source=facebook with utm_medium values that separate organic, paid, and Marketplace traffic so each channel can be evaluated on its own merits.
Meta appends its own click identifier, fbclid, to outbound links. It's harmless and coexists with your UTMs, but it means every Facebook click already carries a query string — so the old worry about 'adding parameters' is moot. Your UTMs ride alongside fbclid untouched.
For paid campaigns, don't hand-build URLs per ad. Meta's Ads Manager has a dedicated URL parameters field at the ad level, and it supports dynamic values like {{campaign.name}}, {{adset.name}}, and {{ad.name}}. Set utm_campaign={{campaign.name}} once and every ad in the account tags itself — as long as your campaign names are clean enough to double as analytics labels.
Mobile matters here more than on any other platform: the overwhelming majority of Facebook clicks happen in the Facebook or Messenger in-app browser. Sandboxed cookies and aggressive iOS privacy features mean session stitching is unreliable — but UTM parameters land intact, which makes them the most durable attribution signal you have for Meta traffic.
Expect Ads Manager and your analytics to report different numbers. Ads Manager counts clicks (and models some conversions); analytics counts sessions that loaded and executed JavaScript. In-app browser abandonment and bot filtering create a persistent gap. Compare trends, not absolutes, and use UTMs as the common key between the two systems.
Finally, decide your naming rules before scale makes them expensive to fix: lowercase everything ('Facebook' and 'facebook' are separate sources in GA4), use hyphens instead of spaces, and version campaign names by quarter or launch. Retroactive cleanup of inconsistent UTMs in a warehouse is a genuinely miserable project — a shared convention doc costs an hour and saves that project entirely.
Stamp every ad set with utm_campaign + utm_content so you can A/B creatives in your analytics tool. Dynamic parameters ({{ad.name}}) make this zero-maintenance once campaign naming is standardized.
Separate page posts from group activity to understand which surface actually drives clicks. Groups often drive fewer but far more engaged visits — without UTMs you'll never see that split.
Tag Reels and Stories distinctly to compare CTR across short-form formats. Short-form clicks skew heavily to the in-app browser, where UTMs are the only reliable attribution signal.
Links shared in Messenger threads typically arrive as 'direct' traffic with no referrer. A tagged URL is the only way that dark-social traffic gets credited back to your Facebook effort.
Use a distinct utm_medium (e.g. 'shop') for commerce surfaces so product-intent traffic doesn't get averaged into feed browsing behavior.
Pre-configured variants tuned to specific platforms and use cases.
For LinkedIn campaigns
Tag every LinkedIn post, ad, and InMail with consistent UTMs.
Open variantFor email campaigns
Build trackable URLs for newsletters, lifecycle, and outbound email.
Open variantFor Instagram campaigns
Tag bio links, Stories, and Reels with consistent Instagram UTMs.
Open variantFor TikTok campaigns
Tag TikTok bio links and Spark Ads with attribution-ready UTMs.
Open variantFor YouTube descriptions and ads
Tag every link in your video descriptions and YouTube Ads.
Open variantFor Google Ads campaigns
Build URLs with proper utm_source=google and utm_medium=cpc tagging.
Open variantFor X / Twitter campaigns
Tag every tweet, thread, and X Ad with attribution-ready UTMs.
Open variantFor Reddit posts and ads
Tag organic posts, comments, and Reddit Ads with proper UTMs.
Open variantFor Pins and Promoted Pins
Tag every Pin and Promoted Pin so traffic is attributable in your analytics.
Open variant