Why UET matters
UET (Universal Event Tracking) is the data backbone for Microsoft Advertising. Clean UET signals unlock:
- Accurate conversion reporting and bidding
- Audience building for remarketing/in-market layers
- Diagnostics to find leaks and scale efficiently
Prepare (what you need)
- Admin access to Microsoft Advertising
- Access to your site’s tag manager or codebase
- Clear KPIs (e.g., qualified lead, purchase, revenue)
- Test page(s) to validate goal firing end-to-end
Create & install the UET tag
- In Microsoft Advertising, go to Tools → UET → Create UET tag.
- Name it clearly (e.g., Site-wide UET – Brand.com).
- Install site-wide via your tag manager or just before </head> on every page.
- Publish and confirm the base page view signal is received.
// Pseudo-example: if installing manually, paste your official UET snippet here.
// Use Tag Manager where possible for reliability and versioning.
Define conversion goals
Create goals that map to business value. Mark only high-signal outcomes as Primary so bidding chases what matters.
Lead gen
- Primary: Qualified form submit / booked demo
- Secondary: Newsletter, ebook, time-on-site
Ecommerce
- Primary: Purchase (with revenue)
- Secondary: Add to cart, view content
Avoid double-counting: 1 user action → 1 conversion. If there are multiple steps, keep lower-signal steps as secondary.
// Option A: Tag Manager
// Trigger: Form submit → Event: lead_submit (goal: Qualified lead)
// Option B: Code hook after successful submit
if (window.msftUet && window.msftUet.reportConversion) {{
window.msftUet.reportConversion({{ goal: 'lead_submit', value: 1 }});
}}
Enhanced & offline conversions
Improve attribution and bidding with richer data.
- Enhanced conversions: Pass hashed user identifiers (e.g., email) where supported and consented to raise match rates.
- Revenue tracking: For ecommerce, send order value/currency on purchase.
- Offline conversions: Import CRM outcomes (qualified opportunity/won) to train bidding on revenue-quality leads.
// Example purchase event (pseudo)
window.msftUet?.reportConversion?.({{
goal: 'purchase',
value: 129.99,
currency: 'USD',
order_id: 'ORD-12345',
// enhanced: hashed identifiers (ensure hashing + consent)
user_data: {{ email_sha256: 'abc123...' }}
}});
Consent-friendly activation
Comply with privacy rules by delaying non-essential tracking until consent is granted.
- Load the UET base tag in a “consent-conditional” state (via your CMP or Tag Manager).
- Fire analytics/advertising goals only after user agrees (e.g., “Accept” on cookie banner).
- Respect regional settings (EEA/UK/US state laws) with your CMP’s geotargeting.
// Pseudo-consent hook
document.addEventListener('consent:granted:ads', ()=>{
// enable UET goal triggers that were queued
});
Server-side (optional)
When client-side signals are limited (ITP, ad blockers, stricter CMP), mirror events from your backend.
- Send deduplicated events (use consistent order/lead IDs).
- Honor consent and regional policies; do not send events for users who opted out.
- Keep payloads minimal and consistent with client-side schema.
QA & validation
- Use a tag assistant to confirm the base UET fires on every page.
- Trigger each goal manually on a staging page and confirm in Microsoft Ads real-time/diagnostics.
- Check that only one conversion fires per action (no duplicates on reload).
- For purchases, validate totals vs. your ecommerce backend (spot-check order IDs).
- Verify primary vs. secondary goals and attribution windows match your KPI.
Troubleshooting
No conversions recorded
- UET base not present on some pages
- Consent blocking goals (test with consent granted)
- Goal misconfigured (wrong event name/URL rule)
- Tag published in GTM but not deployed to production
Too many conversions
- Double tag firing (GTM + hard-coded)
- Event bound to both click and submit
- Thank-you page firing on refresh without dedupe
Implementation checklist
- ✅ UET base tag installed site-wide (with consent controls)
- ✅ Primary goals defined for high-signal outcomes
- ✅ Revenue passed for ecommerce purchases
- ✅ Enhanced/Offline conversions configured (if applicable)
- ✅ QA done: no duplicates, correct attribution, sane volumes
- ✅ Monitoring: set alerts for sudden drops/spikes
Next steps
With UET stable, move on to building product intent with Shopping Feeds, or start scaling with Bidding Strategies & Automation.