Skip to main content
Back to Blog
how-to
microsoft-ads
b2b
lead-generation
offline-conversions
server-side-tracking

Microsoft Ads B2B Tracking: Server-Side Lead Gen Setup

Set up Microsoft Ads (Bing Ads) lead generation tracking for B2B: capture msclkid, send offline conversions, fit the 90-day rules and add CRM stages.

28 min read
Microsoft Ads B2B Tracking: Server-Side Lead Gen Setup

Key Takeaways

  • •Microsoft Ads counts a conversion only if it can tie it to an earlier ad click, and it credits the last ad click, so a B2B lead reaches bidding only when your site saves the msclkid on arrival and sends it back with a UTC time inside the goal's conversion window
  • •Two different 90-day limits apply: a goal's conversion window runs from one minute to 90 days after the click (30 days by default), and an upload must carry a conversion time from the last 90 days, so a deal that closes on day 120 cannot be credited to its click
  • •SignalBridge sends the front of a B2B funnel (form fills, contact requests, booked meetings and trial sign-ups) to Microsoft offline conversion goals, but it has no CRM sync, sends no hashed email or phone and sends no restates or retracts, so qualified-lead and closed-won stages need Microsoft's own upload or a Conversions API connector
  • •Microsoft says it has no functionality to detect or eliminate test, fraudulent or duplicate conversions reported through UET, so filter bots and spam before they reach a goal and retract junk leads afterwards
  • •Microsoft publishes a fixed list of reasons an offline conversion goes unattributed (no matching click, click after conversion, outside the goal window, goal inactive and others), and SignalBridge reads that report for your mapped goals and alerts you when it shows unattributed conversions

How does server-side tracking work for B2B lead generation on Microsoft Ads?

Microsoft Ads B2B lead generation tracking means sending each lead back to Microsoft Advertising from a server, matched to the ad click that produced it by the Microsoft Click ID (msclkid). Bidding then learns from real leads even when a browser blocks the UET tag, or when the buyer fills in your form weeks after the click.

The short answer: keep auto-tagging on, create one offline conversion goal for each lead event, and send every lead with its msclkid and a UTC time that falls inside the goal's conversion window and within the last 90 days. SignalBridge sends the front of a B2B funnel (form fills, contact requests, booked meetings and trial sign-ups) without custom code. It does not sync CRM stages such as qualified lead or closed-won, so those need another route, covered in Step 7.

At a glance:

  • Capture. Save the msclkid when the visitor lands and keep it until the lead exists.
  • Send. Each lead event goes to an offline conversion goal, matched by the exact goal name.
  • Limits. The conversion window stops at 90 days, and so does the age of an upload.
  • Depth. Form fills are the easy part. Qualification and revenue come from your CRM.

We build SignalBridge, so read this with that in mind. The Microsoft rules below come from Microsoft's documentation on conversion tracking, auto-tagging, the offline conversion data object, its list of unattributed reasons and the Conversions API, all checked on November 1, 2026. What SignalBridge does comes from its product code on the same date. Microsoft changes its tools often, so check its pages before you build on a limit quoted here.

Why do B2B leads need more than the UET tag?

A UET goal suits a short journey in a single browser. B2B journeys are usually neither short nor single-browser, and four things go wrong:

  • The cookie can be gone before the form is filled. Safari deletes cookies written by scripts after seven days without interaction, and caps them at 24 hours when a click ID is in the URL, according to WebKit's tracking prevention documentation. A buyer who clicks your ad on an iPhone, reads three case studies and comes back two weeks later to book a demo can reach the form with no stored click.
  • No ad click, no conversion. Microsoft says it "will not count any user activity as a conversion, even if it matches a conversion goal, unless it is able to find that the user viewed or clicked on an ad before completing the action." A lead who returns directly, with no stored click ID, usually leaves Microsoft nothing to credit.
  • Junk counts as much as real leads. Microsoft's conversion tracking FAQ says it "does not currently include any functionality to detect or eliminate test, fraudulent or duplicate conversions" reported through UET. A Unique count removes repeats for one click, but Microsoft says that is not fraud detection. Automated bidding then learns from whatever your form accepts.
  • The valuable part happens later. A form fill is a lead. Whether it was qualified, became a deal and brought revenue shows up in your CRM weeks or months afterwards, and Microsoft's windows stop at 90 days.

Sending leads from a server takes the browser out of the delivery step. It does not remove the other problems, and the click ID still has to survive until the form is filled. The rest of this guide deals with each in turn.

What does Microsoft Ads need to count an offline B2B conversion?

Offline conversions are matched to ad clicks by msclkid. These are the rules in Microsoft's documentation, with what each one means for a B2B account:

RuleWhat Microsoft documentsWhat it means for B2B
Click IDWith auto-tagging on, Microsoft adds msclkid to the landing page URL after an ad click. It is on by default, and creating a conversion goal switches it on. An upload needs it, unless the goal uses enhanced conversions with a hashed email or phoneYour site must capture the ID on arrival and keep it until the lead is created
Click before conversionThe conversion time must be later than the recorded clickBackdated or imported CRM records fail
Upload ageThe conversion time must be within the last 90 days when you send itLate CRM updates are lost
Conversion windowSet per goal from one minute to 90 days after the click, 30 days by default. A change applies going forward onlyMatch it to your real sales cycle
Count typeUnique counts only the first conversion after an ad click, which Microsoft calls a good fit when you care whether a certain kind of lead was generated. All adds up every conversion at a different time for the same clickLeads: Unique. Repeat revenue from one account: All
Goal name and time zoneConversionName must match an existing goal name, or nothing is applied. Times sent through the API are UTC, while the web upload template has its own time zone settingA typo, or a local time written as UTC, drops the lead
Waiting periodWait two hours after creating a goal before uploading, and allow up to six hours for the data to show in reportingDo not judge the setup on the first morning
AttributionThe last ad click gets the credit and earlier clicks count as assistsOne conversion goes to one click
Quality controlNo functionality to detect or eliminate test, fraudulent or duplicate conversions reported through UET. For offline uploads, two rows with the same click ID and conversion time count onceFilter spam before it reaches a goal

Two different 90-day limits sit in that table, and B2B teams often mix them up. The conversion window says how long after the click a conversion can still count, from one minute to 90 days. The upload age says the conversion time must be within the last 90 days when you send it. A deal that closes on day 120 after the click cannot be credited to that click, however you upload it. Send an earlier milestone that Microsoft can still credit, such as the form fill or a booked meeting, and judge the deal itself in your CRM.

Which tracking route fits a B2B account?

Four routes carry B2B conversions to Microsoft Ads. Most accounts end up using more than one.

RouteWhat it carriesGood forWatch out for
UET goal (browser tag)Page-load and event goals fired by the UET tagRemarketing audiences, a quick start, thank-you page goalsNeeds the browser and its cookie, and counts spam
Offline conversions through SignalBridgeForm fills, contact requests, booked meetings and trial sign-ups, matched by msclkid, with a time, value and currencyB2B teams that want lead-stage conversions without writing codeFront of the funnel only: no CRM stages, no hashed email or phone, no retracts
Offline conversion upload (file or API)Any stage from your CRM, matched by msclkid, or by hashed email and phone when the goal uses enhanced conversionsQualified-lead and closed-won stages inside 90 daysManual work or custom code, and you must store the click ID with every lead
Conversions API (CAPI)Website, CRM, offline and app events through one setup: a direct API build, a partner connector or a server-side tag managerTeams that already run a CDP or a CRM with a Microsoft connectorNeeds the UET tag ID and a token, a shared event ID with UET to avoid double counting, and event times inside 90 days

For partner connectors, Microsoft's documentation lists HubSpot, Segment, Tealium, Invoca, Stape, MetaRouter and Commanders Act, plus Freshpaint in early access, with Adobe Real-Time CDP and Switch Growth marked as coming soon. Its own example for a B2B advertiser is sending qualified lead, opportunity and closed-won events from a CDP or connector to CAPI.

The setup most B2B accounts settle on has three layers. Keep UET for remarketing audiences and any on-site goals. Send lead-stage events by offline conversion with SignalBridge. Send qualified-lead and closed-won stages from the CRM by whichever route it supports. Keep exactly one goal per business event in Conversions, and let the rest report under All conversions.

How do you set up Microsoft Ads B2B lead tracking with SignalBridge?

Seven steps, in this order. Steps 1 to 3 happen in Microsoft Ads, Steps 4 and 5 in SignalBridge, and Steps 6 and 7 prove the setup and add depth.

Step 1: Choose the lead events Microsoft should learn from

Start from the question your sales team asks: which action means a buyer wants to talk to us? Each answer gets its own offline goal. SignalBridge translates its events into Microsoft's names, and the mapping list in Step 5 uses those names:

What the visitor didSignalBridge eventName in the mapping list
Submitted a demo or enquiry formLead, sent automatically, or SubmitApplication from your own callSubmitLeadForm
Asked for a quoteRequestQuote, from your own callRequestQuote
Used a contact formContactContact
Booked a call through Calendly, Cal.com or a booking formScheduleCall, BookConsultation or ScheduleBookAppointment
Started a free trial or created an accountStartTrial, SignUp or CompleteRegistrationSignUp
Joined a newsletterSubscribeSubscribe

Each name in the list takes one goal, so events that share a name share a goal: Lead and SubmitApplication both feed SubmitLeadForm, and a trial start and a sign-up both feed SignUp. SignalBridge cannot split them into separate Microsoft goals.

Choose the one or two goals that best predict revenue as your Conversions goals, the ones bidding optimizes for. Leave the rest reporting under All conversions: Microsoft says conversions that will not optimize campaign performance show up only in that column. If a UET goal already counts the same form fill, include only one of the two in Conversions, because Microsoft counts each goal separately and the lead would be counted twice.

Step 2: Check that msclkid reaches your form page

In Microsoft Ads open Campaigns → Settings → Account level options and confirm that Add Microsoft Click ID (MSCLKID) to URLs to allow conversion tracking is ticked. It is on by default, and Microsoft switches it on whenever you create a conversion goal, but check it: Microsoft says turning it off makes it impossible to import offline conversions.

Then click one of your own ads and read the address bar on the landing page. The URL should carry msclkid= followed by a long string. If your site redirects (http to https, www to non-www, language or country redirects), repeat the check after the redirect. A redirect that rebuilds the URL without its query string is the usual way the ID disappears.

Step 3: Create one offline conversion goal per event

In Microsoft Ads open Conversions → Conversion goals, select Create and choose the offline conversions type. Microsoft's simplified goal setup does not cover offline conversions, so use the manual setup. Repeat for each event from Step 1 with these settings:

  • Name. Use a name you will recognize in reports, such as Demo request. Microsoft limits it to 100 characters, requires it to be unique among your goals and warns that a name cannot be reused once you have chosen it.
  • Count. Choose Unique for lead events.
  • Conversion window. Set it to your real sales cycle up to the 90-day maximum. The default is 30 days, and a change applies going forward only.
  • Revenue. Leave it unassigned unless you have a defensible value per lead. A guessed value distorts bidding that optimizes for value.
  • Scope. If you run several accounts that send traffic to different sites, tie the goal to one account. Microsoft says a scope cannot be changed once it is set.
  • Include in Conversions. Tick it only for the goals bidding should chase.

Then wait two hours before sending anything to a new goal.

Step 4: Install SignalBridge and make every lead path fire one event

Copy the snippet from your pixel's Install screen and add it to the site-wide header, so it loads on every page, including form pages and thank-you pages. The script stores the msclkid and the time of the click when a visitor arrives, and keeps it in a cookie for 30 days. A newer Microsoft click replaces the stored one.

Consent is part of this step. If a visitor denies marketing consent, the script deletes the stored click ID and SignalBridge sends nothing to Microsoft for that visitor. For visitors in the EEA, the UK and Switzerland, Microsoft also asks you to pass consent through Consent Mode or the Transparency and Consent Framework on your UET tags. SignalBridge handles consent separately, holding Microsoft uploads when marketing consent is denied, or required and not yet granted, so connect your consent banner to it (see our Consent Mode v2 guide).

Then check that each lead path produces exactly one event:

What the script seesEvent it sends
A form on your page with an email fieldLead
A form whose action URL contains contactContact
A form whose action URL contains book or scheduleBookConsultation
A form whose action URL contains trialStartTrial
A form with an email field and a register or signup action URLSignUp
A Calendly or Cal.com booking confirmationScheduleCall
A thank-you page, such as /thank-you or /demo-thank-you, with no ecommerce signalsLead

A form without an email field is not reported, so keep the email field on any form you want counted.

Forms inside an embed are the usual gap. The script can read what a visitor typed into a HubSpot, Typeform or GoHighLevel embed for matching, but a submission inside an iframe is a separate page to the browser, so send the lead yourself from the embed's success event. The snippet defines sb_track before the script loads, so this works anywhere after it. For a HubSpot form built in the current forms editor, HubSpot's global form event is the hook, and the listener has to be defined before the form embed code runs:

<script>
  window.addEventListener('hs-form-event:on-submission:success', function () {
    window.sb_track('Lead', { form_id: 'demo-request' });
  });
</script>

Legacy HubSpot embeds use an onFormSubmitted callback instead. Other embeds have their own success callbacks. Use one route per form, either automatic detection or your own call. The pixel sends only one Lead per browser session in any hour, so whichever route fires first is the one that counts. Add a value in the same call, for example { value: 150, currency: 'USD' }, only if you can defend it. Without one, Microsoft uses the goal's own revenue setting.

Step 5: Connect Microsoft Ads and map events to goals

In your pixel's settings choose Connect Microsoft Ads. Sign in with the Microsoft account that manages the ad account, or use Sign in with Google if your Microsoft Advertising login runs through Google, then pick the ad account. Under Offline Conversion Goals, choose a name from the first list (for example SubmitLeadForm), choose the active goal it should feed from the second, select Add mapping, and repeat for each name from Step 1. Save the mappings.

SignalBridge lists only the active offline goals it finds in your account, so if the second list is empty, create and activate a goal in Microsoft Ads and reload the page. An event whose name has no mapped goal is not sent. Connecting a different ad account clears the mappings, so repeat this step after switching accounts.

From then on, every lead goes through the same checks before an upload. Consent must allow it, the event must be one Microsoft supports, the msclkid must look valid, the conversion time must not be in the future or older than about 89 days, and the click must not be later than the conversion. A lead that fails a check is skipped, and the reason is visible in the event details. Leads that pass go into a durable queue that retries temporary failures.

Step 6: Test with a real ad click and read the results

Microsoft counts a conversion only after an ad click, so the test needs a real one. Click one of your own ads from a normal browser window, submit your form with a clearly labeled test lead, and open the event stream in SignalBridge. The event should show an msclkid and Microsoft Ads marked as delivered. Delete the test lead from your CRM afterwards so it does not skew your lead counts. Microsoft Ads keeps the test conversion, so write down the date.

Then wait. Microsoft says offline conversions can take up to six hours to appear in reporting, so read the goal's conversion count in Microsoft Ads the next day. If it shows zero, read the unattributed reasons in the next section before you change anything.

Step 7: Add the stages after the form from your CRM

A form fill is a lead, not a sale. To teach Microsoft which leads became pipeline and revenue, your CRM has to send the later stages, and SignalBridge does not do that today. It has no CRM destination (a HubSpot one is planned, with no release date), its server-side tracking API has no field for a Microsoft click ID, and its Microsoft upload carries no hashed email or phone. Use whichever of these fits your stack:

  • Store the click ID with every lead. Add a hidden field to the form that carries the msclkid from the landing page URL or a first-party cookie, and save it on the CRM record. Microsoft's Conversions API guidance suggests keeping the latest value for 90 days and overwriting it when a newer click arrives, which is a sensible rule here too. Without the ID, a later upload has nothing to match, unless the goal uses enhanced conversions.
  • Upload a file from the CRM. For qualified leads or closed deals, export the rows and upload them with Microsoft's offline conversion template. Its columns are goal name, time, value, currency, click ID and optional hashed email and phone, with a time zone row at the top. Enhanced offline conversions let you leave the click ID empty and send a hashed email or phone instead.
  • Use a connector. Check the Conversions API partner list in the route comparison above for your CRM or CDP. A connector handles the mapping, and you still need the UET tag ID, a token and your goals.
  • Retract junk. To take back a lead that turned out to be spam, use Microsoft's bulk file format. Set Adjustment Type to Retract, or to Restate with an adjusted value to change a value, repeat the original goal name, conversion time and click ID, and add an adjustment time in UTC that is not earlier than the original conversion.

Why do offline lead conversions stay unattributed?

Microsoft can accept an upload and still not credit it to a click. Its offline conversion report exists, in its words, to help you understand and troubleshoot unattributed offline conversions, and every unattributed row carries one reason from a fixed list. These are the ones a B2B account is most likely to meet:

Microsoft's reasonWhat it meansLikely B2B cause and fix
NoMatchingClickFoundNo click matched the click ID, hashed email or hashed phoneThe ID was cut off or edited, or the visitor never came from a Microsoft ad. Store the full value and upload only leads that carry one
MissingMatchIdentifiersThe click ID is empty, and the hashed email or phone found no click eitherA file that relied on a hashed email or phone with no matching click. Add the click ID, or upload only leads that came from a Microsoft ad
ClickTimestampAfterConversionThe click is later than the conversionA backdated or imported CRM record. Send the real conversion time
ConversionTimeInFutureThe conversion time is in the futureA local time written as UTC. Convert to UTC
ConversionTimeExceedsMaxLookbackThe conversion time is older than 90 daysA late CRM update. Upload sooner, or send an earlier stage
HistoricalClickDataExpiredThe original conversion exists, but its click is older than 90 daysUsually a restate or retract sent too late. Send adjustments sooner
AdjustmentOriginalNotFound, ConversionAlreadyRetractedA restate or retract has no original record, or the conversion was already retractedRepeat the original goal name, time and click ID exactly, and retract each lead once
OutsideGoalLookbackWindowThe click falls outside the lookback window in the goal settingsA 30-day window on a 45-day cycle. Raise the window, which applies going forward
GoalNotFoundOrInactiveNo goal matches the conversion name, or the goal is inactiveA typo, a paused goal, or a goal under two hours old. Copy the exact name and keep it active
AccountMismatchMatching clicks exist, but all belong to other accountsAn agency or multi-account setup. Scope the goal to the right account
DuplicateConversionKeyThe same key was uploaded twice, or already attributedTwo tools or a manual file sending the same lead. Give each goal one sender
MalformedDataThe upload has malformed data or characters that block processingA bad file encoding or format. Use Microsoft's template

SignalBridge reads this report for the goals you mapped, covering the last seven days, and raises an alert in Tracking Health when it shows unattributed conversions or when the report itself has gone stale. The alert waits until the report covers at least five conversions, so one stray row does not trigger it. The report covers every upload to those goals, including a file you uploaded by hand, and it does not point at individual SignalBridge events, so treat an alert as a prompt to investigate rather than a verdict on one lead.

What can SignalBridge do for B2B Microsoft Ads leads, and what can't it?

NeedSignalBridge todayWhere else to get it
Capture msclkid and keep itYes, in a 30-day cookie. A newer click replaces it, and a denied marketing consent deletes itSafari can shorten script-written cookies, as described above
Detect form fills, contact requests, bookings and trialsYes for forms on your page, Calendly and Cal.com, and thank-you pages. Embeds need an sb_track callNone needed
Send them as Microsoft conversionsYes, to the offline goals you mapped, through a durable queue with retriesNone needed
Keep bots outYes. Traffic that Cloudflare Bot Management or its user-agent rules flag as a bot is stopped before delivery and billingSpam controls in the form tool, for humans who submit junk
Show delivery and attributionYes. Tracking Health shows delivery per platform, and Microsoft's own report is read for your goalsMicrosoft's offline conversion report
Sync ad spendYes, on Pro and aboveNone needed
Qualified lead, opportunity and closed-won stagesNo CRM sync todayMicrosoft's upload template or bulk file, or a Conversions API connector
Hashed email and phone for enhanced offline conversionsNo. Its Microsoft upload carries the click ID, time, value and currencyMicrosoft's upload template, or CAPI
Restate or retract a conversionNoMicrosoft's bulk file with adjustment rows
The Conversions APINo. It uses the offline conversion routeDirect API, partner connector or server-side tag manager
Conversions older than about 89 daysSkipped, to stay inside Microsoft's limitSend an earlier stage

Plans start at $29 a month for 20,000 events, and events count every accepted event, including page views, so check the volume of your own site on the pricing page. Microsoft Ads is one of the platforms you can connect on every plan. Starter allows two platforms.

How does LinkedIn profile targeting change what you track?

Microsoft says it is the only advertising platform other than LinkedIn that lets you target people by their LinkedIn profile: company, industry and job function. That is why Microsoft Ads is worth a look for B2B, and it raises the bar for the conversion data behind it.

The mechanics matter before you build on them:

  • On Search it only adjusts bids. Microsoft says LinkedIn targeting does not narrow your audience, so ads can still show to people who do not match. Audience campaigns can target and bid.
  • The adjustments multiply. They range from −90% to +900%, and a visitor who matches two segments gets both. Industry at +10% and job function at +20% give 1.10 × 1.20 = 1.32, a 32% increase.
  • Company lists are manual. Microsoft says you add companies inside the platform, importing a list from a file or another platform is not supported, and one campaign or ad group takes at most 1,000 companies.
  • Bidding reads them. Microsoft says an automated bid strategy is informed by the bid adjustments you set.

Put that together and the tracking lesson is plain: if the conversions behind an automated bid strategy include junk, the adjustments you stack on top raise bids on junk. Judge each segment by cost per qualified lead from your CRM, not by the lead count in Microsoft Ads, and keep adjustment stacks simple because they compound.

If you also run LinkedIn Ads, our LinkedIn Conversions API guide covers that half of a B2B paid mix. SignalBridge does not send to LinkedIn Ads today, and a destination is planned with no release date.

What should you check in the first 30 days?

  1. Delivery. Open Tracking Health and look at Microsoft Ads: events delivered, retrying and failed. Fix a failing mapping or an expired Microsoft sign-in first.
  2. Match rate. Look at the unattributed share Microsoft reports for your goals. A rising share points to a missing click ID, a short window or a time zone mistake from the table above.
  3. CRM reconciliation. Compare Microsoft's count for a goal with the CRM leads that carry an msclkid, not with all CRM leads. Organic, direct and other paid channels never appear in Microsoft's number.
  4. Quality. Rank campaigns and keywords by qualified leads and pipeline from the CRM. Microsoft's lead count is a signal, and the CRM is the record.
  5. Junk. Track how many leads sales marks as spam or unqualified. If the share climbs, tighten form validation and retract the junk rows.
  6. Windows. Compare your median time from click to form fill, and from form fill to qualification, with each goal's window. Raise a window that is shorter than your real cycle, up to 90 days.

FAQ

What is the Microsoft Click ID (msclkid) and why does B2B tracking need it?

The Microsoft Click ID is a unique identifier that Microsoft Advertising adds to your landing page URL when auto-tagging is on, which it is by default. It ties a later conversion to the exact ad click. B2B tracking needs it because the form fill often happens in a later session, and the click ID is what lets a server-side upload find the original click without relying on a browser cookie.

Do I still need the UET tag if I send offline conversions?

Offline conversion goals do not need the UET tag, but you should usually keep it. UET still drives remarketing audiences and on-site goals, and Microsoft recommends using its Conversions API together with UET wherever possible. If a UET goal and an offline goal count the same form fill, include only one of them in Conversions so the lead is not counted twice.

How long can my B2B sales cycle be before Microsoft Ads cannot credit the click?

Microsoft caps both limits at 90 days. A goal's conversion window can be set from one minute to 90 days after the click, and an offline conversion's time must be within the last 90 days when you upload it. SignalBridge stops at about 89 days to stay inside that limit. For longer cycles, send an earlier milestone such as the form fill or a booked meeting, and judge closed-won revenue in your CRM.

Does SignalBridge send qualified leads or closed deals to Microsoft Ads?

No. SignalBridge sends form fills, contact requests, booked meetings and trial sign-ups as they happen on your site. It has no CRM sync today, its tracking API has no field for a Microsoft click ID, and its Microsoft upload carries no hashed email or phone. For qualified-lead and closed-won stages, use Microsoft's offline upload template, its bulk file format or a Conversions API partner connector such as HubSpot's.

Does Microsoft Ads filter spam and fake leads?

No. Microsoft says it has no functionality to detect or eliminate test, fraudulent or duplicate conversions reported through UET, and we found no fraud screening described for offline uploads, where only repeats with the same click ID and conversion time are ignored. SignalBridge stops traffic that Cloudflare Bot Management or its user-agent rules identify as a bot before delivery, but it cannot tell a human who typed a fake address from a real prospect. Add form-level spam controls and retract junk leads.

Should lead goals count Unique or All conversions?

Use Unique for lead goals. Microsoft describes Unique as the right choice when you care whether a certain kind of lead was generated rather than how many sales happened, and it counts only the first conversion after an ad click. Use All when one click ID can produce repeated revenue events that you want added up, such as several invoices from one account.

Why does Microsoft Ads show fewer leads than my CRM?

Expect gaps. Microsoft counts a lead only if it finds an earlier ad click, credits the last ad click, applies each goal's conversion window and can take up to six hours to report offline conversions. Your CRM also counts leads from organic, direct and other paid channels, and from visitors who returned without a stored click ID. Compare Microsoft's count with CRM leads that carry an msclkid, not with all leads.

Is the Microsoft Conversions API better than offline conversions for B2B?

Not necessarily. The Conversions API carries website, CRM, offline and app events through one setup, with partner connectors and deduplication against UET through a shared event ID. Offline conversions carry one event matched by click ID, or by hashed email and phone on goals with enhanced conversions. SignalBridge uses the offline route. Choose the Conversions API when your CRM or CDP already has a Microsoft connector.

Sources

Ready to recover more conversions?

Start tracking what your pixels miss. Set up in 5 minutes, no credit card required.

Start Free Trial