How to Add UTMs to Your Meta Ads (And Why Meta’s Reporting Isn’t Enough)
If you’re running Meta ads, you can add UTM parameters directly inside Ads Manager— at the ad level, under “Build a URL parameter.” Meta even has dynamic fields that auto-populate campaign and ad details so you’re not typing everything manually.
That’s the short answer.
But here’s the thing: why you add UTMs matters just as much as how. Meta’s reporting is built to make Meta look good. It will take credit for a conversion any time its pixel was involved — even if your ad was just one small touch in a much longer journey. UTMs let Google Analytics tell you the full story.
By the end of this post, you’ll know exactly where to add UTMs in Meta, what to put in each field, and how to set yourself up to actually use that data.
Want to see your UTM data in one clean dashboard— for free?
My Traffic Sources Dashboard is a free Data Studio (formerly Looker Studio) template that shows you where your traffic is coming from and whether it’s converting. [Grab the free dashboard →]
In this post
- Why you can’t just trust Meta’s reporting
- How to add UTMs inside Meta Ads Manager
- What to put in each parameter field
- The one thing most people miss
- How to see your UTM data
- You now know where your ads actually fit
Why you can’t just trust Meta’s reporting
Meta’s ad platform is powerful. But its reporting has a built-in bias, and it’s worth understanding before you take those numbers at face value.
When someone sees your ad and then converts— whether that happens five minutes later or five days later— Meta’s pixel is going to claim that conversion. Even if they also clicked a link in your email. Even if they found you through organic Instagram first. Even if your ad was just a reminder at the end of a much longer journey.
That’s not necessarily bad data. It’s just incomplete data.
Google Analytics, on the other hand, can show you where that person actually came from — and where your ad fit in the sequence. Was it the first thing they clicked? The last? Somewhere in the middle? That context changes how you evaluate whether your ads are actually working.
UTMs are how you get that information into Google Analytics. Without them, your Meta ads traffic will be lumped in with your organic social traffic— and I dont know about you, but I definitely want to be able to separate the clicks I paid for from the clicks that came from my organic content.
How to add UTMs inside Meta Ads Manager
Meta makes this easier than most platforms. Here’s where to find it.
When you’re building or editing an ad, go to the ad level (not campaign, not ad set— the ad itself). Scroll down to the Tracking section. You’ll see a link that says “Build a URL parameter.” Click that.

This opens a form where you can fill in your UTM fields. When you fill these in, Meta will generate the full parameter string and append it to your destination URL automatically.
If you fill in the boxes here:

It’ll automatically generate the full UTM parameter string and add it to the ad for you:

One important note before you start
You need to do this for every single ad that links away from Meta.
UTMs don’t apply at the campaign or ad set level — they live on the individual ad. So if you’re adding them to an existing campaign, you’ll need to go through this process ad by ad.
For new campaigns, do it on your first ad and then duplicate it however many times you need. Much faster.
What to put in each parameter field
Here’s a breakdown of each field and what to use.
Campaign Source
This tells GA4 which platform the traffic came from. Some people simply type facebook or instagram depending on where the ad is running — or just facebook if they’re running placements across both.
The better approach is to use Meta’s dynamic parameter {{site_source_name}} which will automatically populate facebook or instagram based on where the placement ran.
Campaign Medium
This is how GA4 knows it’s paid social traffic. I typically recommend paid-social, though some people use cpc. Either works— just be consistent across all your paid social platforms so you can filter by medium later.
Campaign Name
You could use Meta’s dynamic parameter {{campaign.name}} here and Meta will automatically pull in your campaign name. No manual updates needed when you duplicate.
But I don’t— because I want to connect data across platforms. If I’m running a Black Friday sale, I use black-friday as my campaign name everywhere — Meta ads, email, organic social, podcast appearances, YouTube, collabs. Then I can filter down to black-friday in GA4 and see total traffic from every channel in one view, without hunting down each slice individually.
That only works if your UTM naming is consistent across every place you share a link. Most people set up UTMs on their ads and stop there, but the same logic applies anywhere you’re promoting something. Without a shared naming strategy, your data ends up as a pile of one-off labels that don’t connect.
This is exactly the kind of UTM strategy I teach inside The Data-Backed Entrepreneur® — so every channel speaks the same language and you can actually see the full picture.
Campaign Content
Use {{ad.name}} as a dynamic parameter here. This automatically labels each ad individually so you can see which creative is actually driving clicks and conversions— without manually naming anything.
BONUS— The parameter Meta forgot: Campaign Term
Meta doesn’t include a field for utm_term by default, which is frustrating given how widely it’s used elsewhere. But you can add it manually.
Click “Add Parameter” and type utm_term as the key. Then use {{adset.name}} as the dynamic value. That way if you’re testing different audiences or strategies across ad sets, you can see exactly which ones are driving traffic and conversions in your data.
Here’s what it looks like when it’s all done

The one thing most people miss
Setting up UTMs on your Meta ads is a great start. But UTMs are only as useful as the strategy behind them.
If your campaign names don’t match across Meta, email, organic social, and everywhere else you’re promoting something— your data stays fragmented. You’ll have tracking, but you won’t have the full picture.
A UTM strategy means every channel speaks the same language, so you can see total campaign performance in one place instead of piecing it together manually. It’s one of the first things we build inside The Data-Backed Entrepreneur® — and it changes how useful your data actually is.
How to see your UTM data
Once your UTMs are live and traffic is coming in, you can find your UTM data in Google Analytics 4 → Reports → Acquisition → Traffic Acquisition.
You can use filters or the dimension drop-down box to change which UTM parameters it includes, excludes, or breaks your data down by.

One heads up: GA4’s default reports don’t let you drill down to your Content and Term parameters, which is genuinely frustrating. It’s a good starting point, but if you want full visibility you’ll need to either build a custom Explore report in GA4, or use a dashboard.

Want an easier way to view your UTM data?
My free Traffic Sources Dashboard connects directly to your Google Analytics and pulls all your UTM data into one clean view— filter by any parameter, see your data sliced any way you need it. What would take 30+ minutes in GA4 takes about 30 seconds.
You now know where your ads actually fit
Meta’s reporting tells you one version of the story. UTMs— combined with GA4— tell you the full one.
Add your UTMs at the ad level, use dynamic parameters to save time, and don’t skip utm_term. It gives you a layer of insight most people never look at.
If you want to see all of this data in one place without logging into GA4 every time, the free Traffic Sources Dashboard was built for exactly this.