Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Return on ad spend on Microsoft Advertising. Revenue ÷ Spend. Microsoft Ads typically delivers a higher ROAS than Google Ads on matched campaigns thanks to lower CPC, often 1.3x to 1.8x the Google ROAS. Below 2x is unprofitable for most DTC margins; above 4x is healthy and worth scaling into.
The formulametrics.Revenue ÷ metrics.Spend. Both are in account currency, no unit conversion needed (unlike Google Ads’ cost-micros quirk). The result is a unitless ratio; nine returned as 4.9 means £4.90 of measured revenue per £1 spent.
What “spend” meansGross media cost, post Click Quality filter. The figure Microsoft will bill you for.
What “revenue” meansUET-tracked conversion value in your Microsoft Advertising account. NOT order revenue from the commerce platform, the two often differ by 15, 35%. See Reconciling below.
Conversion attribution modelWhatever you’ve configured in Microsoft Advertising. Default is Last click with cross-device. Older accounts may still use Last click without cross-device; switching to data-driven can shift ROAS 10, 20% overnight.
View-through conversionsExcluded from the primary Revenue metric used here. Microsoft splits primary conversions (counted in ROAS) from “all conversions” (which adds view-through). This card uses the primary, conservative read.
Bot / invalid trafficSpend is post-Click-Quality-filter; revenue is real-purchase only (UET tag fires on real browsers). Some IVT slips through on Search Partner Network and Microsoft Audience Network, expect a 2, 5% drag on ROAS from low-quality clicks that didn’t get credited back.
CurrencyAccount currency. Multi-currency advertisers should run separate accounts per currency.
Cross-account aggregationPer-customer-account. For a manager-account-equivalent view summed across child accounts, use the per-account ROAS drilldown.
Time window30D vsP (default 30D vs the prior 30D).
Alert trigger< 2.0 (warn), < 1.0 (critical). Driven by sentiment_key: roas. Gauge thresholds: good ≥4, warn 2, 4, critical <2.
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Microsoft Ads (Bing) data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A UK home-and-garden retailer running both Google Ads and Microsoft Ads. The 30-day window covers 03 Apr 26 to 02 May 26.
ChannelSpendMicrosoft-attributed RevenueROASEquivalent Google ROAS for matched campaigns
Bing Search (brand)£1,100£14,20012.9x14.2x
Bing Search (non-brand)£2,550£6,8002.7x1.9x
Microsoft Audience Network£820£7500.9x1.4x (Display)
Total Microsoft (this card)£4,470£21,7504.9x3.6x
What’s interesting:
  1. Microsoft non-brand ROAS (2.7x) beats Google non-brand (1.9x). That’s the structural Microsoft advantage at work, lower auction competition means each click costs less, so the same conversion rate delivers more ROAS. This is the single best argument for keeping Microsoft Ads on a media plan, even at small spend it improves blended ROAS.
  2. The 4.9x headline is inflated by brand keywords. Strip brand and Microsoft non-brand ROAS is 2.7x, still acceptable but no longer remarkable. When reporting to leadership, distinguish brand from non-brand or you’ll over-celebrate.
  3. Microsoft Audience Network at 0.9x is unprofitable in isolation but worth keeping if it’s driving mid-funnel awareness that converts elsewhere. If you can’t see that downstream lift, pause MSAN.
  4. The prior 30-day ROAS was 5.4x on £4,180 spend. Spend up 7%, ROAS down 9%. Acceptable but watch the next two weeks; a sustained ROAS slide alongside a spend rise is the warning shape.
Quick sanity tests:
  • ROAS up + spend up = scaling into efficient inventory (rare, excellent).
  • ROAS flat + spend up = healthy expansion.
  • ROAS down + spend up = scaling beyond efficient frontier; investigate before holding.
  • ROAS down + spend flat = audience or competitive change; check Search Partner Network and MSAN share.
  • ROAS up + spend down = pulled back wisely from a low-quality placement.
A 4.9x Microsoft Ads ROAS combined with a typical Google Ads 3, 5x is the textbook “Microsoft as cheap incremental layer” picture. Most merchants under-fund Microsoft and miss this lift.

Sibling cards merchants should reference together

CardWhy pair it with ROAS
Microsoft Ads Total SpendThe denominator. ROAS up + spend up is healthy scaling; ROAS up + spend down is unhealthy retreat.
Microsoft Ads Total RevenueThe numerator. Tells you whether ROAS moved on cost-side or revenue-side.
Microsoft Ads ROAS by CampaignHeadline ROAS hides per-campaign variance, especially brand vs non-brand. Open this before making decisions.
Microsoft Ads ROAS TrendDaily series. Microsoft ROAS is volatile day-to-day on small spend; the 7-day rolling is the useful read.
Microsoft Ads ROAS by DeviceMicrosoft skews desktop more than Google; device-level ROAS often diverges by 30%+.
Microsoft Ads CPA TrendCost per acquisition. ROAS-blind CPA can mislead because cheap conversions can also be tiny conversions.
Microsoft Ads Clicks vs ConversionsThe broken-tracking canary. Clicks rising while conversions stagnate = UET tag broke.
Google Ads ROASThe benchmark. Microsoft non-brand ROAS often beats Google non-brand by 30, 80%; that’s the cheap-incremental thesis in numbers.
Shopify Total RevenueThe truth side. Real ROAS for the business uses commerce-platform revenue (UTM-tagged Bing/CPC) not Microsoft’s measured value.

Reconciling against the vendor’s own dashboard

Where to look in Microsoft Advertising: Microsoft Advertising → Reports → Performance → Account Summary, with both Spend and Revenue columns visible. Build the Revenue / Spend column or compute manually. The headline figure should match this card to within 1, 2%. Other Microsoft Advertising views that look like ROAS but aren’t:
  • Return on Ad Spend (ROAS) in the Smart Goals report: same metric, but Smart Goals uses Microsoft’s modelled values rather than UET-measured. Ours uses primary UET-measured.
  • Cost per acquisition (CPA): inverse-ish of ROAS but in absolute pounds; not a ratio.
  • Profit: not exposed by the API for our cards; this card is purely revenue-over-spend.
Why our number may legitimately differ from the Microsoft UI (rare):
ReasonDirection of divergence
Real-time event-ingestion lag. Microsoft conversions can ingest with 1, 6 hour delay.Marginal on the most recent 24h
Attribution window changes. If you changed the model mid-window, the Microsoft UI shows the current model retroactively; we do the same.None
Currency. Both use account currency.None
Smart Goals modelled value. If you opted into Smart Goals modelled revenue, Microsoft UI may show a higher revenue (and thus higher ROAS); we report primary measured.Ours lower
Why the BUSINESS ROAS often differs from this card (the important one): The Revenue Microsoft Advertising reports is whatever the UET tag captured. That value flows from your tag config:
  • If the UET tag sends order revenue with VAT/tax, ROAS is on a tax-inclusive basis.
  • If the tag sends only first-purchase value, ROAS understates returning-customer revenue.
  • If you’ve enabled Enhanced Conversions, ROAS includes some Microsoft-imputed revenue.
For true business ROAS (the figure your CFO cares about), divide shopify.total_revenue tagged utm_source=bing (or microsoft) by Microsoft Ads spend. The two figures should be within 35%; bigger gaps usually mean (a) UET tag-fire failure (run UET diagnostics in the Microsoft UI), or (b) UTM tagging gaps on the commerce side, not all Bing traffic carries the right UTMs. Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
google_ads.gads_roasMicrosoft non-brand ROAS typically 1.3, 1.8x Google non-brand ROAS for matched campaignsLower CPC on Bing means the same conversion rate produces higher ROAS. If Microsoft ROAS underperforms Google on matched campaigns, your bids on Microsoft are likely too high (a frequent post-import problem).
google_analytics.ga_revenue_by_channel(GA4 Microsoft channel revenue) ÷ Microsoft Ads spend ≈ this card, ±15%GA4 attributes per session, Microsoft attributes per ad click; window mismatches drive most variance.
shopify.total_revenueTrue business ROAS = (Shopify Bing-tagged revenue) ÷ Microsoft Ads spendShopify catches every paid order; UET catches only tag-fired purchases. True ROAS is typically 1.15, 1.35x this card.

Known limitations / merchant FAQs

My Microsoft Ads ROAS is 5x and Google ROAS is 3x. Should I move budget from Google to Microsoft? Not blindly. The ROAS gap is real but Microsoft’s volume ceiling is much lower, you can’t 10x your Microsoft spend without ROAS collapsing because there simply aren’t enough Bing/Yahoo searches at your target keywords. The right play is: increase Microsoft until ROAS dips below 3x or volume plateaus, whichever comes first. Most merchants find Microsoft can absorb 2, 3x the spend they currently allocate before efficiency breaks. My Microsoft Ads ROAS dropped 30% overnight, what should I check first? In order of likelihood: (1) UET tag regression. Check Clicks vs Conversions, if clicks held but conversions cratered, the tag broke. (2) Microsoft Audience Network ramping. MSAN is on by default and can suddenly find inventory at much lower ROAS than Search; check the Network segment in your campaign report. (3) Smart Bidding learning phase. A campaign restructure (new conversion goal, audience swap) puts Smart Bidding back into a 7-14 day learning phase where ROAS is unstable. (4) Attribution-model change. Check Tools → Attribution; someone may have switched from last-click to data-driven. (5) Search Partner Network share rose. Auto-included partners deliver lower ROAS than Bing core; segment by network and review. Why is my Branded Search ROAS so high (12x+) on Microsoft? Same dynamic as Google, plus more pronounced. People searching your brand on Bing are usually existing customers checking your site. Microsoft’s lower CPC makes brand ROAS look spectacular but the volume is small. Brand ROAS is a poor measure of paid-acquisition health, you’re not really acquiring those customers. The “true acquisition” ROAS is the ROAS on non-brand campaigns only. Should I optimise for ROAS or for total profit? Depends on your phase. If you’re profitability-constrained, optimise ROAS. If you have profitable unit economics and want growth, optimise spend × ROAS (i.e. revenue) and accept ROAS will compress as you scale. Microsoft Ads is rarely the channel where this matters at scale, the volume just isn’t there. Most decisions on Microsoft are “should we be spending more here, full stop”, and the answer is usually yes. My non-brand Microsoft ROAS is 1.5x. Should I pause those campaigns? Probably not, but tighten them. A 1.5x ROAS on Microsoft non-brand corresponds roughly to 0.9, 1.1x on Google for the same audience (because Microsoft’s lower CPC compensates). At that level you’re slightly unprofitable on direct response but likely contributing to brand awareness that Google captures later. Tactical moves: (a) raise the bid floor to push out the bottom 30% of clicks, (b) tighten match types from Broad to Phrase or Exact, (c) audit search terms for the worst converters, (d) check device performance, mobile is often a third the ROAS of desktop on Microsoft. Why does my Microsoft ROAS look healthy in this card but my P&L disagrees? Same trap as Google: the Revenue Microsoft reports is gross, before COGS, fulfilment, returns, and overhead. For a 60% gross margin and 8% return rate, a 4x ROAS gives roughly 1.4x contribution multiple, marginally profitable. Rule of thumb: divide ROAS by 2 to estimate true contribution multiple for typical DTC margins. Can I trust the “today” ROAS? Less than the rolling 7-day. Microsoft conversions ingest with 1, 6 hour lag, and view-through windows accumulate over multiple days. The 7-day rolling is the most actionable. Don’t restructure based on a single day’s Microsoft ROAS, especially below £500 daily spend where one or two outlier orders can swing the number 30%. My MCC has 5 child accounts. Why does this card only show one? This card is per-customer-account. To see ROAS aggregated across multiple Microsoft Advertising customer IDs, use the per-account ROAS drilldown, or add each customer ID as a separate connector instance.

Tracked live in Vortex IQ Nerve Centre

ROAS is one of hundreds of KPI pulses Vortex IQ tracks across Microsoft Ads (Bing) and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.