How MSCLKID works
With auto-tagging switched on, Microsoft Advertising adds a parameter called msclkid to your landing page address whenever someone clicks an ad. The value stands for that one click. The UET tag on your site reads it, stores it in a first-party cookie under your own domain, and sends it back with any conversion that follows.
That is what closes the loop. A sale or an enquiry recorded on your site arrives at Microsoft carrying the identifier of the click that started it, so the platform can credit the right campaign, ad group and keyword. It is the same pattern Google and Meta use, with a different parameter name and a different tag reading it.
Why MSCLKID matters
Microsoft’s audience is smaller than Google’s, and that makes accurate attribution more valuable rather than less. A channel with modest volume is judged on a handful of conversions, so a few that go unrecorded can make a profitable account look like a failure and get it switched off. The identifier is what stops that happening.
It also carries the offline story. If your sales close by phone or in person, the identifier stored at the visit can be attached to the deal later and imported back as an offline conversion — which for a business selling anything considered is usually where the real money is, long after the click itself.
Where MSCLKID goes wrong
The biggest source of trouble is importing campaigns from Google Ads. The import brings the tracking templates with it, and a template written for Google’s click identifier will not carry Microsoft’s. The campaigns run, the clicks are paid for, and the conversions never come back. Anyone importing an account should check tracking templates before checking anything else.
The second is auto-tagging being switched off, or a redirect stripping unknown query parameters before the UET tag can read the value. The third is the UET tag itself being installed on the site but never firing on the pages that matter, which produces the same silence as having no identifier at all.
The pattern in all three is identical: the account looks like it has a performance problem when it actually has a measurement problem, and no amount of bid or budget work will fix it.
What to do about it
Click one of your own live ads and look at the address bar. If the parameter is not there, auto-tagging is off or something rewrote the URL between the ad and your page. Then complete a real conversion and confirm it appears in the Microsoft Advertising interface within the reporting delay the platform allows.
If you have imported campaigns from Google, open the tracking template on every campaign and clear or rewrite anything referring to Google’s identifier. Keep your UTM tags alongside it, since they feed your own analytics rather than Microsoft’s, and the two answer different questions. And treat the whole check as part of setting up Microsoft Ads properly rather than something to look at after a disappointing month — the earlier version of the same fix costs far less. If you also run Google campaigns, the equivalent parameter there is GCLID, and both need testing separately.