Facebook UTM parameters are tags added to the link in a Meta ad so your analytics tool can tell which campaign and ad sent each visitor. Enter them in the URL parameters field under Tracking in Ads Manager, and use Meta's dynamic values, such as {{campaign.name}}, to fill in names automatically.
| Parameter as Meta lists it | Filled in with |
|---|---|
| {{campaign.name}} | Campaign name when the ad was first published |
| {{adset.name}} | Ad set name when the ad was first published |
| {{ad.name}} | Ad name when the ad was first published |
| {{campaign.id}}, {{adset.id}}, {{ad.id}} | The numeric IDs |
| {{placement}} | Where the ad showed, such as facebook_feed or instagram_stories |
| {{site_source_name}} | fb, ig, msg, th or an (Audience Network) |
Updated
Meta reports clicks inside Ads Manager, but your website analytics only sees a visitor arriving. UTM tags join the two. Set them once per ad, let the dynamic values do the naming, and your Google Analytics reports will show each campaign and ad by name. The builder below writes the string for you.
Choose a value for each tag. The result goes in the URL parameters field, not in the website URL.
utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}Built in your browser. Meta fills the curly-brace values when someone clicks the ad.
Meta lists these values for the placement parameter. Collection format ads on Instagram placements do not support dynamic URL parameters.
| Placement | Value in reports |
|---|---|
| Facebook Feed | facebook_feed |
| Facebook in-stream reels | facebook_instream |
| Facebook Marketplace | facebook_marketplace |
| Facebook Right Column | facebook_right_column |
| Instagram Feed | instagram_feed |
| Instagram Stories | instagram_stories |
| Messenger Inbox | messenger_inbox |
| Threads | threads_stream |
| Audience Network native, banner and interstitial | audience_network_classic |
The first line is what goes into the URL parameters field. The second is what a visitor's address bar shows after Meta fills the values.
The campaign, ad and ad set names here are made up. Spaces in names arrive as %20.
utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}
https://example.com/spring-sale?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale&utm_content=video_a&utm_term=lookalike_1pct
A static parameter is plain text you type, like utm_source=facebook. A dynamic parameter is a placeholder in double curly braces that Meta swaps for real details when someone clicks. You can mix both in one string.
Meta's example tracks campaign and ad: utm_campaign={{campaign.name}}&utm_content={{ad.name}}. A campaign named Prospecting 2026 arrives as Prospecting%202026, because spaces in web addresses are written as %20.
Because dynamic names freeze at first publish, decide your naming pattern before launch: for example season, offer and audience joined with underscores, like spring_sale_lookalike. Underscores avoid the %20 clutter in reports.
Google's own guidance is to always set utm_source, utm_medium and utm_campaign; missing values show up as (not set) in reports. Add utm_content for the ad and utm_term if you want the ad set.
In the ad itself, under Tracking, in the field called URL parameters. Meta also offers a Build a URL parameter option there. Parameters set in Ads Manager override ones set elsewhere, such as Instagram's default URL parameters.
Meta fills {{campaign.name}}, {{adset.name}} and {{ad.name}} with the name used when the ad was first published. Renaming afterwards does not change the value; Meta says you need to publish a new campaign, ad set or ad for a new value.
Use one consistent lowercase value, such as facebook. If you want Facebook and Instagram split apart, use {{site_source_name}} instead, which Meta fills with fb, ig, msg, th or an.
GA4's Paid Social channel needs the source to match a known social site and the medium to match a paid pattern, such as cpc, ppc, retargeting or anything starting with paid. A medium of social puts the visit under Organic Social.
Meta notes a URL parameter only applies to the first page reached from the ad. Your analytics tool then keeps the session attribution as the visitor browses, but a later organic visit will not carry the tags.
Related: UTM builder, How to set up Google Analytics, Google Ads conversion tracking, Website heatmaps.
Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.
We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.