How to use the UTM link builder
Paste the landing page URL.
Pick a preset for the platform, or start from a blank set of fields.
Adjust source, medium and campaign, and optionally term, content and campaign ID.
Copy the full URL, or copy only the parameters into the URL parameters field in Meta Ads Manager.
Anatomy of a UTM link
- URL=landing page ? utm_source & utm_medium & utm_campaign & utm_term & utm_content
- Source / medium=facebook / paid_social
- utm_source
- Where the traffic comes from: the platform or site, such as facebook, instagram, tiktok or google.
- utm_medium
- The type of channel, such as paid_social, cpc or email. Analytics tools use it to group traffic into channels.
- utm_campaign
- The campaign name or a fixed campaign code.
- utm_term
- Originally the paid search keyword. On social it is commonly used for the ad set or audience.
- utm_content
- Which ad or creative was clicked, useful for comparing creatives inside a campaign.
- utm_id
- A campaign ID. Google Analytics 4 uses it to join cost data imports with sessions.
Parameter names are fixed, but values are case-sensitive in most analytics tools, so facebook and Facebook are reported as two sources.
Worked example
One parameter string for every Meta ad
- Landing page: https://example.com/products/serum.
- Preset: Facebook, which fills in Meta's dynamic parameters.
- Result: https://example.com/products/serum?utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_id={{campaign.id}}&utm_term={{adset.name}}&utm_content={{ad.name}}
- When the ad is served, Meta replaces each placeholder with the real campaign, ad set and ad names.
Naming conventions that survive scale
UTM values are case-sensitive in most analytics tools, so Facebook, facebook and FB become three different sources. Pick one convention, write it down and enforce it across the team.
- Lowercase everything.
- Use underscores or hyphens instead of spaces.
- Keep source as the platform (facebook, instagram, tiktok, google) and medium as the channel type (paid_social, cpc, email).
- Put the variable parts, such as campaign, audience and creative, into campaign, term and content rather than source or medium.
- Prefer IDs for reporting joins: names change when someone renames a campaign, IDs do not.
Meta dynamic parameters
Instead of hard-coding names, Meta can fill values in when the ad is served. Add them in the URL parameters field at the ad level so they apply to every link in the ad.
| Parameter | Filled with |
|---|---|
| {{campaign.name}} | Campaign name |
| {{adset.name}} | Ad set name |
| {{ad.name}} | Ad name |
| {{campaign.id}}, {{adset.id}}, {{ad.id}} | Numeric IDs that stay the same when you rename things |
| {{placement}} | Where the ad was shown, such as Facebook Feed or Instagram Stories |
| {{site_source_name}} | Which Meta app served the ad: fb, ig, msg or an |
Getting traffic into the right GA4 channel
Google Analytics 4 assigns sessions to channels using source and medium. For traffic to land in Paid Social, the source should be a recognised social site, such as facebook or instagram, and the medium should signal paid traffic, for example paid_social, cpc or ppc. A medium of social on its own is generally treated as Organic Social.
- Never tag internal links on your own site; doing so overwrites the original source of the session.
- Leave Google Ads auto-tagging on. GA4 relies on it for Google Ads data, and manual UTMs mainly help other analytics tools.
- Open a tagged link in a private window and check it in real-time reports before launch.
Questions and answers
What are UTM parameters?+
Tags added to the end of a URL that tell analytics tools where a visit came from: utm_source, utm_medium and utm_campaign, plus optional utm_term, utm_content and utm_id.
Which UTM parameters are required?+
Source is the essential one, and most teams treat source, medium and campaign as required so that every visit can be attributed to a channel and a campaign. Term, content and ID are optional but useful for comparing audiences and creatives.
How do I add UTMs to Facebook ads?+
In Ads Manager, open the ad, find the Tracking section and paste the parameter string (everything after the question mark) into the URL parameters field. Meta appends it to your website URL. Use dynamic parameters such as {{campaign.name}} so each ad fills in its own values.
Do UTM parameters affect SEO?+
Not when they are used on paid ad links. Avoid them on internal links and on links you want search engines to index, and set a canonical URL on landing pages so tagged versions are not treated as separate pages.
Should utm_source be facebook or fb?+
Either works if you are consistent. Many teams use facebook and instagram, or let Meta fill in {{site_source_name}}, because recognisable source names map cleanly to analytics channel groups.
Why do my reports show {{campaign.name}} literally?+
The placeholder was not replaced, usually because the link was opened outside an ad, for example when testing it in a browser, or because it was not entered in a format Meta recognises. Put dynamic parameters in the URL parameters field and check the spelling and the double braces.