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
msclkidwhen 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:
| Rule | What Microsoft documents | What it means for B2B |
|---|---|---|
| Click ID | With 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 phone | Your site must capture the ID on arrival and keep it until the lead is created |
| Click before conversion | The conversion time must be later than the recorded click | Backdated or imported CRM records fail |
| Upload age | The conversion time must be within the last 90 days when you send it | Late CRM updates are lost |
| Conversion window | Set per goal from one minute to 90 days after the click, 30 days by default. A change applies going forward only | Match it to your real sales cycle |
| Count type | Unique 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 click | Leads: Unique. Repeat revenue from one account: All |
| Goal name and time zone | ConversionName 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 setting | A typo, or a local time written as UTC, drops the lead |
| Waiting period | Wait two hours after creating a goal before uploading, and allow up to six hours for the data to show in reporting | Do not judge the setup on the first morning |
| Attribution | The last ad click gets the credit and earlier clicks count as assists | One conversion goes to one click |
| Quality control | No 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 once | Filter 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.
| Route | What it carries | Good for | Watch out for |
|---|---|---|---|
| UET goal (browser tag) | Page-load and event goals fired by the UET tag | Remarketing audiences, a quick start, thank-you page goals | Needs the browser and its cookie, and counts spam |
| Offline conversions through SignalBridge | Form fills, contact requests, booked meetings and trial sign-ups, matched by msclkid, with a time, value and currency | B2B teams that want lead-stage conversions without writing code | Front 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 conversions | Qualified-lead and closed-won stages inside 90 days | Manual 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 manager | Teams that already run a CDP or a CRM with a Microsoft connector | Needs 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 did | SignalBridge event | Name in the mapping list |
|---|---|---|
| Submitted a demo or enquiry form | Lead, sent automatically, or SubmitApplication from your own call | SubmitLeadForm |
| Asked for a quote | RequestQuote, from your own call | RequestQuote |
| Used a contact form | Contact | Contact |
| Booked a call through Calendly, Cal.com or a booking form | ScheduleCall, BookConsultation or Schedule | BookAppointment |
| Started a free trial or created an account | StartTrial, SignUp or CompleteRegistration | SignUp |
| Joined a newsletter | Subscribe | Subscribe |
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 sees | Event it sends |
|---|---|
| A form on your page with an email field | Lead |
| A form whose action URL contains contact | Contact |
| A form whose action URL contains book or schedule | BookConsultation |
| A form whose action URL contains trial | StartTrial |
| A form with an email field and a register or signup action URL | SignUp |
| A Calendly or Cal.com booking confirmation | ScheduleCall |
| A thank-you page, such as /thank-you or /demo-thank-you, with no ecommerce signals | Lead |
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
msclkidfrom 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 reason | What it means | Likely B2B cause and fix |
|---|---|---|
| NoMatchingClickFound | No click matched the click ID, hashed email or hashed phone | The 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 |
| MissingMatchIdentifiers | The click ID is empty, and the hashed email or phone found no click either | A 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 |
| ClickTimestampAfterConversion | The click is later than the conversion | A backdated or imported CRM record. Send the real conversion time |
| ConversionTimeInFuture | The conversion time is in the future | A local time written as UTC. Convert to UTC |
| ConversionTimeExceedsMaxLookback | The conversion time is older than 90 days | A late CRM update. Upload sooner, or send an earlier stage |
| HistoricalClickDataExpired | The original conversion exists, but its click is older than 90 days | Usually a restate or retract sent too late. Send adjustments sooner |
| AdjustmentOriginalNotFound, ConversionAlreadyRetracted | A restate or retract has no original record, or the conversion was already retracted | Repeat the original goal name, time and click ID exactly, and retract each lead once |
| OutsideGoalLookbackWindow | The click falls outside the lookback window in the goal settings | A 30-day window on a 45-day cycle. Raise the window, which applies going forward |
| GoalNotFoundOrInactive | No goal matches the conversion name, or the goal is inactive | A typo, a paused goal, or a goal under two hours old. Copy the exact name and keep it active |
| AccountMismatch | Matching clicks exist, but all belong to other accounts | An agency or multi-account setup. Scope the goal to the right account |
| DuplicateConversionKey | The same key was uploaded twice, or already attributed | Two tools or a manual file sending the same lead. Give each goal one sender |
| MalformedData | The upload has malformed data or characters that block processing | A 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?
| Need | SignalBridge today | Where else to get it |
|---|---|---|
Capture msclkid and keep it | Yes, in a 30-day cookie. A newer click replaces it, and a denied marketing consent deletes it | Safari can shorten script-written cookies, as described above |
| Detect form fills, contact requests, bookings and trials | Yes for forms on your page, Calendly and Cal.com, and thank-you pages. Embeds need an sb_track call | None needed |
| Send them as Microsoft conversions | Yes, to the offline goals you mapped, through a durable queue with retries | None needed |
| Keep bots out | Yes. Traffic that Cloudflare Bot Management or its user-agent rules flag as a bot is stopped before delivery and billing | Spam controls in the form tool, for humans who submit junk |
| Show delivery and attribution | Yes. Tracking Health shows delivery per platform, and Microsoft's own report is read for your goals | Microsoft's offline conversion report |
| Sync ad spend | Yes, on Pro and above | None needed |
| Qualified lead, opportunity and closed-won stages | No CRM sync today | Microsoft's upload template or bulk file, or a Conversions API connector |
| Hashed email and phone for enhanced offline conversions | No. Its Microsoft upload carries the click ID, time, value and currency | Microsoft's upload template, or CAPI |
| Restate or retract a conversion | No | Microsoft's bulk file with adjustment rows |
| The Conversions API | No. It uses the offline conversion route | Direct API, partner connector or server-side tag manager |
| Conversions older than about 89 days | Skipped, to stay inside Microsoft's limit | Send 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?
- 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.
- 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.
- 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. - 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.
- Junk. Track how many leads sales marks as spam or unqualified. If the share climbs, tighten form validation and retract the junk rows.
- 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.
Related reading
- Microsoft Ads offline conversions: server-side setup guide
- Microsoft Ads conversion tracking: complete server-side setup
- Google Ads vs Microsoft Ads: server-side tracking and ROAS
- Server-side tracking for lead generation: complete guide
- LinkedIn Conversions API: complete setup guide for B2B
- Case study: how a B2B SaaS company fixed iOS lead tracking
- Offline conversion tracking: the complete guide
- What is a GCLID? Every ad click ID explained
- What is event deduplication?
- What is Consent Mode v2?
Sources
- Microsoft Advertising, How does conversion tracking work?: last ad click attribution, conversion window, count types, Include in Conversions and the statement on test, fraudulent and duplicate conversions.
- Microsoft Advertising, Auto-tagging of Microsoft Click ID: where the setting lives and that it is on by default.
- Microsoft Advertising, How do I create a conversion goal?: goal creation, name rules and the effect of turning auto-tagging off.
- Microsoft Advertising API, OfflineConversion data object: the two-hour wait, six-hour reporting delay, 90-day rules, UTC times and duplicate handling.
- Microsoft Advertising API, OfflineConversionUnattributedReason value set: the full list of unattributed reasons.
- Microsoft Advertising API, Offline conversion record (bulk): restate and retract rows.
- Microsoft Advertising API, Conversions API: implementation paths, partner integrations and click ID storage guidance.
- Microsoft Advertising, LinkedIn profile targeting and bid adjustments: targeting rules, the 1,000 company limit and how adjustments multiply.
- HubSpot, Global form events and legacy forms: the form success hooks.
- WebKit, Tracking Prevention in WebKit: the seven-day and one-day cookie caps.
Related Articles
Microsoft Ads Offline Conversions: Server-Side Setup Guide
Set up Microsoft Ads offline conversions and server-side tracking in minutes. Learn the Offline Conversions API, CAPI, and msclkid attribution — with 2026 Bing Ads benchmarks.
Microsoft Ads Conversion Tracking: Complete Server-Side Setup (2026)
Set up Microsoft Ads server-side conversion tracking in 5 minutes. We cover UET setup, offline conversion import, and the Conversions API — with real Bing Ads attribution data from 2026 campaigns.