troubleshootingUpdated 2025

Add Required UTM Parameters to Microsoft Ads (Step-by-Step)

Microsoft Ads showing as organic search? Add UTM parameters so GA4 can properly track your Bing campaigns and calculate ROI.

7 min readtroubleshooting

Your Microsoft Ads are showing as organic search from Bing in GA4. You're paying for ads but they look like free traffic.

You can fix this in 4 minutes by adding UTM parameters.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

What You're Fixing

Microsoft Ads automatically adds msclkid (Microsoft Click ID) to track clicks, but GA4 doesn't consistently recognize msclkid for traffic classification.

Without UTM parameters, GA4 often sees Microsoft Ads as organic Bing search traffic.

Current State (Broken Attribution)

Your ad URL:

Code
https://yoursite.com/demo

After user clicks (Microsoft adds msclkid automatically):

Code
https://yoursite.com/demo?msclkid=abc123xyz

Result in GA4:

  • Source/Medium: bing / organic
  • Channel: Organic Search
  • Campaign: (not set)
  • Paid traffic classified as organic

Why this happens: While GA4 recognizes msclkid in some cases, it's not as reliable as Google's gclid. Microsoft recommends adding manual UTMs for complete tracking across all analytics platforms.

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

The 4-Minute Fix

Step 1: Enable Auto-Tagging (1 minute)

  1. Open Microsoft Ads
  2. Click Settings (gear icon) → Account settings
  3. Find Auto-tagging section
  4. Check: "Add Microsoft Click ID (MSCLKID) parameter to the destination URL"
  5. Save changes

This ensures msclkid is always appended to ad clicks.

Step 2: Add UTM Parameters (2 minutes)

Option A: Campaign-Level UTM Tracking

  1. Navigate to Campaigns
  2. Click on a campaign → Settings
  3. Scroll to Tracking template section
  4. Add UTM parameters:

Recommended UTM structure:

Code
?utm_source=bing
&utm_medium=cpc
&utm_campaign={campaign}
&utm_content={adgroup}
&utm_term={keyword}

Microsoft Ads dynamic parameters:

  • {campaign} - Campaign name
  • {campaignid} - Campaign ID
  • {adgroup} - Ad group name
  • {adgroupid} - Ad group ID
  • {keyword} - Keyword that triggered ad
  • {querystring} - User's actual search query
  • {matchtype} - Match type (Exact, Phrase, Broad)
  • {device} - Device type (m for mobile, t for tablet, c for computer)
  • {network} - Network (o for owned and operated, s for syndicated)

Example with dynamic parameters:

Code
?utm_source=bing&utm_medium=cpc&utm_campaign={campaign}&utm_content={adgroup}&utm_term={keyword}

Microsoft automatically replaces parameters with actual values when ad is clicked.

Option B: Account-Level UTM Tracking

Apply UTMs to all campaigns at once:

  1. Microsoft Ads → ToolsTracking
  2. Account tracking template
  3. Add the same UTM structure
  4. All campaigns inherit these UTMs

Step 3: Verify Both Parameters Present (1 minute)

Test Microsoft Ads attribution:

  1. Click one of your ads from Bing search results
  2. Check landing page URL in browser address bar
  3. Verify both msclkid AND UTMs present:
    Code
    yoursite.com/demo?msclkid=abc123&utm_source=bing&utm_medium=cpc&utm_campaign=brand
    
  4. Check GA4 → Real-time report
  5. Confirm traffic shows as "bing / cpc"

What Changes After You Fix It

Before (no UTMs):

  • Source/Medium: bing / organic
  • Channel: Organic Search
  • Campaign: (not set)
  • Paid classified as organic
  • Completely broken ROI tracking

After (with UTMs):

  • Source/Medium: bing / cpc
  • Channel: Paid Search
  • Campaign: brand_search
  • Content: ad_group_1
  • Full attribution, ROI tracking, and campaign optimization

Advanced: Microsoft UET Tag Setup

Microsoft's Universal Event Tracking (UET) tag tracks conversions for Microsoft Ads (separate from GA4).

Base code (add to all pages):

Html
<!-- Microsoft UET Tag -->
<script>
(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"YOUR_TAG_ID"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");
</script>

Conversion goals (set in Microsoft Ads):

Javascript
// Purchase conversion
window.uetq = window.uetq || [];
window.uetq.push('event', 'purchase', {
  'revenue_value': 99.99,
  'currency': 'USD'
});
 
// Lead conversion
window.uetq.push('event', 'contact', {
  'event_category': 'lead',
  'event_label': 'contact_form'
});
 
// Signup conversion
window.uetq.push('event', 'sign_up', {
  'event_category': 'registration'
});

Troubleshooting Common Issues

Issue 1: UTMs Not Appearing in GA4

Problem: Added UTMs to Microsoft Ads tracking template but GA4 still shows "bing / organic".

Cause: URL redirect stripping UTM parameters.

Fix:

  1. Check for landing page redirects (301/302)
  2. Ensure redirects preserve query parameters:
    Javascript
    // ❌ Wrong (loses UTMs)
    window.location = '/new-page';
     
    // ✅ Correct (preserves UTMs)
    window.location = '/new-page' + window.location.search;
  3. Test manually: Click ad and verify UTMs present in browser address bar

Issue 2: Microsoft Conversion Tracking Stopped Working

Problem: After adding UTMs, Microsoft Ads conversions show zero.

Cause: UET tag not installed or conversion goals not configured.

Fix:

  1. Verify UET tag installed on all pages
  2. Check UET Tag Helper Chrome extension
  3. Verify conversion goals configured in Microsoft Ads → Conversion Goals
  4. Test conversions appear in Microsoft Ads reporting

Issue 3: Duplicate Sessions in GA4

Problem: Each Microsoft ad click creates 2 sessions.

Cause: Rare with Microsoft Ads. Most likely cause is duplicate GA4 tracking tags.

Fix:

  1. Google Tag Manager → Check for duplicate GA4 configuration tags
  2. View page source → Verify GA4 snippet appears only once
  3. Remove redundant tracking implementations

Issue 4: Dynamic Parameters Not Populating

Problem: UTMs show {campaign} instead of actual campaign name.

Cause: Incorrect parameter syntax or tracking template misconfiguration.

Fix:

  1. Verify exact syntax: {campaign} (single curly braces, lowercase)
  2. Use only supported Microsoft Ads parameters
  3. Test with manual campaign name first, then add dynamic parameters
  4. Clear Microsoft Ads tracking template cache (save changes, wait 5 minutes)

Issue 5: Paid Ads Still Showing as Organic

Problem: Some Microsoft Ads clicks still classified as organic search.

Cause: Auto-tagging not enabled or tracking template errors.

Fix:

  1. Verify auto-tagging enabled in account settings
  2. Check tracking template for syntax errors (missing ? or &)
  3. Ensure final URL doesn't already have query parameters (use & instead of ? if URL has existing parameters)
  4. Test multiple ad clicks to verify consistent behavior

FAQ

Will this break Microsoft Ads conversion tracking?

No. Microsoft UET tag operates independently and uses msclkid for attribution. UTMs are only for GA4 tracking. Both systems work simultaneously without conflicts.

Why are my paid clicks showing as organic?

GA4 doesn't consistently recognize msclkid across all scenarios. Without UTMs, clicks from bing.com default to organic search classification. Adding manual UTMs ensures reliable paid search attribution.

Do I need UTMs for every campaign?

Yes. Without UTMs, all Microsoft Ads traffic may show as organic in GA4. Apply UTMs at the account level to automatically cover all current and future campaigns.

What utm_medium should I use for Microsoft Ads?

Recommended options:

  • cpc (best - GA4 classifies as "Paid Search")
  • ppc (also works - classified as "Paid Search")
  • paid-search (also works)

Best practice: utm_medium=cpc for consistency with Google Ads.

Can I use the same UTMs for Microsoft and Google Ads?

Use different campaign names to differentiate:

  • Microsoft Ads: utm_campaign=bing_brand_search
  • Google Ads: utm_campaign=google_brand_search

This prevents attribution confusion across platforms. Google Ads uses gclid (auto-tagging) so manual UTMs are optional for Google.

Does this work for Microsoft Shopping Campaigns?

Yes. Shopping Campaigns support tracking templates and UTM parameters just like Search Campaigns. Add UTMs to ensure proper GA4 attribution.

How long does it take for UTMs to appear in GA4?

Real-time. Click your ad with UTMs and check GA4 Real-time report within seconds. Standard reports update within 24-48 hours.

What about Microsoft Audience Network ads?

Audience Network (display ads across Microsoft's partner sites) uses the same tracking template. UTMs apply automatically to both Search and Audience Network campaigns.

Can I track Microsoft Ads by device type?

Yes, use the {device} dynamic parameter in utm_content:

Code
utm_content=device_{device}

This populates as:

  • device_m for mobile
  • device_t for tablet
  • device_c for computer

Why don't my Microsoft and GA4 numbers match?

Even with correct tracking, expect 5-15% variance due to:

  • Ad blockers (block GA4, not Microsoft UET)
  • Privacy settings (browser tracking prevention)
  • Attribution windows (Microsoft: 30-day click/1-day view, GA4: last-click)
  • Bot traffic filtering differences

Internal Guides

Microsoft Official Documentation

GA4 Resources

Conclusion

Microsoft Ads require manual UTM parameters for reliable GA4 attribution. While msclkid works in some cases, manual UTMs ensure consistent paid search classification.

Quick fix checklist:

  • ✅ Enable auto-tagging in Microsoft Ads account settings (adds msclkid)
  • ✅ Add utm_source=bing&utm_medium=cpc&utm_campaign={campaign} to tracking template
  • ✅ Apply at account level to cover all campaigns automatically
  • ✅ Microsoft appends msclkid when ads are clicked
  • ✅ GA4 reads UTMs for attribution (classifies as "Paid Search")
  • ✅ Microsoft UET tag uses msclkid for conversion tracking
  • ✅ Both systems work together without conflicts

Result: Proper Microsoft/Bing Ads attribution in GA4 + conversion tracking in Microsoft Ads Manager + accurate ROI calculation for your campaigns.


Related Documentation:

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.