Microsoft Ads gets skipped in most conversion-tracking conversations, which is exactly why it's an easy win. Its UET tag plus offline conversion import does the same job as everyone else's server-side setup, on a channel with less competition.

What UET actually is

Universal Event Tracking is Microsoft's pixel equivalent. It tracks web conversions, powers remarketing audiences, and is the base layer everything else builds on.

On its own it's browser-side, so it has the same fragility as any pixel. The value comes from what you add to it.

Enhanced conversions and the server-side layer

Microsoft lets you send hashed first-party data with UET, its version of enhanced conversions, which lifts match rates the same way CAPI user_data does. For anything that closes off-site, there's an offline conversion import that ties CRM deals back to the click.

The MSCLKID is the whole trick

Like gclid and fbclid, Microsoft stamps each ad click with an msclkid. Capture it and everything else falls into place:

  • Turn on auto-tagging so the msclkid appears on your landing pages.
  • Store it in a cookie and a hidden form field, so it travels with the lead into your CRM.
  • Upload it later with the offline conversion, so Microsoft can match the deal to the click.

Setting up offline import

  1. Install UET and define your conversion goals.
  2. Enable enhanced conversions to send hashed email with web events.
  3. Export CRM deals with the msclkid, the conversion time, and the value.
  4. Upload them by file, by API, or by a scheduled auto-import from a data source.

Where it breaks

  • Auto-tagging is off, so there's no msclkid to match on and offline import does nothing.
  • The conversion time sits outside the window, so Microsoft won't attribute it.
  • Value or currency doesn't match your books, so ROAS looks wrong.
  • Consent isn't respected on the hashed data you send.

Enhanced conversions vs offline import

These solve two different problems, and you usually want both. Enhanced conversions lift the match rate on your online conversions by sending hashed first-party data with UET. Offline import brings in the conversions that never happened online at all.

Run enhanced conversions for the web funnel and offline import for CRM-closed deals, and Microsoft sees the whole journey instead of just the click.

Consent and hashing

The hashed data you send still comes with obligations. Respect consent before you send email or phone, and hash with SHA-256 after normalizing, or Microsoft rejects the match just like every other platform.

Treat this the same way you treat Meta CAPI user_data, because the rules are effectively the same.

What good looks like

A healthy setup shows web conversions with a lifted match rate, offline deals importing on schedule with the msclkid attached, and ROAS that reconciles with your books. Check that the msclkid is actually present on imported conversions, because that single field is what makes offline import work at all.

If offline conversions import but attribute to nothing, the msclkid is missing or auto-tagging is off, nine times out of ten.

One habit pays off more than any setting: store the msclkid alongside every lead in your CRM from day one, even before you build the import. Retrofitting it later means the deals you most want to measure are exactly the ones missing the field, and you can't add it after the click is gone. Capture it early, and you can measure whenever you're ready.

Microsoft Ads gets skipped, and that's the opportunity: UET plus offline import gives you the same server-side, revenue-aware measurement as the big platforms, with less competition for the clicks. Capture the msclkid and the rest follows.

Want a stronger data analyst role or a raise? Grab the FREE Product Analyst Playbook and get the exact roadmap to your next offer.