UET and the usual WooCommerce plugins
Universal Event Tracking (UET) is Microsoft Advertising's tag: a script (bat.js) that loads on your pages and reports visits and conversion events. Conversion goals, remarketing and automated bidding all depend on it. You create the tag in Microsoft Advertising under Tools → Conversion tracking → UET tag and use one tag per site.
On WooCommerce most stores add it with a tracking plugin. Pixel Manager for WooCommerce (Microsoft Ads is a pro feature) fires a purchase event for a goal and can pass email and phone when you enable enhanced conversions. PixelYourSite adds UET through its paid Microsoft UET Tag add-on. Conversios lists purchase, add to cart, begin checkout and form lead events for its Microsoft Ads pixel. Their Microsoft setup pages describe the browser tag (checked October 2026). For remarketing audiences and a first purchase goal, any of them is a reasonable start.
The UET Conversions API is the server-side route: your server sends events straight to Microsoft, authenticated with a token generated on the UET tag. It runs next to the tag, not instead of it, and it's what still reports the sale when the tag doesn't load.
Why WooCommerce loses Microsoft Ads conversions
- Ad blockers and privacy browsers that block bat.js. A blocked tag never reports the purchase, however well the plugin set it up.
- Payment methods that leave your site, such as PayPal, iDEAL in a bank app, Klarna or a hosted card page. The buyer pays and closes the tab, so the order-received page where the tag reports the purchase never loads.
- Bank transfer and cash on delivery. The thank-you page loads before the money arrives, so a browser tag either counts unpaid orders or misses the payment days later.
- Buyers who click an ad at work or on one device and buy later on another, so the click and the sale end up in different browsers.
- Cookie banners and script-delay settings in optimization plugins, which can hold the tag back on exactly the page that matters.
What Microsoft uses to match a purchase
- msclkid: the Microsoft click id added to your landing URL when auto-tagging is on. Saved at landing, it ties the sale to the click.
- The visitor id the UET tag stores in the _uetvid cookie, when the tag runs on your store.
- Email and phone, hashed with SHA-256. Settl normalizes the email the way Microsoft asks (lowercase, no dots or +tags before the @) before hashing.
- IP address and user agent from the visit.
- Order value, currency, the products and a transaction id.
Which WooCommerce orders should count as a purchase
Microsoft's automated bidding learns from the purchases you report. If unpaid orders count, it learns to find people who start a bank transfer and never finish it. Only paid orders belong in your purchase goal:
- Processing or Completed after a successful payment: send it.
- On hold (bank transfer, cash on delivery): wait until the order is actually paid.
- Pending payment, Failed, Cancelled, Refunded or a checkout draft: don't send it.
- Processing turning into Completed is the same order and must not create a second purchase.
How Settl sends WooCommerce orders to Microsoft
The Settl Tracking plugin saves the msclkid when a visitor lands from a Microsoft ad and keeps it in a first-party cookie for 90 days. If a UET tag from another plugin runs on your store, Settl's plugin also reads its _uetmsclkid and _uetvid cookies. At checkout the click is stored on the order itself, and hashed email and phone go along, which helps Microsoft match buyers who switched browsers before paying.
When WooCommerce marks the order paid, the plugin passes it to Settl, which sends a purchase event to the UET Conversions API from the server, with value and currency, the product ids, the msclkid, hashed email and phone, IP address and user agent. Custom statuses you use after payment, such as Shipped, still count as paid.
Every hour Settl asks the plugin for the paid orders of the past week and sends any that are missing. With server-side shopping steps switched on, page visits, product views, searches and add-to-carts go to Microsoft from the server as well.
Avoiding double counts
Settl's plugin doesn't add the UET tag to your store, so it can't share event ids with a tag that another plugin loads. If that plugin also reports purchases to the same UET tag, Microsoft can count each sale twice. Pick one source for the purchase goal and leave the other to page views and remarketing.
To check, compare a week of Microsoft Ads conversions with your paid WooCommerce orders from Microsoft clicks. Conversions close to double the real number mean two sources report the same sales; far fewer usually means the msclkid is missing from your landing URLs.
How to check it works
Click one of your own Microsoft ads and check that msclkid is still in the address bar when your store opens. A redirect that drops it means no click can be saved; auto-tagging must be on in your Microsoft Advertising account. Settl's hourly tracking health check also flags ad visits that arrive with an empty or template click id.
Then place a real order with a payment method that leaves your site and close the tab right after paying. In Microsoft Advertising, check your purchase goal under Conversion tracking: the conversion should still appear with your order's value. Microsoft reports conversions with a delay, so give it a few hours.