How Do I Track msclkid from Microsoft Ads in WordPress

Microsoft Ads (Bing, MSN, Outlook placements) says the campaign produced leads. Your WordPress form inbox shows names and emails with Direct or blank source. The click that paid for the visit never made it onto the form row.

That gap is common when you already track Google Ads with gclid but never captured the Microsoft click ID. This post is the Microsoft Ads focused parallel to the gclid guide. It explains what msclkid is, why hidden fields and the form-page URL alone miss it, what free LeadSource 1.0.8 stores on a Microsoft Ads fill, how to test a tagged Bing visit, and what the plugin still does not do.

Why Bing leads look like Direct in the form inbox

Microsoft Ads can append a click ID to the landing URL when auto-tagging is on. The visitor arrives with msclkid in the address bar. They browse a service page, then open your contact form on another URL. The form plugin saves the name and email. Many also store the current page URL. That is the form page, not the tagged arrival.

Hidden fields that only read the live URL go empty once the visitor leaves the landing page. The row still looks like a real lead. The paid click is gone. People then search for msclkid tracking wordpress or microsoft ads click id wordpress form and assume Bing does not work with WordPress. Usually the form worked. The click ID never left the first page.

The same pattern shows up for Google and Meta. Dedicated notes for those platforms are in GCLID Tracking in WordPress and fbclid Tracking in WordPress. The multi-platform overview is in Track Microsoft, LinkedIn & TikTok Click IDs in WordPress. This post stays on msclkid and on what free LeadSource 1.0.8 actually stores today.

What msclkid is and where it appears

msclkid is the Microsoft Click ID. When Microsoft Ads auto-tagging is enabled for the account, a successful ad click can land the visitor on a URL that includes msclkid as a query parameter. The value is a long opaque string. You do not decode it yourself. You store it with the lead so you can match the named person back to the Microsoft Ads click later.

A test URL looks like /landing/?msclkid=test123. A real ad click uses a longer value generated by Microsoft. The parameter lives in the landing page URL. It is not written into your form plugin by itself. The Universal Event Tracking (UET) tag Microsoft places for its own conversion reports is a separate system. That tag does not fill your WordPress form fields for you.

Do not invent gbraid or wbraid for Microsoft Ads. Today’s LeadSource readme lists msclkid for Microsoft Ads. It does not list gbraid or wbraid.

Why hidden fields and the form-page URL alone miss it

A hidden field set to read the current query string only works when the form sits on the same page the ad opened. Most sites put the form on /contact/ while ads land on /offer/ or a service page. After one click away, msclkid is no longer in the address bar. The hidden field submits empty.

Cookie snippets that try to persist the value help only if every form has matching hidden fields, the script runs before Submit, and cache or consent tools do not block it. That is the same maintenance load as manual gclid capture. Stack Overflow threads about passing gclid and msclkid into Gravity Forms keep hitting that pattern.

LeadSource’s native path skips the per-form hidden field job for the form plugins it hooks. Capture still needs the browser script to run on the tagged page so a session cookie can hold the click ID until submit.

What free LeadSource 1.0.8 stores on a Microsoft Ads fill

The free LeadSource plugin hooks the form plugins you already use. Native hooks in 1.0.8 are Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Formidable Forms, Fluent Forms, Elementor Pro Forms, Everest Forms, and Forminator. You do not add shortcodes or maintain hidden UTM or click ID fields for those builders.

Capture runs in the visitor’s browser. A small vanilla script reads the URL on page load and stores traffic source data in a first-party session cookie. On a successful native submit, the form hook attaches that session data to a LeadSource row. Caching FAQ on the listing says UTM capture runs in the browser, so server-side page cache does not stop the read when the script runs.

When msclkid is present, free LeadSource can store that click ID and label the traffic as Microsoft Ads. It also stores the usual UTM keys when you set them (utm_source, utm_medium, utm_campaign, utm_term, utm_content) and the other click IDs named in today’s readme (gclid, fbclid, li_fat_id, ttclid). Landing page is the first page of the session. Referrer has a server-side fallback. Attribution is same session only. The cookie ends when the browser closes. It is not first-plus-last touch and not a 90 day window.

The overview is in How to Track Lead Sources in WordPress Forms. Same-session honesty is in Same Session Attribution vs 90 Day UTM Cookies. The click-to-dashboard flow is in How It Works.

Free 1.0.8 is enough for a basic msclkid stamp on a native fill inside one session. LeadSource Pro is $99 a year when the real ask is lead journeys, per-source email routing, scheduled reports, or white label. Reach for Pro when journey depth or routing is the job, not for the basic Microsoft Ads click ID on a hooked form.

How to test a tagged Bing click into a hooked WordPress form

  1. Confirm Microsoft Ads auto-tagging for the click ID is enabled in the account settings Microsoft documents for your Ads UI. Without that, real ad clicks may arrive with no msclkid.
  2. Install LeadSource from wordpress.org, finish the setup wizard, and confirm your form plugin is in the 1.0.8 native list.
  3. Open a private browser window. Visit a landing page with a test parameter, for example /services/?msclkid=test-bing-001 (and optional UTM keys if you use them).
  4. Confirm the address bar still shows msclkid. If it vanishes on first load, fix stripping before you blame the form. WordPress Stripping UTM Parameters covers that class of failure.
  5. Browse to the form the way a visitor would. Do not paste msclkid onto the form URL.
  6. Submit with a name you will recognise.
  7. Open the LeadSource dashboard row. Confirm the click ID, Microsoft Ads label when present, and landing page match the tagged arrival for that session.

A manual test string proves capture. It is not a valid Microsoft conversion import value. Use a real ad preview click when you need a live Ads-side check.

What this plugin still does not do

LeadSource stores msclkid on the named WordPress row when the tagged visit is still the open session. It does not fire the Microsoft UET conversion event for you. It does not replace Microsoft’s tag or Ads Manager. Installing it alone does not repair Smart Bidding when Microsoft Ads never sees a conversion event.

It does not upload offline conversions into Microsoft Ads. There is no offline upload button in free or Pro. Feeding stored click IDs back into Microsoft Ads is a separate import or API job you run outside this plugin.

It does not keep a 90 day cookie. It does not stamp first touch and last touch as two separate values. It does not capture gbraid or wbraid. It does not export CSV from free 1.0.8.

Cross-origin iframe embeds sit outside the native WordPress form hooks. That wall is covered in Why Embedded Forms and iFrames Lose UTM and Click IDs. AJAX thank-you misses for Google Ads tags are a different job in Why AJAX WordPress Forms Miss Google Ads Tags.

Short checklist

  1. Turn on Microsoft Ads click ID auto-tagging in the Ads account if real clicks arrive without msclkid.
  2. Confirm the form is one of the nine native hooks in free 1.0.8, including Forminator if that is your builder.
  3. Install LeadSource, finish the wizard, and leave same-session capture on.
  4. Test a private window from a landing URL that carries msclkid, then browse to the form and submit.
  5. Read the LeadSource row. Expect msclkid and a Microsoft Ads label when the session is still open.
  6. Do not expect LeadSource to fire UET or upload conversions into Microsoft Ads.
  7. Soft-check Pro only if you need journeys or per-source routing, not for the basic stamp.

Blank Bing leads in WordPress are usually a missing click ID on the form row, not proof that Microsoft Ads failed. Free LeadSource keeps msclkid for the length of the browser session and attaches it when a hooked form submits. That answers which Microsoft Ads click produced the person. It is not a promise that Ads Manager already counted the conversion.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *