Resources URL & UTM Builder
URL & UTM Builder
Every link carries the same parameter names, from one vocabulary, with the names in the traditional fields and every ID in a field of its own. Then meta / instagram means the same thing in every report, and the platform fills in every name it can.
Runs in your browser. Nothing you type or paste leaves this page.
Set it once, and the platform fills in the names and IDs at every click.
Where it goes
Ads Manager, each ad, Tracking, URL parameters
utm_source=meta&utm_medium={{site_source_name}}&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&utm_campaignid={{campaign.id}}&utm_adgroupid={{adset.id}}&utm_adid={{ad.id}} The medium
{{site_source_name}} fills in where the ad was seen: fb, ig, msg or an. Reports read them as facebook, instagram, messenger and audience_network, the Platform column in Meta’s spend report.
- Check each dynamic value’s name against the URL parameter builder in Ads Manager before the ads go live.
- Leave Meta’s own click ID on. It adds fbclid at the click.
Where it goes
Account settings, Final URL suffix, so every campaign inherits it
utm_source=google&utm_medium={_channel}&utm_campaign={_campaign}&utm_term={keyword}&utm_campaignid={campaignid}&utm_adgroupid={adgroupid}&utm_adid={creative} The medium
Google has no dynamic value for the campaign type or the campaign’s name, so each campaign gets two custom parameters, channel and campaign. The suffix reads them as {_channel} and {_campaign}. Rename a campaign and update its campaign parameter too. The campaign ID never goes stale.
Each campaign’s custom parameters
In each campaign’s URL options, under custom parameters.
channelsearchcampaigntype a name above
- Parameters that don’t apply arrive empty. A Performance Max click has no keyword, and that’s expected.
- Google’s ads have no names, so utm_content stays empty and the ad’s ID arrives in utm_adid.
- Leave auto-tagging on. It adds gclid, gbraid or wbraid at the click.
Where it goes
Account settings, Final URL suffix
utm_source=microsoft&utm_medium={_channel}&utm_campaign={Campaign}&utm_term={keyword}&utm_campaignid={CampaignId}&utm_adgroupid={AdGroupId}&utm_adid={AdId} The medium
Microsoft fills in the campaign’s name with {Campaign}, but not its type, so each campaign gets a custom parameter named channel, read as {_channel}.
Each campaign’s custom parameters
In each campaign’s URL options, under custom parameters.
channelsearch
- Microsoft’s ads have no names, so utm_content stays empty and the ad’s ID arrives in utm_adid.
- Campaigns imported from Google keep their own suffix and custom parameters. Check them after each import.
- Leave auto-tagging on. It adds msclkid at the click.
Where it goes
Campaign Manager, each ad set’s URL tracking parameters. Add each key, then pick Static or Dynamic
| Key | Type | Value |
|---|---|---|
utm_source | Static | linkedin |
utm_medium | Static | sponsored_updates |
utm_campaign | Dynamic | Campaign name (old label: Campaign group name) |
utm_term | Dynamic | Ad set name (old label: Campaign name) |
utm_content | Dynamic | Ad name (old label: Creative name) |
utm_campaignid | Dynamic | Campaign ID (old label: Campaign group ID) |
utm_adgroupid | Dynamic | Ad set ID (old label: Campaign ID) |
utm_adid | Dynamic | Ad ID (old label: Creative ID) |
The medium
LinkedIn has no dynamic value for the campaign type, so the medium is typed in once per ad set, in the value LinkedIn’s reporting uses.
Each ad set’s medium
- LinkedIn renamed its levels from October 2025. A campaign group is now a campaign, a campaign is an ad set, and a creative is an ad. An account still showing the old labels picks the values in brackets.
- Message Ads and Conversation Ads don’t take dynamic values. Type every value in as Static, once per ad set.
- Give the Audience Network its own ad sets, or leave it off. A link can’t say whether a click came from the feed or from off LinkedIn.
Where it goes
TikTok Ads Manager, each ad’s URL parameters
utm_source=tiktok&utm_medium=__PLACEMENT__&utm_campaign=__CAMPAIGN_NAME__&utm_term=__AID_NAME__&utm_content=__CID_NAME__&utm_campaignid=__CAMPAIGN_ID__&utm_adgroupid=__AID__&utm_adid=__CID__ The medium
__PLACEMENT__ fills in where the ad ran. Add the values you see arrive to the vocabulary, in the wording TikTok’s own spend report uses.
- TikTok calls the ad group the AID and the ad’s creative the CID.
- Upgraded Smart+ campaigns use __ADID_V2_NAME__ and __ADID_V2__ for the ad’s name and ID.
- Leave TikTok’s click ID on. It adds ttclid at the click.
For the links you place by hand. Pick what the link is for, and the source and medium follow the vocabulary.
Your link
Add a landing page and a campaign to build the link. Your list
Links you add show up here, ready to download as one file.
Paste any link, from an ad, an email or a report, and see what each parameter is doing and what will break.
The rules every link follows
- Names in the traditional fields, IDs in their own. utm_campaign, utm_term and utm_content hold the names. utm_campaignid, utm_adgroupid and utm_adid hold the platform’s IDs, so your reports join to the platform’s reports one to one, even after a campaign is renamed.
- One vocabulary. Every source and medium comes from one list, and a new value goes on the list before the first link that uses it.
- The medium is the first cut of the platform’s spend, in the value its own report uses. Never “paid” and never “organic”. Your own posts get content, and email gets email. GA4’s default channel groups only count a medium as paid when it says cpc, ppc or paid, so if your team reads GA4, give it a custom channel group built from this vocabulary.
- Lowercase, with hyphens or underscores. Never spaces.
- Nothing personal in any address. Not in an ad’s link, a redirect or the thank-you page.
- Leave the platforms’ click IDs on, and capture them with the lead.
- One test click before a campaign spends, to see every parameter arrive filled in.
Why these rules: Tag every link the same way, in the guide Implementing Signals and Attribution for Power Law Businesses.
The full version
In ABPRO_, the maps turn every tag into the source, medium and campaign your reports read, fold the old spellings in, and tie each lead to the spend that brought it in.
Book an ABPRO_ demoNew tools and templates by email
New articles, research and tools for revenue teams, the week they come out.