Microsoft Advertising UTM parameters: auto-tagging or your own
Microsoft Advertising can add UTM tags for you: utm_source=bing, utm_medium=cpc, the campaign name, the ad group name and the keyword. Turn it on under Campaigns, Settings, Account level options. For your own values, use the macros below. bing is on GA4's search list and cpc is a paid medium, so either way the click is Paid Search, unless the campaign name contains a word starting with shop.
The interactive UTM builder loads with this page, pre-filled for Microsoft Ads, and runs entirely in your browser.
It uses the same source and medium Microsoft's auto-tagging writes, so hand-tagged and auto-tagged clicks share rows. Google lists bing as a search engine and treats cpc as a paid medium, and GA4 calls that pairing Paid Search unless the campaign name trips its shopping rule.
Where to put it
Auto-tagging: hover over Campaigns, then Settings, Account level options. Under Auto-tagging of UTM, tick Add UTM tags to my destination URLs.
Choose replace or keep. Replace removes the UTM tags already on your URLs; keep adds only the ones that are missing.
Your own tags: paste the parameter string into a Final URL suffix, with no leading question mark, ampersand or hash. Microsoft won't accept a suffix that starts with one.
A suffix or tracking template on an ad or keyword overrides one set on its campaign or account, so set yours at the level it should apply.
Using manual UTMs and auto-tagging together? Check the result with Microsoft's URL test tool before launch.
Macros filled in at click time
Macro
Resolves to
{Campaign}
Campaign name
{CampaignId}
Campaign ID
{AdGroup}
Ad group name (asset group name in Performance Max)
{AdGroupId}
Ad group ID (asset group ID in Performance Max)
{AdId}
Numeric ID of the ad
{Keyword}
Keyword that matched the search
{QueryString}
Search query the person typed
{MatchType}
e (exact), p (phrase), b (broad) as served
{BidMatchType}
be, bp or bb: the match type you bid on
{Network}
o (Bing, AOL, Yahoo search), s (search partners), a (audience placements)
{Device}
m (mobile), t (tablet), c (desktop or laptop)
{TargetId}
Targeting IDs, e.g. aud-1234:kwd-5678
{msclkid}
Unique click ID
{lpurl}
Your final URL; tracking templates only
You won't find Microsoft's auto-tags anywhere in the Microsoft Advertising interface. They're added when the ad is shown, and the landing page URL you look at in the UI never changes. To see what a click really carries, use the URL test tool or take the landing page URL from a real click, then paste it into the link decoder to read each value.
utm_content is the ad group, not the ad. Auto-tagging fills utm_content with the ad group name, and utm_term with the keyword, or the product group's Criterion ID on product ads. It adds the five tags in order, source first and term last, and stops when the URL reaches its maximum length, so a long URL can lose the last ones. For one row per ad you need your own tag, such as utm_content={AdId}.
Mixing your tags with auto-tagging. The keep option leaves your existing tags alone and adds the missing ones, but Microsoft says it checks for UTMs in the tracking template. Manual UTMs in the final URL or the Final URL suffix, combined with auto-tagging, can produce duplicate tags. If you mix the two, put your own tags in a tracking template that starts with {lpurl}, and test it. If you don't need auto-tagging, turn it off and keep everything in the suffix.
Microsoft's codes are its own.{Network} returns o for Bing, AOL and Yahoo search results, s for search partner sites and a for audience placements. Google Ads has a macro with the same name that returns different letters, so label the two in any shared report; the Google Ads UTM builder lists Google's. {MatchType} is the match type that served the ad, and {BidMatchType} is the one you bid on. Bid on a broad keyword that serves on an exact search and {BidMatchType} returns bb while {MatchType} returns e.
An undefined custom parameter ships as text. Microsoft doesn't check that the custom parameters in a tracking template exist. Reference {_season} without defining it at any level and the landing page URL keeps the placeholder as written.
msclkid runs separately. Microsoft adds msclkid, its click ID, to landing page URLs by default, with its own checkbox under Account level options, so conversions still track when its cookie can't be returned. UTM auto-tagging, Microsoft notes, only works if your site accepts arbitrary URL parameters.
Questions
Does Microsoft Advertising tag landing pages with UTMs by itself?
It can, once you tick Add UTM tags to my destination URLs under Auto-tagging of UTM in Account level options. It then adds utm_source=bing, utm_medium=cpc, the campaign name, the ad group name as utm_content and the keyword as utm_term, at the moment the ad is shown.
Where do UTM parameters go in Microsoft Ads?
In a Final URL suffix, written without a leading question mark, ampersand or hash, or in a tracking template that includes {lpurl}. Templates and suffixes set on an ad or keyword override those set on the campaign or account.
What is msclkid?
Microsoft Advertising's click ID. It's added to landing page URLs by default so conversions can still be tracked when the Microsoft cookie can't be returned. You can turn it off under Account level options.