Microsoft Advertising Troubleshooting & Debugging | Blue Frog Docs

Microsoft Advertising Troubleshooting & Debugging

Common Microsoft Advertising issues, UET tag debugging, and conversion tracking troubleshooting.

UET Tag Issues

UET Tag Not Loading

Symptoms:

Diagnostic Steps:

  1. Check tag installation:

    • View page source and search for bat.bing.com/bat.js
    • Verify UET tag ID matches Microsoft Advertising account
    • Confirm tag is in <head> section (recommended) or before </body>
  2. Test with UET Tag Helper:

  3. Check browser console:

    • Open DevTools (F12)
    • Look for JavaScript errors preventing tag execution
    • Check Network tab for bat.js request (should return 200 OK)

Common Causes & Solutions:

Issue Solution
Tag missing from page Add UET tag to all pages via GTM or site template
Content Security Policy blocking Add bat.bing.com to CSP script-src directive
Ad blocker interference Test in incognito mode without extensions
Asynchronous loading failure Ensure tag loads before page interactive event
Wrong tag ID Verify tag ID matches account in Tools > UET tags

UET Tag Loading But Not Tracking

Symptoms:

  • UET Tag Helper shows tag firing
  • No conversion data in Microsoft Advertising
  • Tag verification shows "Active" but 0 conversions

Solutions:

  1. Verify conversion goal configuration:

    • Navigate to Conversions > Conversion goals
    • Check goal type matches implementation (URL destination, event, etc.)
    • Confirm goal status is "Recording"
    • Verify goal is associated with correct campaign
  2. Check event tracking syntax:

// Correct syntax
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
  'revenue_value': 99.99,
  'currency': 'USD'
});

// Common mistake - wrong parameter format
window.uetq.push('event', {'event_category': 'purchase'}); // WRONG
  1. Test conversion goal:
    • Navigate to Conversions > Conversion goals
    • Click goal name
    • Click View details > Troubleshooting
    • Use URL testing tool to verify goal triggers

Conversion Tracking Issues

Conversions Not Recording

Diagnostic Checklist:

  • UET tag is active on conversion page
  • Conversion goal is set to "Recording" (not "Paused")
  • Goal URL matches actual conversion page URL (for destination goals)
  • Event name matches goal configuration (for event goals)
  • Conversion window hasn't expired (default: 30 days click, 1 day view)
  • User hasn't opted out of tracking (respects Do Not Track)
  • Conversion value is within acceptable range (not negative or extremely high)

Testing Procedure:

  1. Clear browser cookies and cache
  2. Click your Microsoft Advertising ad (or use preview ad)
  3. Complete conversion action
  4. Wait 2-4 hours for data processing
  5. Check Campaigns > Columns > Add "Conversions" metric
  6. Verify conversion appears (may take up to 24 hours)

Tip: Use Microsoft Advertising Preview Tool to generate test clicks without spending budget.

Duplicate Conversions

Symptoms:

  • Conversion count higher than actual transactions
  • Same user generating multiple conversions
  • Conversion rate unrealistically high

Causes & Solutions:

Cause 1: Page Reloads

  • User refreshes confirmation page, firing conversion multiple times
  • Solution: Implement conversion once per session
// Fire conversion only once
if (!sessionStorage.getItem('conversion_fired')) {
  window.uetq = window.uetq || [];
  window.uetq.push('event', 'purchase', {
    'revenue_value': 99.99,
    'currency': 'USD'
  });
  sessionStorage.setItem('conversion_fired', 'true');
}

Cause 2: Conversion Goal Counting

  • Goal set to "All" instead of "Unique"
  • Solution: Navigate to goal settings, change Count to "Unique"

Cause 3: Multiple UET Tags

  • Same tag implemented multiple times on page
  • Solution: Use Tag Manager to ensure single tag deployment

Conversion Values Incorrect

Symptoms:

  • Conversion values showing $0 when revenue exists
  • Values significantly higher or lower than expected
  • Currency conversion issues

Solutions:

  1. Verify revenue parameter syntax:
// Correct - dynamic value
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
  'revenue_value': parseFloat(orderTotal), // Ensure numeric type
  'currency': 'USD'
});
  1. Check currency settings:

    • Navigate to Conversions > Conversion goals > Goal settings
    • Verify Currency matches values being passed
    • Microsoft Advertising auto-converts to account currency
  2. Validate data layer integration:

// Example with Google Tag Manager data layer
dataLayer.push({
  'event': 'purchase',
  'transactionTotal': 99.99,
  'transactionCurrency': 'USD'
});

// Corresponding UET tag in GTM
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
  'revenue_value': {{DLV - transactionTotal}},
  'currency': {{DLV - transactionCurrency}}
});

MSCLKID Parameter Issues

MSCLKID Not Capturing

Symptoms:

  • Offline conversion uploads failing
  • "Invalid MSCLKID" errors
  • Unable to attribute conversions to clicks

Solutions:

  1. Enable auto-tagging:

    • Navigate to Accounts > Account settings
    • Scroll to Tracking template
    • Ensure Auto-tagging is enabled
    • Check for {msclkid} in destination URL after clicking ad
  2. Preserve MSCLKID through funnel:

// Capture MSCLKID from URL on landing page
function getMSCLKID() {
  const urlParams = new URLSearchParams(window.location.search);
  return urlParams.get('msclkid');
}

// Store in cookie or session for later retrieval
const msclkid = getMSCLKID();
if (msclkid) {
  document.cookie = `msclkid=${msclkid}; path=/; max-age=7776000`; // 90 days
}

// Pass to conversion page via hidden form field or server-side storage
  1. Verify tracking template compatibility:
    • Custom tracking templates may override auto-tagging
    • Ensure {lpurl}?msclkid={msclkid} is included
    • Test with Microsoft Advertising Ad Preview tool

MSCLKID Parameter Stripped

Common Causes:

Cause Solution
Redirect removes query parameters Preserve parameters in redirect: Location: /page?msclkid=...
Form submission loses parameter Include MSCLKID as hidden field in forms
Client-side navigation (SPA) Persist MSCLKID in state management or sessionStorage
Payment processor redirect Pass MSCLKID to processor and receive in return URL
Link click overrides URL Use JavaScript to append MSCLKID to navigation links

Debugging Tools

UET Tag Helper Browser Extension

Installation:

  1. Install from Chrome Web Store
  2. Navigate to your website
  3. Click extension icon to view tag status

Features:

  • Real-time tag detection and firing status
  • Event tracking validation
  • Parameter inspection
  • Error identification

Microsoft Advertising Intelligence

Desktop Excel add-in for keyword research and debugging:

Installation:

  1. Download from Microsoft Advertising Tools
  2. Install Excel add-in
  3. Sign in with Microsoft Advertising credentials

Use Cases:

  • Bulk keyword performance analysis
  • Search term debugging
  • Competitive intelligence
  • Bid landscape analysis

Browser DevTools Network Tab

Debugging UET Tag Requests:

  1. Open DevTools (F12)
  2. Navigate to Network tab
  3. Filter by "bat.bing.com"
  4. Click ad and complete conversion
  5. Inspect request parameters:
    • Ver: UET version
    • ti: Tag ID
    • evt: Event type
    • ec: Event category
    • ea: Event action
    • el: Event label
    • ev: Event value
    • gv: Goal value
    • gc: Goal currency

Successful Request Example:

https://bat.bing.com/action/0?
  ti=12345678&
  Ver=2&
  evt=custom&
  ec=purchase&
  gv=99.99&
  gc=USD&
  p=https://example.com/thank-you&
  msclkid=abc123xyz

Microsoft Advertising API for Debugging

Retrieve Conversion Performance:

from bingads import *
from bingads.v13.reporting import *

# Download conversion performance report
reporting_service = client.get_service('ReportingService')

report_request = reporting_service.factory.create('ConversionPerformanceReportRequest')
report_request.ReportName = 'Conversion Debug Report'
report_request.Format = 'Csv'
report_request.Aggregation = 'Daily'
report_request.Time.CustomDateRangeStart.Day = 1
report_request.Time.CustomDateRangeStart.Month = 12
report_request.Time.CustomDateRangeStart.Year = 2025
report_request.Time.CustomDateRangeEnd.Day = 24
report_request.Time.CustomDateRangeEnd.Month = 12
report_request.Time.CustomDateRangeEnd.Year = 2025

# Include columns: ConversionName, Conversions, Revenue, AssistClick, etc.

Common Error Messages

"Tag Not Verified"

Message: "We haven't detected your UET tag on your website"

Solutions:

  • Wait 24 hours after installation for Microsoft to verify
  • Check tag is on publicly accessible page (not localhost or staging)
  • Verify page isn't blocked by robots.txt
  • Ensure tag ID is correct

"Invalid Conversion Goal"

Message: "Goal configuration error"

Solutions:

  • Check goal type matches implementation (event vs. destination)
  • Verify goal status is "Recording" not "Paused"
  • Ensure campaign is associated with conversion goal
  • Confirm goal scope (account-level vs. campaign-level)

"Offline Conversion Upload Failed"

Message: "Unable to process conversion import"

Solutions:

  • Verify MSCLKID format (no spaces, exact match)
  • Check conversion time is within 90-day window
  • Ensure conversion time format: YYYY-MM-DD HH:MM:SS (UTC recommended)
  • Validate currency code (3-letter ISO: USD, EUR, GBP, etc.)
  • Confirm conversion name matches existing goal
  • Check file encoding is UTF-8

File Format Validation:

Microsoft Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
abc123,Purchase,2025-12-01 10:30:00,99.99,USD

Performance Debugging

Low Conversion Rate Investigation

Diagnostic Steps:

  1. Verify conversion goal is realistic:

    • Check if goal threshold is too high
    • Confirm goal URL matches actual conversion page
    • Test goal trigger with URL testing tool
  2. Analyze conversion funnel:

    • Use Microsoft Clarity to identify drop-off points
    • Check for technical errors on landing or conversion pages
    • Verify mobile responsiveness
  3. Review targeting settings:

    • Check if audience targeting is too narrow
    • Verify location targeting includes intended markets
    • Review device bid adjustments (mobile vs. desktop conversion rates)
  4. Inspect ad relevance:

Conversion Attribution Issues

Symptoms:

  • Conversions attributed to wrong campaign
  • Assisted conversions not showing
  • Attribution model confusion

Solutions:

  1. Review attribution model:

    • Navigate to Conversions > Conversion goals > Goal settings
    • Check Attribution model (Last click, First click, Linear, Time decay)
    • Consider changing to better match customer journey
  2. Enable assisted conversions:

    • Navigate to Reports > Performance reports > Predefined reports
    • Run "Assisted conversions" report
    • Analyze cross-campaign and cross-device attribution
  3. Check conversion window:

    • Navigate to goal settings
    • Verify Conversion window (default: 30 days click, 1 day view)
    • Extend window if longer sales cycle

Escalation Procedures

If issues persist after troubleshooting:

  1. Microsoft Advertising Support:

    • Navigate to Help > Contact support
    • Select issue category (Tracking, Conversions, etc.)
    • Provide account ID, tag ID, and error details
    • Include screenshots and example URLs
  2. Microsoft Advertising Community:

  3. Account Manager (if assigned):

    • Email or call your dedicated Microsoft representative
    • Provide detailed timeline of issue
    • Share debugging steps already attempted

Debugging Checklist

  • UET tag loads on all pages without errors
  • UET Tag Helper confirms tag firing
  • Conversion goals configured correctly
  • Test conversion completes successfully
  • MSCLKID parameter capturing and persisting
  • Conversion values passing correctly
  • No duplicate conversions occurring
  • Attribution model aligns with business needs
  • Browser console shows no JavaScript errors
  • Network requests to bat.bing.com return 200 OK
  • Offline conversions uploading without errors (if applicable)
// SYS.FOOTER