Microsoft Ads (formerly Bing Ads) accounts for roughly 9% of search ad clicks in the US, but many advertisers skip conversion tracking entirely because they set up Google Ads first and never bother with the UET tag. That means Microsoft’s algorithm is bidding blind — no conversion signal, no optimization, just burning budget.
The Universal Event Tracking (UET) tag is Microsoft’s equivalent of the Google Ads global site tag. It goes on every page, tracks conversions, builds audiences, and feeds Smart Bidding. This guide covers the complete setup.
What the UET Tag Does
The UET tag is a single JavaScript snippet that:
- Tracks page loads — every URL visited on your site
- Reports conversions — purchases, leads, signups, whatever you define
- Builds audiences — remarketing lists based on behavior
- Measures revenue — dynamic values for ROAS bidding
- Enables auto-bidding — Target CPA and Target ROAS need conversion data
Unlike Google Ads, which has separate tags for conversion tracking and remarketing, Microsoft uses one tag for everything. Simpler architecture, fewer things to break.
Before You Start
You need:
- A Microsoft Ads account (sign up at ads.microsoft.com)
- Google Tag Manager installed on your site, or direct code access
- At least one campaign running or planned
If you’re also running Google Ads, you should have Google Ads conversion tracking set up first — not because it’s a dependency, but because most of your budget is probably there.
Step 1: Create Your UET Tag in Microsoft Ads
- Go to Microsoft Ads → Tools → UET tags
- Click Create UET tag
- Name it something clear: “Main Site UET” or “[Brand] UET”
- Click Save
- Copy the Tag ID (a numeric ID like
12345678)
You only need one UET tag per website. Unlike Google Ads where you might have separate conversion actions with separate tags, Microsoft uses one tag plus conversion goals defined in the platform.
Step 2: Install via Google Tag Manager
2a: Add the UET Tag
- In GTM, go to Tags → New
- Tag type: Microsoft Advertising Universal Event Tracking
- Enter your UET Tag ID from Step 1
- Set trigger: All Pages
- Save
That’s the base installation. Every page load now reports back to Microsoft Ads.
2b: Verify the Tag Is Firing
Three ways to check:
GTM Preview Mode:
- Enable Preview Mode in GTM
- Visit your site
- Look for the Microsoft UET tag in the “Tags Fired” panel
UET Tag Helper (Browser Extension): Microsoft provides the UET Tag Helper for Chrome/Edge. Install it, visit your site, and it shows whether the UET tag fired, what data it sent, and any errors.
Microsoft Ads UI: Go to Tools → UET tags. The status column shows:
- Tag active — receiving data (may take up to 24 hours after installation)
- Tag inactive — no data received (check installation)
- Unverified — just created, waiting for first hit
2c: Add the UET Tag to All Environments
The UET tag should fire everywhere your ads might send traffic:
- Main website
- Landing pages (including Unbounce, Instapage, etc.)
- Checkout flow (if on a separate domain)
- Mobile site (if separate from desktop)
If you’re running cross-domain tracking in GA4, you likely need the UET tag on all those domains too.
Step 3: Create Conversion Goals
The UET tag tracks page loads. Conversion goals tell Microsoft which page loads (or events) count as conversions.
Destination URL Goal (Simplest)
For tracking thank-you pages, order confirmations, etc.
- Microsoft Ads → Tools → Conversion goals
- Click Create conversion goal
- Type: Destination URL
- Name: “Purchase” or “Lead Form Submit”
- URL match: Choose the operator
- Equals to: exact URL match (
https://yoursite.com/thank-you) - Begins with: prefix match (
https://yoursite.com/order-confirmed) - Contains: substring match (
thank-you) - Regular expression: pattern match (advanced)
- Equals to: exact URL match (
- Set the Revenue value:
- Fixed value (e.g., $50 per lead)
- Variable (for ecommerce — see dynamic values below)
- Count: “Unique” for leads, “All” for purchases
- Save
Event Goal (For Custom Actions)
For tracking button clicks, form submissions, video plays, or any non-pageview action.
- Create a conversion goal with type Event
- Define the event by Category, Action, Label, and/or Value
- In GTM, create a custom event tag that sends these parameters
Here’s the GTM Custom HTML to fire a UET event:
<script>
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': {{transactionTotal}},
'currency': 'USD'
});
</script>
Replace {{transactionTotal}} with your GTM variable for order value.
Dynamic Revenue Tracking (Ecommerce)
For variable-value conversions like purchases:
- Create a conversion goal with Revenue → Variable selected
- In GTM, add a Custom HTML tag on your confirmation page:
<script>
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': {{transactionTotal}},
'currency': '{{currencyCode}}'
});
</script>
- Set trigger: Thank you page or purchase event
Platform-specific data layer variables:
| Platform | Revenue Variable | Transaction ID |
|---|---|---|
| Shopify | {{Shopify - Order Total}} | {{Shopify - Order ID}} |
| WooCommerce | {{DL - transactionTotal}} | {{DL - transactionId}} |
| Custom | {{dataLayer transactionTotal}} | {{dataLayer transactionId}} |
If you’re on Shopify and conversions aren’t tracking correctly, the root cause is often the same one that breaks Google Ads — check our Shopify conversion tracking guide for platform-specific fixes.
Step 4: Build Remarketing Audiences
The UET tag automatically collects visitor data for audiences. You just need to define the segments.
Default Audiences to Create
| Audience | Rule | Use Case |
|---|---|---|
| All Visitors (30 days) | Visited any page, last 30 days | Broad remarketing |
| Product Viewers | URL contains /product/ | Mid-funnel retargeting |
| Cart Abandoners | Visited /cart but NOT /thank-you | High-intent recovery |
| Converters | Visited /thank-you | Exclude from prospecting, build lookalikes |
| High-Value Visitors | Visited 5+ pages | Engaged audience for bidding boost |
How to Create an Audience
- Microsoft Ads → Tools → Audiences
- Click Create audience → Remarketing list
- Name it clearly
- Define the rules (URL contains, visited pages, etc.)
- Set membership duration (30, 60, or 90 days)
- Save
Audiences need at least 300 members before you can target them. At low traffic volumes, start with “All Visitors” and get more specific as traffic grows.
Step 5: Enhanced Conversions (Recommended)
Microsoft’s Enhanced Conversions work like Google’s Enhanced Conversions — you send hashed customer data (email, phone) alongside conversion events so Microsoft can match conversions even when cookies fail.
Enable in GTM
- Update your purchase event to include customer data:
<script>
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
'revenue_value': {{transactionTotal}},
'currency': 'USD',
'enh_ec_email': '{{hashedEmail}}',
'enh_ec_phone': '{{hashedPhone}}'
});
</script>
- Microsoft accepts SHA-256 hashed values. If your data layer provides plaintext, hash it first:
async function hashValue(value) {
const encoder = new TextEncoder();
const data = encoder.encode(value.trim().toLowerCase());
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join('');
}
- Enable Enhanced Conversions in Microsoft Ads → Tools → UET tags → Edit → Enhanced Conversions → On
Step 6: Import Google Ads Conversions (Optional)
If you’ve already set up Google Ads conversion tracking and want the same goals in Microsoft Ads:
- Microsoft Ads → Import → Import from Google Ads
- Connect your Google Ads account
- Select campaigns to import
- Microsoft will also import conversion goals
This saves setup time but creates a dependency. If your Google Ads tracking breaks, Microsoft Ads tracking breaks too. For critical conversion actions, set them up natively in Microsoft Ads.
Troubleshooting
UET Tag Shows “Inactive”
| Cause | Fix |
|---|---|
| Tag just installed | Wait 24 hours — Microsoft is slow to verify |
| GTM not published | Publish your GTM workspace |
| Tag blocked by consent | Check your consent banner — UET needs the same consent as Google tags |
| Wrong tag ID | Verify the tag ID matches your Microsoft Ads account |
Conversions Not Counting
| Symptom | Cause | Fix |
|---|---|---|
| Zero conversions | Goal URL doesn’t match | Check URL matching rules in conversion goal |
| Conversions counted but $0 revenue | Revenue variable not firing | Verify the UET event sends revenue_value |
| Duplicate conversions | No dedup mechanism | Add transaction ID to the event (same as Google Ads) |
| Delayed conversions | Normal processing lag | Microsoft Ads can take 3-4 hours to report conversions |
Conversion Numbers Don’t Match Google Ads
Microsoft Ads and Google Ads will always show different conversion numbers for the same campaigns. Different click windows, different attribution, different cookie handling. This is expected — the same way GA4 and Google Ads show different numbers.
Microsoft Ads vs Google Ads: Tracking Differences
| Feature | Microsoft Ads (UET) | Google Ads |
|---|---|---|
| Tags needed | 1 (UET does everything) | 2+ (Conversion Linker + Conversion Tag) |
| Audiences | Built into UET | Separate remarketing tag |
| Enhanced conversions | Supported | Supported |
| Offline conversions | Supported (via import) | Supported (via import) |
| Server-side tracking | Limited (CAPI in beta) | Mature (sGTM) |
| Attribution models | Last click, last touch | Data-driven, last click, others |
| Conversion lag | 3-4 hours | 1-3 hours |
Checklist
- UET tag created in Microsoft Ads
- UET tag installed via GTM on all pages
- Tag verified as “Active” in Microsoft Ads
- At least one conversion goal created
- Revenue tracking set up for ecommerce
- Enhanced conversions enabled
- Remarketing audiences defined
- First conversion visible in Microsoft Ads
The Quick Version
- Create a UET tag in Microsoft Ads, copy the Tag ID
- Add the Microsoft UET tag in GTM, firing on All Pages
- Create conversion goals (destination URL or event-based)
- Add revenue tracking for variable-value conversions
- Build remarketing audiences from visitor behavior
- Enable enhanced conversions for better match rates
Microsoft Ads is often cheaper per click than Google Ads, with less competition. But without conversion tracking, the algorithm can’t optimize — and you can’t measure whether that lower CPC actually translates to lower CPA.
Not sure if your conversion tracking is set up correctly across all platforms? Run a free scan — we check your UET tag, Google Ads tags, Meta Pixel, and more automatically.