Facebook Ads · UTM tracking

UTM Parameters for Facebook Ads: The Complete Tagging Guide

Quick answer

To add UTM parameters to Facebook Ads, put them in the ad's "URL parameters" field in Meta Ads Manager using utm_source=facebook and utm_medium=paid_social (or cpc), and let Meta's dynamic tokens like {{campaign.name}}, {{adset.name}}, and {{placement}} auto-fill the rest. Build the string with a free Facebook ads UTM builder such as Track Link's, which also tracks the resulting clicks free.

Facebook Ads has its own UTM quirks: a dedicated URL parameters field, dynamic tokens Meta substitutes at click time, and an fbclid parameter that gets appended automatically. Get the conventions right once and every ad maps cleanly to a row in Google Analytics or your tracking dashboard. This guide gives you the exact strings to paste.

Where UTM parameters go in Meta Ads Manager

You do not append UTMs to the destination URL by hand. At the ad level in Ads Manager, scroll to Tracking and use the "URL parameters" field. Enter the query string without the leading question mark — Meta joins it to your URL automatically. A clean default: utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}. The big advantage of this field over hardcoding UTMs in the URL is that it survives across ad duplications and pulls live names via dynamic tokens, so renaming a campaign updates the tag with no manual edits. Set it once at the ad level and copy it across the ad set.

Meta's dynamic URL tokens (the part people miss)

Meta substitutes these placeholders at click time, so you never type a campaign name twice: {{campaign.name}}, {{campaign.id}}, {{adset.name}}, {{adset.id}}, {{ad.name}}, {{ad.id}}, {{placement}}, and {{site_source_name}} (fb, ig, an, msg). Use names for human-readable reports and IDs for stable joins back to Ads Manager. A production-grade string: utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&placement={{placement}}. The placement token is the one most people skip — it separates Feed, Reels, Stories, and Audience Network traffic that Meta otherwise blends into one bucket.

Source and medium conventions that keep GA4 clean

Keep utm_source=facebook for every Facebook ad so all spend rolls up under one source. For medium, pick one convention and never mix: utm_medium=paid_social is GA4's recommended value and routes ads into the Paid Social channel group automatically; utm_medium=cpc also works but lands them in Paid Search-adjacent groupings unless you customize. If you run Instagram placements through the same Meta campaign, the {{site_source_name}} token already tells you ig vs fb — so keep source=facebook and read the split from that field rather than creating a second source. Lowercase everything: utm_source=Facebook and utm_source=facebook are two different sources in every analytics tool.

Build and test the link before you spend

Type these strings by hand and one stray ampersand silently breaks attribution. Use Track Link's free UTM builder at /tools/utm-builder to assemble the parameter string, then paste it into the Ads Manager URL parameters field. Before launching, preview the ad, click through, and confirm the resolved URL contains your real campaign name (not a literal {{campaign.name}}). Watch for Meta appending its own fbclid — that is expected and does not conflict with UTMs; your analytics reads utm_* and ignores fbclid. Tip: keep one reusable template per campaign objective so every new ad inherits the same correct tagging.

Track the clicks, not just the tags

UTMs label traffic; they do not count it on their own. Pasting a Track Link tracked URL as your ad destination logs every click on a first-party redirect before iOS App Tracking Transparency or cookie blocking can interfere — typically recovering 15-30% of iOS clicks the Meta Pixel under-reports. You get country, device, browser, and the full resolved UTM set per click, plus conversion tracking, in one dashboard. The free plan covers 10 links, 2,500 clicks per month, 1 custom domain, and the API — no credit card. Pro is $9.99/month for 100 links, 25,000 clicks, 5 domains, and a year of retention.

Facebook Ads UTM examples

Copy-paste conventions for common Facebook Ads campaigns.

Scenario
utm_source
utm_medium
utm_campaign
Standard conversion campaign, names for readable reports
facebook
paid_social
{{campaign.name}}
Granular ad-level tagging with placement split
facebook
paid_social
q3_retargeting
Boosted post, separated from Ads Manager campaigns
facebook
cpc
boost_spring_lookbook
Stable IDs for joining back to Ads Manager exports
facebook
paid_social
{{campaign.id}}

FAQ

Frequently asked questions

What is the correct utm_medium for Facebook Ads?

Use utm_medium=paid_social — it is GA4's recommended value and automatically routes your ads into the Paid Social channel group. utm_medium=cpc also works and is common, but it can land Facebook traffic in less intuitive channel groupings unless you customize GA4. Pick one convention and apply it to every ad so spend rolls up consistently.

Where do I add UTM parameters in Facebook Ads Manager?

At the ad level, open the Tracking section and use the "URL parameters" field. Enter the query string without the leading question mark (e.g. utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}). Meta joins it to your destination URL automatically and substitutes any dynamic tokens at click time. Do not hardcode UTMs in the destination URL itself — the dedicated field survives ad duplication.

What are Facebook's dynamic UTM tokens?

Meta replaces these placeholders at click time so you never type a name twice: {{campaign.name}}, {{campaign.id}}, {{adset.name}}, {{adset.id}}, {{ad.name}}, {{ad.id}}, {{placement}}, and {{site_source_name}}. Use the .name tokens for human-readable analytics reports and the .id tokens when you need stable values to join back to Ads Manager exports. The {{placement}} token separates Feed, Reels, and Stories traffic that Meta otherwise blends together.

Does Facebook strip or change UTM parameters?

No. Facebook preserves standard utm_ parameters on ad clicks. It does append its own fbclid parameter, which is expected and harmless — your analytics tool reads the utm_ values and ignores fbclid. If you tag with Meta's URL parameters field, your UTMs and the fbclid coexist cleanly in the final landing-page URL.

How do I track clicks on my Facebook ad links for free?

Build the UTM string with a free Facebook ads UTM builder like Track Link's at /tools/utm-builder, then use a Track Link tracked URL as your ad destination. It logs every click on a first-party redirect — capturing country, device, browser, and the full UTM set — before iOS App Tracking Transparency can interfere. The free plan covers 10 links and 2,500 clicks per month with no credit card.

Track every Facebook Ads link for free

Build tagged links with the free UTM builder, then track clicks, sources, and conversions in real time. 10 links and 2,500 clicks/month free — no credit card.

Start tracking free