For Facebook & Meta campaigns

    Facebook UTM Builder

    Tag Facebook posts and Meta Ads with attribution-ready UTMs.

    Generated URL

    Fill in a URL and the required UTM fields.

    Worked examples

    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

    Why Facebook traffic needs UTMs

    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.

    Common use cases

    Meta Ads

    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.

    Organic page posts

    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.

    Reels and Stories

    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.

    Messenger and DM shares

    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.

    Facebook Shops and Marketplace

    Use a distinct utm_medium (e.g. 'shop') for commerce surfaces so product-intent traffic doesn't get averaged into feed browsing behavior.

    Frequently asked questions

    Other UTM Builder variants

    Pre-configured variants tuned to specific platforms and use cases.

    For LinkedIn campaigns

    LinkedIn UTM Builder

    Tag every LinkedIn post, ad, and InMail with consistent UTMs.

    Open variant

    For email campaigns

    Email UTM Builder

    Build trackable URLs for newsletters, lifecycle, and outbound email.

    Open variant

    For Instagram campaigns

    Instagram UTM Builder

    Tag bio links, Stories, and Reels with consistent Instagram UTMs.

    Open variant

    For TikTok campaigns

    TikTok UTM Builder

    Tag TikTok bio links and Spark Ads with attribution-ready UTMs.

    Open variant

    For YouTube descriptions and ads

    YouTube UTM Builder

    Tag every link in your video descriptions and YouTube Ads.

    Open variant

    For Google Ads campaigns

    Google Ads UTM Builder

    Build URLs with proper utm_source=google and utm_medium=cpc tagging.

    Open variant

    For X / Twitter campaigns

    X (Twitter) UTM Builder

    Tag every tweet, thread, and X Ad with attribution-ready UTMs.

    Open variant

    For Reddit posts and ads

    Reddit UTM Builder

    Tag organic posts, comments, and Reddit Ads with proper UTMs.

    Open variant

    For Pins and Promoted Pins

    Pinterest UTM Builder

    Tag every Pin and Promoted Pin so traffic is attributable in your analytics.

    Open variant
    Back to the full UTM Builder

    Get more from your links

    The Facebook UTM Builder is just the start. Create a free LinkPilot workspace to track every click, manage custom domains, and share securely with your team.

    No credit card required · Free forever plan