Guide
UTM parameters for Meta Ads
Meta Ads Manager will tell you which ad spent money. GA4 will not, unless the landing URL carries tags. Facebook and Instagram clicks without UTMs are a common reason “paid social is down” when the ads account looks fine. There is no gclid here. The campaign URL is the record.
Recommended values
| Parameter | Use | Example |
|---|---|---|
utm_source | Platform people saw | facebook, instagram |
utm_medium | Paid social, not cpc | paid_social |
utm_campaign | The program, one name | retargeting-spring |
utm_content | Ad or creative | carousel-a, hook-v3 |
utm_term | Optional ad set or audience | lal-purchasers |
utm_id | Optional Meta campaign ID | the numeric campaign id |
Decide whether Instagram placements use instagram or stay on facebook because the account is one Ads Manager. Either rule works. Two rules in one account do not. Write it in the sheet. Organic posts and bios use utm_medium=social so paid and organic stay split — that lives in UTM for social.
Why not cpc on Meta
GA4 default rules treat cpc as a paid-search-style medium. A facebook source with cpc often looks like Paid Search. That makes Search look like a hero and Paid Social look empty. Use paid_social. Confirm in the channel checker and in Unassigned if you already shipped Paid Social with a space.
Where to put the URL in Ads Manager
Build the full tagged URL in the UTM builder (Meta ads preset), then paste it as the website URL on the ad. If the account uses the URL parameters field, keep the same lowercase keys. Dynamic tokens from Meta can fill campaign or content — if those tokens include spaces or Title Case, either sanitize to slugs or accept fragmentation. After you publish, click the ad on a phone (or use ads preview) and confirm the address bar still has the UTM query after any redirect.
Example:
https://example.com/sale?utm_source=instagram&utm_medium=paid_social&utm_campaign=spring-sale-2026&utm_content=reel-hook-v2
What fbclid does and does not do
Meta appends fbclid for its own measurement. The click ID inspector will show it. GA4 does not turn fbclid into Session campaign. A URL that only has fbclid is still untagged for site reporting. Do not delete fbclid. Do not copy it into a UTM field. Add source, medium, and campaign yourself. Same story as gclid, inverted: Google can import from gclid; Meta cannot import a campaign name into GA4 from fbclid.
What usually breaks
- A shortener or Instant Experience that drops the query string.
- A new campaign name for every creative (use content instead).
- Mixed case: Facebook vs facebook.
- Medium
socialon a paid ad, which inflates Organic Social. - Advantage+ / catalog ads that inherit an old untagged destination.
Validate a live preview URL in the validator. Compare Google and Meta on the same program: Google Ads UTMs. If Ads Manager and GA4 still disagree after tags exist, read why the numbers differ before you rebuild the account.