The five UTM parameters
| Parameter | What it tracks | Meta Ads example |
|---|---|---|
utm_source | The platform sending the traffic | facebook, instagram |
utm_medium | The marketing channel type | paid-social, cpc |
utm_campaign | The campaign name | summer-sale-2025, retargeting-cart-abandoners |
utm_content | The specific ad or variation | carousel-ad-v2, video-testimonial-sarah |
utm_term | The keyword or audience target | lookalike-2pct-purchasers, interest-yoga |
Only
utm_source, utm_medium, and utm_campaign are required. utm_content and utm_term are optional but extremely useful for Meta Ads, where you’re running multiple ad creatives and ad sets inside a single campaign.UTMs in plain English
Think of UTMs like the return address on an envelope. When a letter arrives at your door, you can see who sent it and where it came from. Without a return address, you have no idea. UTMs are the return address for your website traffic. They tell your analytics tool: “This visitor came from Facebook, through a paid ad, as part of the summer sale campaign, and they clicked the carousel version.”How UTMs work with Google Analytics
When a visitor clicks a UTM-tagged link, Google Analytics (GA4) automatically parses the parameters and populates these dimensions:| UTM Parameter | GA4 Dimension |
|---|---|
utm_source | Session source |
utm_medium | Session medium |
utm_campaign | Session campaign |
utm_content | Session manual ad content |
utm_term | Session manual term |
Setting up UTMs in Meta Ads Manager
Meta Ads Manager has a “URL Parameters” field at the ad level. You can use dynamic parameters that Meta fills in automatically:{{campaign.name}}, {{ad.name}}, and {{adset.name}} placeholders get replaced with the actual names from your account. This means you don’t have to manually type UTMs for every ad. Just set up the template once and your naming flows through automatically.
Common UTM mistakes
Inconsistent naming conventions
Inconsistent naming conventions
facebook vs Facebook vs fb vs meta. Google Analytics treats these as three separate sources. Pick one convention and stick with it across every campaign. Use lowercase for everything. Document your naming rules so anyone on the team follows the same format.Not using utm_content for ad-level tracking
Not using utm_content for ad-level tracking
UTMs on retargeting links causing self-attribution
UTMs on retargeting links causing self-attribution
If someone visits your site, gets retargeted, clicks the retargeting ad, and lands with fresh UTMs, GA4 credits the retargeting ad with a “new” session. This inflates retargeting performance and makes prospecting campaigns look worse than they are. Be aware of this when comparing UTM data across campaign types. Use assisted conversions in GA4 to see the full picture.
Forgetting to add UTMs at all
Forgetting to add UTMs at all
If you don’t add UTMs to your Meta ad URLs, Google Analytics has no way to distinguish paid Facebook traffic from organic Facebook traffic, or sometimes even from direct traffic. You’re flying blind. Every ad should have UTMs. No exceptions.
How UTMs relate to other tracking
| Tracking Method | Relationship |
|---|---|
| Meta Pixel | The Pixel tracks what happens on your site after someone clicks. UTMs track where they came from. You need both: UTMs for GA4 attribution, the Pixel for Meta attribution and optimization. |
| Conversions API | CAPI sends server-side conversion data to Meta. UTMs send click-level source data to GA4. They serve different systems but together give you two independent views of performance. |
| Attribution Models | Meta uses its own attribution model (default 7-day click, 1-day view). GA4 uses UTM data with its own models (data-driven, last-click). Comparing the two helps you understand where Meta over- or under-reports. |
| Conversions | UTMs don’t track conversions directly. They tag the traffic source. Your analytics tool then connects that source data to conversion events (purchases, signups, leads) to show which source drove results. |
UTM best practices for Meta Ads
Standardize your naming convention
Use lowercase, hyphens instead of spaces, and a consistent format. Example:
utm_source=facebook, utm_medium=paid-social, utm_campaign=summer-sale-2025. Write this down in a shared doc so everyone on the team uses the same format.Use Meta's dynamic URL parameters
Set up
{{campaign.name}}, {{adset.name}}, and {{ad.name}} in the URL Parameters field. This eliminates manual entry and keeps your UTMs in sync with your Ads Manager naming.Always include utm_content
Map
utm_content to your ad name. This is the only way to see ad-level performance in GA4. When you’re A/B testing creatives, utm_content tells you which version drove results outside of Meta’s own reporting.Audit your GA4 data monthly
Go to GA4 > Acquisition > Traffic Acquisition and filter by source/medium. Look for inconsistencies like
Facebook and facebook appearing as separate sources. Fix the naming at the source in Ads Manager.Cross-reference Meta and GA4 numbers
Compare Meta’s reported conversions with GA4’s UTM-attributed conversions for the same campaigns. Discrepancies are normal (different attribution windows, different tracking methods), but large gaps signal a tracking problem.
Track every dollar back to its source
AdAdvisor pulls your Meta Ads performance data into one dashboard alongside your cost metrics. When you pair that with proper UTM tracking in GA4, you get two independent views of what’s working. No more guessing which campaigns actually drive revenue.Try AdAdvisor Free
See campaign performance, costs, and trends in one place.
ROAS Calculator
Calculate whether your campaigns are actually profitable.
