Loading tutorials…
Loading tutorials…
The Universal Event Tracking (UET) tag is Microsoft Ads' version of the Google Ads Conversion Tag. Without it working correctly, conversion tracking and remarketing are dead in the water. Here's the right way to install it.
Who this is forOwners launching Microsoft Ads who need to install the UET tag on a live site. Works for any site — WordPress, Shopify, custom React/Next.js, Webflow, Squarespace. Strongly recommended via Google Tag Manager rather than direct install.
What you'll need
Step 1
Microsoft Ads → Tools → UET tag → Create UET tag. Name it, copy the tag ID, save.
Open Microsoft Ads → click the Tools icon → UET tag.
Click "Create UET tag."
Name it descriptively: "MainSite-UET" or the domain (e.g., "everestx-com-UET"). Multi-domain advertisers should create one tag per domain.
Click "Save." Microsoft generates a numeric Tag ID (something like 12345678).
Copy the Tag ID and store it somewhere — you'll need it for GTM. Don't copy the full script if you're using GTM; you only need the Tag ID.
Step 2
Three options: Direct script in <head>, Google Tag Manager (recommended), or a platform-native integration (Shopify app, WordPress plugin).
Option A — Direct install. Microsoft generates a JavaScript snippet. You paste it before the closing </head> tag on every page. Simple but fragile — every theme update is a risk.
Option B — Google Tag Manager (recommended). Install once in GTM, manage all firing rules from a single UI, no theme edits.
Option C — Platform-native (Shopify Microsoft Channel app, WordPress plugin). Easiest but limits how you can extend the tag (custom events, enhanced conversions).
For this tutorial: GTM. If you don't have GTM installed, install it first (separate tutorial linked below).
Step 3
GTM → Tags → New → Tag Configuration → Custom HTML. Paste a Microsoft-provided GTM template or use the manual snippet. Trigger on All Pages.
Open GTM → Tags → New → name it "Microsoft UET - Base Tag."
Tag Configuration → choose "Custom HTML" (or use the GTM Community Template Gallery and search for "Microsoft UET").
Paste the UET JavaScript snippet. Replace the placeholder Tag ID with your real Tag ID from Step 1.
Triggering → choose "All Pages" (built-in trigger).
Save. Then click "Submit" at the top of GTM to publish the container. The tag is now live on every page.
Step 4
Install the UET Tag Helper Chrome extension. Visit your site. The extension shows whether the tag fired, the tag ID, and any errors.
Install the Microsoft "UET Tag Helper" Chrome extension from the Chrome Web Store.
Visit your site. Click the extension icon in the toolbar.
Expected output: a green checkmark, your Tag ID, and "Tag fired successfully."
If you see red or "No tags detected," check: (a) is the page actually loading the GTM container? (b) is the GTM container published? (c) is the Tag ID correct?
Walk through 5-10 different pages on your site (homepage, product pages, checkout, contact form). The tag should fire on every one.
Step 5
Microsoft Ads → Tools → UET tag. Your tag should show status "Active" within 24 hours of real traffic.
Wait 1-24 hours after install for Microsoft to register the tag.
Open Microsoft Ads → Tools → UET tag.
Find your tag. Status should change from "Unverified" to "Active" once Microsoft sees traffic from the tag.
Click the tag to see detailed health: pageviews per day, last received event, any error patterns.
If after 24 hours the status is still "Unverified," your tag is firing client-side but events aren't reaching Microsoft. Most common cause: ad blocker on your test browser. Test from a clean browser.
Step 6
Custom events let you track specific actions (form submits, video plays, add-to-cart) without relying on URL-based conversion tracking.
In GTM → Tags → New → name it "Microsoft UET - Custom Event - [event name]" (e.g., "Form Submit").
Tag Configuration → Custom HTML. Use this pattern: window.uetq = window.uetq || []; window.uetq.push("event", "form_submit", {"event_category":"lead", "event_value":1});
Triggering → create a new trigger for the action you want to track (form submission, button click).
Save and publish. Validate with UET Tag Helper that the event fires when the action happens.
These custom events become available as conversion goals in the next tutorial.
Common mistakes
Installing the script in the <body> instead of the <head>
What goes wrong: The tag fires late or not at all on fast-bouncing visitors. Microsoft attribution undercounts conversions for high-bounce traffic. About 10-15% of conversions go missing.
How to avoid: Always install before the closing </head> tag. If using GTM, the GTM snippet itself goes in <head>; the UET tag inside GTM then fires on the page-loaded trigger correctly.
Forgetting to publish the GTM container
What goes wrong: You save the UET tag in GTM, validate in Preview Mode (where it works), and assume it's live. It's not. UET Tag Helper shows red on the live site, but you don't notice for weeks.
How to avoid: After saving the tag in GTM, click Submit (top right) → name the version → Publish. Then validate on the live site with UET Tag Helper.
Not validating with UET Tag Helper on the live site
What goes wrong: Tag is configured but silently broken (CSP blocks it, theme caches it stale, ad blocker on your dev browser). You launch campaigns, get clicks, get no conversion attribution. 4-6 weeks lost before someone notices.
How to avoid: Always install the UET Tag Helper Chrome extension. Validate the tag fires on at least 5-10 representative pages immediately after install — and again 24 hours later to confirm Microsoft received the data.
Hardcoding the Tag ID across multiple sites
What goes wrong: One site's tag fires on a different brand's site. Microsoft mixes the data, attribution is broken on both, and the fix is a multi-week cleanup.
How to avoid: One UET tag per domain. Use clear naming. Never copy-paste a tag snippet without confirming the Tag ID matches the destination domain.
Ignoring the consent banner / GDPR
What goes wrong: EU visitors block UET via consent management platforms (CMPs). You see 30-50% lower conversion volume from EU traffic than you expected. Reporting looks broken when it's compliance working as intended.
How to avoid: Configure your CMP to wait for consent before firing UET (use GTM's Consent Mode v2). For non-EU traffic, the tag should fire immediately. For EU traffic, fire only on consent.
Installing UET twice (direct + GTM)
What goes wrong: Conversions double-count. Smart Bidding optimizes against inflated numbers. ROAS reports show 2x reality.
How to avoid: Audit the page source — search for the Tag ID. If it appears in both the raw HTML and in GTM, remove the direct install. Wait 7 days for data to clean up.
Recap
Done — what's next
How to set up Microsoft Ads conversion tracking (UET + offline)
Read the next tutorial
Hand it off
UET installs that 'mostly work' cost more than UET installs that are broken — because broken ones get fixed, while 'mostly working' ones quietly underreport conversions for months. A specialist installs and validates UET in one session for $30-60 in talent time. Ongoing tracking maintenance runs $200-400/mo.
See specialist rates
Yes — that's the recommended setup. One GTM container handles Google Ads Conversion Tag, GA4, Microsoft UET, Meta Pixel, and any others. Single source of truth for all tag firing.
Active means the tag is firing and Microsoft sees pageviews. It doesn't guarantee conversions are wired. Conversions need a separate goal setup (next tutorial). The UET tag is the foundation — conversion goals are built on top.
No — pick one. The Shopify Microsoft Channel app handles UET install + product feed automatically, which is easier but less flexible. GTM-based UET is more work but gives you custom event tracking and Enhanced Conversions.
Pageview data appears in Microsoft Ads within 1-24 hours of first install. Conversion goal data appears within 24-48 hours of the first conversion event firing. Remarketing audiences populate within 7 days.
Three usual causes: (1) your dev browser has an ad blocker that strips the network request, (2) the page firing the tag is staging, not production, (3) less than 24 hours has passed. Test from a clean browser on the live URL and wait the full 24 hours.
Microsoft Ads
Without working conversion tracking, every other decision in Microsoft Ads is built on guesses. This walks through UET-based goals AND offline conversion uploads — the path most DIY guides skip entirely.
Microsoft Ads
Microsoft Ads runs the same playbook as Google Ads with about 10% of the search volume and 30-50% cheaper CPCs. The setup is also where most accounts get permanently mis-structured. Here's the right path.
Microsoft Ads
LinkedIn profile targeting on Microsoft Ads is the most underused B2B advertising lever in the platform. Combined with in-market and custom audiences, you can build B2B campaigns that simply aren't possible on Google.