← All resources Guide

Microsoft Ads: UET and the Conversions API through your server container

Microsoft Advertising measures with the UET tag in the browser and, since 2025, with a Conversions API that takes the same events from your server. The server side keeps counting when UET is blocked and carries hashed customer data for enhanced conversions. One thing is different from Meta or TikTok: the two sides do not deduplicate against each other, so you choose where each goal counts.

What you need

Step 1 · Add it to your measurement setup

Open the domain in your dashboard, go to its Settings page and find Measurement setup. Tick the destination card and fill in the IDs below. Tokens and API keys are stored encrypted, outside the setup itself. The setup sends nothing on its own: it is the reference the tracking audit and the template builder work from, so what you fill in here is what the audit expects to find in your containers.

Step 2 · Generate and import the containers

Go to Resources → GTM templates in the dashboard. Under Destinations, tick the platform (Google Analytics 4 and the e-commerce events are on by default; pick the Shopify, WordPress or Shopware data layer if your site runs one of our plugins). Fill in the same IDs on the next step, choose Web + server under Containers and download the two JSON files.

In Google Tag Manager, open each container, go to Admin → Import Container, choose the matching file, pick a new workspace and Merge. The import only adds: new tags, triggers and variables with their own names, plus the gallery templates they need. Check the result in Preview, then publish.

Step 3 · What the import contains

Web container: Tag Manager's built-in Microsoft Advertising tags: Bing - _Config loads UET on every page, and view_item, add_to_cart, begin_checkout and purchase are sent as UET events with value and currency.

Server container: the Microsoft Ads UET Conversion API template (Stape, from the gallery) as one tag that listens to every GA4 event and maps the event names itself, with hashed email and phone, IP address, user agent and msclkid. With a customer ID filled in, the tag also runs the ID sync.

Step 4 · Choose where each goal counts

Microsoft deduplicates a UET event against a Conversions API event only when both carry the same event ID, and Tag Manager's built-in UET tag cannot send one. Build your conversion goals in Microsoft Advertising on one source per goal: the Conversions API events for purchases and leads, UET for anything you only track in the browser. Running both for the same goal doubles the count.

Step 5 · Enhanced conversions

The server tag sends the hashed email and phone it finds on the event. Our Shopify app, WordPress plugin and Shopware plugin push those fields on purchases and leads; on a custom site, push user_data with the event. Switch enhanced conversions on for the UET tag in Microsoft Advertising.

The imported tags carry the consent settings of the reference containers they were copied from. Check them against your own consent setup before you publish: a browser pixel should require ad_storage under Additional consent checks or fire on your consent tool's event, and the server tags should only send when the hit carries ad consent. The audit's consent checks and the guide on tags that fire before consent show how to verify both.

Step 6 · Test it

Use the UET Tag Helper browser extension for the browser side. For the server side, Microsoft Advertising → Conversion tracking shows the Conversions API events arriving under the UET tag within a few hours.

On the Measurebase side, open the domain's Request logs: a browse through your site should show GA4 events arriving at your server container with a green 200. Open the server container's Preview mode to see the server tag fire on those events, with the event ID and the user data it picked up.

Click IDs

Safari and Brave strip msclkid from landing URLs. Click ID Restorer restores it from a backup parameter: set a Final URL suffix such as backup_msclkid={msclkid} in Microsoft Advertising and Measurebase swaps the real parameter back in on every request. Cookie Keeper keeps the UET cookies past Safari's 7-day cap.

What the tracking audit checks

Every night the tracking audit compares your measurement setup with your live containers and your site. For every destination it checks that the tags exist in the container your setup expects, that the ID in the container matches the one in your setup, that a browser pixel and its server tag share an event ID, and which of the platform's cookies are still set after a visitor rejects. Findings open an alert the first time they appear; what the audit can fix, it proposes as a change in a separate Measurebase workspace in your container.

Frequently asked questions

Does the import cover Microsoft Clarity?

Clarity is its own destination in the template builder and the measurement setup, browser only. If you load Clarity through UET instead, the audit cannot read a project ID from the page and skips that check.

Continue reading

Ready to move your tagging to Europe?

Start free, no credit card required. Live in about 15 minutes.

Start free