Facebook campaign tracking with UTM
Facebook commonly opens links inside its in-app browser, which frequently strips the web referrer, so untagged Facebook clicks land in direct. This page gives a recommended utm_source=facebook structure for organic posts and Facebook Ads, and the rule that no audience data belongs in a public URL.
Recommended structure
Use one lowercase convention for every Facebook link you control, and separate organic from paid in utm_medium so reach and spend stay comparable:
- utm_source=facebook
- utm_medium=social for organic posts; paid (or cpc) for Facebook Ads
- utm_campaign=<your-campaign-name>
- utm_content=<optional, to compare posts or ad creatives>
Why the in-app browser matters
Links opened from the Facebook app typically render in its in-app browser rather than the system browser. That context frequently delivers no usable web referrer to your site, so an untagged click is attributed to direct.
Because the UTM tags live on the destination URL you control, they are read on arrival no matter how the link was opened. That is what keeps Facebook from silently disappearing into your direct traffic.
How it appears in analytics and logs
A visit with utm_source=facebook confirms a Facebook-driven click independent of the referrer. Without tags, the in-app browser usually sends the visit to direct, undercounting Facebook.
Diagnostic use case
Tag the Facebook links you post and the ads you run so visits are attributed to Facebook even when the in-app browser drops the referrer.
What WebmasterID can help detect
WebmasterID reads utm_source=facebook at ingest and attributes the visit to your Facebook campaign even when the referrer is gone, so organic and paid Facebook traffic appears as a real source instead of direct.
Common mistakes
- Posting untagged links and then under-crediting Facebook when the referrer is lost.
- Mixing organic and paid Facebook under one utm_medium so reach and spend cannot be compared.
- Encoding audience or targeting detail into utm_content as if it were a label.
Privacy and accuracy notes
Keep Facebook UTM values generic — campaign and creative labels only. Never encode a profile name, audience ID, or any targeting detail. UTM values are public in the URL and logs.
Related pages
- Instagram campaign tracking with UTM
Instagram allows few clickable links, so most traffic flows through a link-in-bio or a Stories link. Tagging those destinations with UTM is the only reliable way to measure Instagram. This page gives a recommended utm_source=instagram structure and the rule that no personal data belongs in a URL.
- UTM and privacy: what never goes in a link
Every UTM parameter is visible in the address bar, browser history, referrer headers, and server logs. This page sets the hard rule: a campaign URL must never carry personal data or a secret, and explains exactly where these values leak so the rule is concrete, not abstract.
- Campaign links (docs)
Build UTM-tagged links that survive in-app browsers.
Sources and verification notes
- MDN — Referrer-PolicyBackground on why in-app browsers commonly strip referrers.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.