Skip to content
← All articles

Paid Media

Microsoft Ads Offline Conversions: The Setting Nobody Turns On

Most Microsoft accounts were imported from Google Ads, and MSCLKID auto-tagging came across switched off. Nothing breaks visibly, and every offline conversion silently fails to match.

September 24, 2026 · 7 min read

An ad click carrying msclkid only if auto-tagging is on, weeks passing, and a closed deal imported back against that identifier

Most Microsoft Advertising accounts were born as a copy of a Google Ads account. The import tool is good, the campaigns arrive intact, and the budget starts spending within the hour.

What does not come across is the tracking. And there is one setting in particular that arrives switched off, is invisible in the campaign view, and silently guarantees that every offline conversion you ever try to import will fail to match.

What is MSCLKID and why does everything depend on it?

It is Microsoft's click identifier, the direct equivalent of Google's GCLID. When someone clicks your ad, Microsoft appends msclkid to your landing page URL, and that parameter refers to one specific click.

Offline conversion import on Microsoft works the way it does on Google. You capture the click identifier when the visitor lands, keep it attached to the lead through your CRM, and send it back with the conversion when the deal closes. Microsoft joins the two. No click identifier, no join.

Which makes the first question about any Microsoft offline setup a boring one: is auto-tagging actually on?

The setting that is off in almost every imported account

Microsoft auto-tagging of MSCLKID is an account-level setting, and in a great many accounts that began life as a Google import, it is not enabled.

The reason it survives so long is that nothing breaks visibly. Ads serve. Clicks arrive. Standard on-site conversion tracking works, because the tag on the thank-you page reports its own conversion without needing the click identifier at all. The only thing that fails is the join between a sale months later and the click that caused it, and nothing in the interface announces that.

So check it first, before writing a line of integration code. Then check your landing pages actually receive the parameter, by clicking a live ad and looking at the address bar, because a redirect that strips query strings will remove it just as effectively as the setting being off. Our piece on missing GCLID capture walks through the same failures on Google, and they are the same failures here with a different parameter name.

How do I get the click identifier into the CRM?

The same three steps that make this work anywhere, and the middle one is where most setups quietly stop.

Capture msclkid from the URL on arrival and store it in a first-party cookie or local storage, so it survives the visitor browsing to another page before converting.

Read it back into a hidden field when the form renders. This is the step that does not exist on most sites. The value is captured, sitting in storage, and nothing ever puts it on the form, so it expires unused and the CRM never sees it.

Store it on the contact or the deal as a custom field, so it is still there when the opportunity closes weeks later.

How do I send the conversion back?

Create an offline conversion goal in Microsoft Advertising, then import the conversions against it.

The upload carries the click identifier, the conversion name matching the goal, the time it happened, and the value. Time matters: it is the time of the conversion, not the time you uploaded the file, and getting that wrong compresses months of pipeline into whichever day your integration ran.

Two routes. A scheduled file upload, which is a CSV your CRM or a spreadsheet produces on a cadence, and which is a perfectly respectable place to start. Or the API, for a setup that should not depend on somebody remembering.

Either way, confirm the conversion goal's settings before the first import: what counts as a conversion, the attribution window, and whether the goal is included in the "Conversions" column that bidding actually uses. A goal that reports but is excluded from optimisation changes your reporting and not your delivery, which is half the benefit and usually not the half people wanted.

Does this change how bidding works?

It changes what bidding is aiming at, which is the point.

Feed Microsoft closed deals with real values and automated bidding can chase revenue instead of form fills. The catch is volume: Microsoft accounts are usually smaller than their Google counterparts, and a bidding strategy needs a certain number of conversions a month before it has anything to learn from.

At low volume the honest move is to keep optimising toward a well-defined lead event and use the offline import for reporting, so you can answer whether the channel pays for itself. That answer does not require the algorithm to use the data. It requires the data to exist.

What to confirm before you build

The import window. There is a limit on how long after the click a conversion can be imported and still attribute. If your sales cycle is longer than it, some closed deals will never be creditable, and you want to know that before you build a pipeline that assumes otherwise.

Whether your CRM has a native integration. Several do, and a supported integration you configure is better than a bespoke one you maintain. Check before writing code.

Both are worth reading from Microsoft's own current documentation rather than from an article, including this one.

The order to do this in

Auto-tagging on. Parameter arriving on the landing page. Captured to storage. Written to a hidden field. Stored on the CRM record. Goal created. Import running.

Every step depends on the one before it, and the failure mode is identical at each: nothing errors, the conversion count simply stays at zero and you are left guessing which link broke. Verifying each step as you go takes an afternoon. Debugging the whole chain after the fact takes considerably longer.

FAQ

Does Microsoft Advertising support offline conversion import?

Yes. You create an offline conversion goal, then import conversions against it with the MSCLKID click identifier, the conversion time and the value, either as a scheduled file upload or through the API. It works in the same way as Google Ads offline conversion import, using Microsoft's own click identifier.

Why are my imported conversions not matching?

The usual cause is that MSCLKID auto-tagging was never enabled on the account, which is common in accounts created by importing from Google Ads. Without it there is no click identifier on the landing page URL, so nothing reaches your CRM and nothing can be joined later. Check that setting before investigating anything else, then confirm the parameter survives any redirects on the way to your landing page.

Is MSCLKID the same as GCLID?

It plays the same role for Microsoft that GCLID plays for Google: a reference to one specific ad click, used to join a later conversion back to the campaign, ad group and keyword that produced it. They are different parameters from different platforms and you need to capture and store both separately.

Can I upload conversions by hand?

Yes, and for a business closing a few dozen deals a month it is a reasonable place to start. A scheduled CSV export from the CRM, uploaded on a cadence, gets you the reporting benefit without an engineering project. Automate it when the manual step starts being skipped.

Will this improve my bidding?

Only at sufficient volume. Automated bidding needs a reliable number of conversions a month before it can learn from them, and Microsoft accounts are frequently smaller than the Google accounts they were copied from. Below that threshold, use the imported conversions for reporting and keep bidding toward a more frequent lead event.

Want help with Offline Conversion Tracking & CRM Integration?

Closed-won revenue pushed back to the platforms so bidding optimizes toward real outcomes and you can trace a signed deal to a campaign.

More reading

Paid Media

September 24, 2026 · 8 min read

Meta Offline Conversions: Sending Closed Deals Back

Meta matches on the person, not the click, which is why a setup copied from Google Ads underperforms. What to send, how to hash it, and why your conversion count should fall.

Read article
Paid Media

September 24, 2026 · 7 min read

LinkedIn Offline Conversions and the Sales Cycle Problem

LinkedIn is the most expensive place most B2B companies advertise and the one where form fills mislead most. The catch is that B2B sales cycles outrun the attribution window, and what to do about it.

Read article
Paid Media

September 24, 2026 · 7 min read

TikTok Offline Conversions When the Sale Is Not Instant

TikTok assumes the conversion happens fast, on a phone, near the ad. For a business with a phone call or a sales team it does not, and the Events API is how you report the one that counts.

Read article