Microsoft’s New Conversions API Fixes the One Signal Automated Bidding Couldn’t See: Your Phone Calls

Article title on dark teal background with brand-green accents about Microsoft's Conversions API and phone calls.

Share This Post

By Shane McIntyre, Founder of Elevarus.

TL;DR

  • Microsoft Conversions API setup wires a server-side path that sends conversion data from your own systems into Microsoft Advertising, without waiting on a browser event.
  • Keep the Universal Event Tracking (UET) tag running. Microsoft recommends both. CAPI adds coverage, it does not replace the tag.
  • Reserve CAPI for events the browser never saw: qualified phone calls and offline closes. That is pure coverage gain with zero double-count risk.
  • Where both sources can send the same conversion, attach a shared eventId so Microsoft drops the duplicate. Skip it and automated bidding counts every lead twice, then drifts your cost per lead.

Questions this article answers:

Microsoft Conversions API setup is the wiring of a server-side connection that sends conversions to Microsoft Advertising directly from your systems, running alongside the UET tag instead of replacing it. Microsoft just published documentation for it, so CAPI is now a setup you can wire this week (per PPC News Feed).

The real win for pay-per-call and appointment-based advertisers is not the website form. It is the qualified phone call and the offline close, the conversions that never had a reliable browser event to begin with.

Here is why that matters. Automated bidding, Microsoft’s version of Smart Bidding, has been pacing on a browser-side sample. Ad blockers and privacy controls thin that sample over time. Server-side delivery sends the events straight to Microsoft, so the bidder learns on real conversions instead of the ones a browser survived long enough to report.

What Microsoft Shipped: A Server-Side Path for the Conversions UET Never Saw

Microsoft’s Conversions API is a server-side channel that sends conversions to Microsoft Advertising through your existing UET setup, per Microsoft’s UET and Conversions API integration doc. It runs with the UET tag, not instead of it.

Because the send happens server-to-server, you are no longer limited to what a browser can fire. A rep marks a call qualified. A deal moves to closed in your CRM. An offline sale lands. These are exactly the events a browser tag cannot reliably capture, and server-side delivery is what lets them reach the bidder.

Key Concept: CAPI sends conversions to Microsoft server-to-server through your existing UET setup, which means events that never touched a browser can still train automated bidding. Microsoft recommends running it alongside the UET tag, not as a replacement (per Microsoft’s integration doc).

How Microsoft Ads CAPI differs from the UET tag you already have

The UET tag captures browser activity and page context in real time. CAPI carries the events that happen after the tag fires: a qualified call, a closed deal, an offline sale. Different jobs, same measurement account.

Why the offline close and qualified call, not the form fill, are the real gain

Most setup guides treat the website form as the use case. For a pay-per-call operator, the form was already tracked. What was missing is the billable call and the closed deal. That is where CAPI adds coverage you never had.

Quick Win: Send only the qualified phone call and the offline close through CAPI first. There was never a browser event to collide with, so it is clean coverage with zero double-count risk. No eventId work required.
Bar chart of Tealium CAPI batch limits: 1,000 max requests, 10-second hold time, 1 batch size.
Sourced figures — Max requests per batched CAPI request queue (Tealium connector): 1,000 requests; Max time oldest request is held before a CAPI batch flushes (Tealium connector): 10 minutes; Max size of a batched CAPI request (Tealium connector): 1 MB. Sources: docs.tealium.com.

Turn On CAPI Without Poisoning Automated Bidding: The Shared eventId Move

The day-one mistake is double-firing the same conversion from both sources. If CAPI sends your lead and the UET tag still fires that same lead in the browser, every form fill counts twice.

Operator Note: Bidding reads the inflated volume, decides your cost per lead is better than it really is, and bids up. Your true cost per lead drifts before your reports flag it. Cost per lead is spend divided by qualified leads, so double-counting the denominator quietly deflates the number the bidder trusts.

Pick one source of truth per conversion action

The fix is not to rip out UET. The cleanest approach is to pick one source of truth per conversion action, and where both sources could send the same event, attach a shared eventId so the platform can deduplicate. Here is how the mapping looks.

Conversion action Source of truth Shared eventId needed? Why
Website form fill UET tag (browser) Yes, if CAPI also sends it Both sources can see it, so dedupe by eventId
Qualified phone call CAPI (server) No Browser never captured it, no collision
Offline / CRM-stage close CAPI (server) No Happens after UET fires, off the browser entirely

Cite this data: Source-of-truth mapping for Microsoft Ads Conversions API versus UET, compiled by Elevarus from Microsoft Advertising’s Conversions API documentation, 2026. Values reflect Microsoft’s published beta guidance and may change as the beta ships.

The Microsoft Conversions API Setup to Run This Week

Run the Microsoft Conversions API setup in this order, then test before you trust a single bid.

  1. Confirm your UET tag and a linked conversion goal. CAPI sends its events through UET, so you still need a UET tag and at least one conversion goal in place before anything attributes (per Microsoft’s integration doc). Skip this and the events land nowhere.
  2. Connect the server source. A server-side Google Tag Manager container or a vendor connector both work.
  3. Send only qualified calls and offline closes server-side. Define the qualified-call event by a minimum billable duration, long enough to filter quick misdials, so only real leads feed bidding. Tune the threshold to your own conversion data. Upload every call as a conversion instead and Microsoft optimizes toward junk, the same way Google does.
  4. Attach a shared eventId to any action both sources could send, like the web form.
  5. Run a dedupe test. Confirm one conversion lands, not two, before bids react.

Which conversion action should feed automated bidding?

Point the bidder at the event that maps to money. Set a Target CPA strategy to optimize toward the qualified-call conversion delivered by CAPI, not raw form fills. Once server-side volume steadies over roughly two weeks, tighten the target or switch the optimized action to the offline close if that is where your revenue sits. Our pre-hash normalization step for call-tracking match rates is the same discipline on the Google side, and the same logic drives server-side conversion tracking for lead buyers.

When this is a smaller win: if all your conversions happen in the browser and your tracking is already clean, CAPI earns you less. It pays off when real conversions happen off the browser, which is exactly the pay-per-call and appointment case.

What this does not do: this is not a full CAPI implementation manual or a server-side GTM tutorial. It does not cover the LinkedIn Conversions API, a separate product. And it does not promise a lift number, because no public source states one.

Frequently Asked Questions

Does Microsoft CAPI replace the UET tag?

No. Microsoft recommends running the Conversions API with the UET tag, not instead of it. UET captures browser activity in real time, while CAPI carries events that happen after the tag fires, like offline closes and phone calls. Both together give you fuller coverage.

Will turning on the Conversions API change my reported CPA?

Only if you double-count. If CAPI and UET both fire the same conversion without a shared eventId, your reported CPA looks artificially low and bidding drifts. Pick one source of truth per action and dedupe any event both sources send.

Can I run Microsoft CAPI server-side only, without a UET tag?

No. CAPI sends its events through UET, so a UET tag and at least one linked conversion goal still need to be in place before CAPI events will attribute (per Microsoft’s integration doc). Operators who assume CAPI replaces the tag hit this wall on setup day.

Is Microsoft Ads CAPI the same as the LinkedIn Conversions API?

No. They are separate products, even though Microsoft owns both. The LinkedIn Conversions API uses its own identifiers and setup, so do not wire one expecting the other’s behavior.

A mis-wired Microsoft Conversions API setup drifts bidding quietly, and most operators do not catch it until cost per lead has already climbed. If you want a second set of eyes on your source-of-truth mapping and dedupe before automated bidding is trusted, book a free consultation and we will audit the signal layer with you.






Work with Elevarus

Are You Ready to Grow With a Proven Lead Generation & Performance Marketing Agency?

Get a free, no-pressure strategy call with our lead-generation team. We'll map the fastest path to more qualified leads for your business.

Book a free call →

Ready to put this into action?

Picture of <a href="https://elevarus.com/shane-mcintyre/">SHANE MCINTYRE</a>

Founder and CEO of Elevarus, specializing in paid media, lead generation, pay-per-call, and customer acquisition.