In short: One clock is real. Microsoft is retiring its SOAP API: new features go REST-only on October 1, 2026, and SOAP switches off completely on January 31, 2027. Everything else is Microsoft quietly reaching feature parity with Google, from PMax and AI Max to generative assets, Google login and import. That parity, plus the fact that almost nobody automates Bing, makes 2026 the year to build.
On the first of April this year, Microsoft published a blog post announcing the end of its SOAP API. I checked the date twice, because burying a protocol funeral in an April 1 post is asking for trouble. It was real. New features stop shipping to SOAP on October 1, 2026, and on January 31, 2027 the whole thing switches off.
Then I did what twenty years in PPC have drilled into me. I opened our codebase at Lynt and checked which connectors still speak SOAP to Bing. Not because the deadline is close. Because an API retirement never breaks anything on the day it’s announced. It breaks a reporting job fourteen months later, mid-quarter, in an account where nobody remembers who wrote the script.
That deadline is the one hard clock in Microsoft’s API year. Everything else the platform shipped is quieter and, honestly, more interesting. Piece by piece, the Bing Ads API caught up with Google. PMax, AI Max, generative assets, Google login, richer import. I’ve spent twelve years writing code against Google’s Ads API, and for most of that time Microsoft’s was the platform you integrated last, grudgingly, if the client insisted. This is the first year where porting a Google automation to Bing costs almost nothing.
And the competition still treats Bing as an afterthought, which is exactly why the window is open. So I’ll walk the year the same way I walked Google’s. For each change, what it is, why it matters for your account, and the exact call or payload to build. Deadline first, opportunity after.
The one hard clock: SOAP is being retired
This is the only dated obligation of the Microsoft year, so it goes first.
What changed. On April 1, 2026, Microsoft announced a hard timeline to move the Advertising API off SOAP and onto REST. Two dates matter:
- October 1, 2026 is the day new features ship in the REST API only. SOAP stops getting anything new.
- January 31, 2027 is the day SOAP is switched off completely. Existing SOAP integrations run until then, and not a day after.
The PPC.land and ALM Corp write-ups both confirm the same dates.
Why it matters for your account. If any reporting job, bid script or connector touches Bing through the SOAP SDK, it has an expiry date. And the move is no cosmetic swap. Reporting works differently in REST, the auth flow differs, and error handling changes. A pipeline you forget about will simply stop returning data on January 31, 2027, with no warning beyond a blog post from ten months earlier.
What to do. If your Bing tooling is thin or non-existent, don’t bother porting the old SOAP code. Build REST-first and skip a generation. REST is plain HTTP and JSON. A report goes from a SOAP envelope to a JSON POST against the Reporting endpoint, with an OAuth bearer token and your developer token in the headers:
# OLD: SOAP envelope to ReportingService.svc (off on 2027-01-31)
# <s:Envelope><s:Body><SubmitGenerateReport>...</SubmitGenerateReport></s:Body></s:Envelope>
# NEW: REST. Submit a report request as JSON.
curl -X POST \
"https://reporting.api.bingads.microsoft.com/Reporting/v13/GenerateReport/Submit" \
-H "Authorization: Bearer $OAUTH_TOKEN" \
-H "DeveloperToken: $DEV_TOKEN" \
-H "CustomerAccountId: $ACCOUNT_ID" -H "CustomerId: $CUSTOMER_ID" \
-H "Content-Type: application/json" \
-d '{ "ReportRequest": { "Type": "CampaignPerformanceReportRequest",
"Aggregation": "Daily", "Columns": ["TimePeriod","CampaignName","Clicks","Spend"] } }'
(The REST host, the OAuth + DeveloperToken header model and the v13 path are from Microsoft’s docs. Confirm the exact request body for your report against the release notes before you ship.)
The upside of being forced. REST gives you broader language support and a clean fit for modern stacks (Python httpx, n8n, serverless functions), plus far easier debugging than a SOAP envelope. Migration is the chance to rebuild your Bing tooling cloud-native instead of dragging the old design across.
Generative assets, written by the API
With the deadline scheduled, the rest of the year is parity. Google already taught you how to use every piece of it.
What changed. February 2025 (SDK 13.0.24) shipped recommendation endpoints. CreateResponsiveSearchAdRecommendation, CreateAssetGroupRecommendation and CreateResponsiveAdRecommendation, each with a Refine… counterpart. July 2025 (13.0.25) added a job-based variant and brand-kit recommendations, and February 2026 added AutoGeneratedAssetsEnabled to RSA settings. All from the release notes.
Why it matters for your account. Ad-copy generation and iteration is now scriptable instead of a UI-only chore. That is the difference between hand-writing copy for ten asset groups and generating it for hundreds.
What to do. Wire the recommendation endpoints into the creative workflow you already run for Google. Generate, refine against the brand kit, push:
feed/product → CreateResponsiveSearchAdRecommendation
→ RefineResponsiveSearchAdRecommendation (brand-kit term exclusions)
→ push to ad group (no manual copy-paste from the UI)
Bing becomes another output channel of your existing ad-copy pipeline instead of a separate hand-built one.
AI Max for Search, with an API switch
What changed. AI Max for Search opened to pilot in May 2026, with the API hook AISearchSetting in Campaign Management. It brings expanded query matching, asset personalization and smart URL routing, the same post-keyword trend as Google’s AI Max, and it exposes the guardrails through the API. Brand inclusions and exclusions, term exclusions, messaging restrictions. Search Engine Land covered the launch alongside Microsoft’s broader agentic-web push.
Why it matters for your account. If you already run a DSA-to-AI-Max migration on Google, the playbook transfers to Microsoft almost one for one. So does the trade. You gain reach and hand over matching and URL choice, which makes the guardrails the part you don’t skip.
What to do. Set AISearchSetting on the campaign and deploy your brand-kit guardrails programmatically across accounts, the way you do on Google:
{
"AISearchSetting": { "Enabled": true },
"BrandKit": {
"TermExclusions": ["competitor-name", "off-brand-claim"],
"MessagingRestrictions": ["no superlatives without proof"]
}
}
(AISearchSetting and the brand-kit exclusions are real Campaign Management additions from March and May 2026. The exact object nesting is illustrative. AI Max is still a pilot, so confirm the schema and GA status in the release notes right before you build against it.)
Verify AI Max dates before you commit. It’s an open pilot, and pilot timelines move fast. Check the current status in the release notes on the day you build, not the day you read this.
Porting your Google setup just got cheap
The clearest theme of the year is convergence. Microsoft made it cheap to bring your Google setup over.
Google login (Dec 2025, 13.0.26)
GoogleOAuthDesktopMobileAuthCodeGrant / GoogleOAuthWebAuthCodeGrant let you authenticate the Bing Ads API with the same Google identity you use for Google Ads. A March 2026 fix preserved the Google refresh token.
Richer Google import (Mar 2026, 13.0.27)
New import options: NewPortfolioBidStrategy, NewAIMaxSettings, topic targets. The May 2026 Import Center adds step-by-step error diagnostics and import filtering.
Performance Max parity
PMax via API is in worldwide open beta, with AutoGeneratedImageOptOut / AutoGeneratedTextOptOut, PageFeedIds and campaign-level negative age/gender.
New Customer Acquisition (Feb 2025)
NCA goals are fully scriptable, and 2026 added import of NCA goals straight from Google PMax.
Why it matters for your account. What you build on Google now ports to Bing at close to one to one. With Google login you don’t even maintain a second OAuth mental model, because the same Google identity authenticates both:
# Authenticate the MICROSOFT API with your existing Google identity (Dec 2025+).
# GoogleOAuthWebAuthCodeGrant is a Bing Ads SDK auth class, not a raw grant_type.
from bingads.authorization import GoogleOAuthWebAuthCodeGrant
authentication = GoogleOAuthWebAuthCodeGrant(
client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_url=REDIRECT_URI,
)
# one OAuth flow across Google Ads + Microsoft Advertising;
# a March 2026 fix preserves the Google refresh token between runs.
What to do. Pick the single Google job with the highest payoff (NCA goals and generative assets are the usual first picks) and port it to Bing as a pilot. The auth and import work is already done for you, so the port is mostly reading your own Google code. (The Google-OAuth grant classes are real SDK additions from December 2025. Confirm the exact constructor and auth flow against the release notes, because it’s an SDK helper rather than a token-endpoint grant value.)
Measurement grew up
Three upgrades make Bing data finally easy to wire into your own BI and CRM:
The measurement upgrades worth wiring in
- MSClickIdPerformanceReport (May 2026) Join MSCLKID to CRM orders for true ROAS
- BidStrategyReport (Dec 2025) Bid-strategy performance without UI scraping
- DataDriven attribution via API Set the model in code, not by hand in the UI
- Offline conversions by goal ID (Mar 2026) Cleaner server-side pipelines, plus ConversionDelay
Why it matters for your account. MSClickIdPerformanceReport is the one to reach for first. We run customer-level business reporting for clients in BigQuery, and the most valuable join in it is click ID to CRM order, because a CRM join replaces platform-reported ROAS with the real number. On Google that join runs on GCLID. This report gives Bing the same seam. And the report itself is just another REST submit against the v13 Reporting endpoint, so it drops straight into the migration from the first section.
Shopping, meanwhile, has quietly consolidated. The legacy Content API v9.1 is effectively frozen (last change in 2024). Modern Microsoft Shopping runs through Microsoft Merchant Center plus Bing Ads v13, which means PMax asset groups, listing-group paths and the FeedItemPerformanceReport.
On the horizon: ads inside the chatbot
The most forward-looking thread is Microsoft’s bet on agentic commerce. At Activate 2026 it rolled out Copilot Checkout, buying directly inside the chat, alongside Brand Agents for Shopify and ad placements beneath Copilot’s conversational answers, with Performance Max surfacing under those results. The marketing commentary frames it as Microsoft going AI-first, a genuinely new shopping surface rather than another ad slot.
For now this is more watch-this-space than automate-today, but it has a concrete prerequisite, and I take it seriously. We spent two years building Boostera, our tool that enriches Google Merchant Center feeds with AI, precisely because feed quality is the ceiling on every automated shopping surface. The same rule holds here. A product shows up cleanly in an AI answer only if its feed data and messaging are in order, so the unglamorous feed work is what positions a store for the conversational channel.
On the creative side, the year also shipped HTML5 assets via the API (AddHTML5s, March 2026) and Video Animation (static image to video asset, November 2025). Cheap ways to feed richer formats without a production team.
The year on one timeline
Every v13 entry below comes from the Bing Ads API release notes (last updated June 5, 2026), the platform announcements from the Microsoft Advertising blog. The only hard deadlines are the two SOAP dates, flagged HARD. The EU political-ads row is a compliance obligation, and everything else is opt-in upside. The right-hand column tells you which is which.
| Date | SDK / event | What landed | Clock? |
|---|---|---|---|
| 2025-02 | v13.0.24 | Generative AI recommendation APIs; New Customer Acquisition goal via API | upside |
| 2025-07 | v13.0.25 | Job-based recommendations; brand kit; new performance reports | upside |
| 2025-09 | v13.0.25.3 | EU political ads; mandatory IsPolitical before create/import | compliance |
| 2025-11 | Platform | Video Animation (static image to video asset) | upside |
| 2025-12 | v13.0.26 | Google login; TopicCriterion; data-driven attribution; BidStrategyReport | upside |
| 2026-03 | v13.0.27 | HTML5 assets; LinkedIn segments; CustomSegment; AISearchSetting; richer Google import | upside |
| 2026-04 | Platform | SOAP to REST transition announced; AI Max + agentic web at Activate 2026 | announce |
| 2026-05 | v13.0.28 | MSClickIdPerformanceReport; billing APIs; PMax negative age/gender; Import Center | upside |
| 2026-10-01 | REST only | New features ship to REST only; SOAP gets nothing new | HARD |
| 2027-01-31 | SOAP OFF | SOAP switched off completely; migrate before this date | HARD |
Where I’d start tonight
Not with the whole migration. With a grep. Search your codebase for ReportingService.svc and the SOAP SDK imports, and write down every job that comes back. That list is your January 31, 2027 exposure, and it took you ten minutes.
Then pick one Google automation you’re proud of and ask what it would earn on a platform where your competitors haven’t shown up yet. The parity work is done. The window is open. Which job will you port first?
Download the full quarter plan for your AI
Everything above, rewritten as a step-by-step brief you can paste straight into Claude or any capable coding agent. It audits your codebase for SOAP exposure, rebuilds your reporting REST-first, ports your first Google job to Bing and wires MSCLKID into your CRM. Leave your email and the file is yours.
One file, one list. I only write when there's something worth reading.
FAQ
When does my SOAP integration actually stop working?
SOAP keeps running until January 31, 2027, when it is switched off completely. From October 1, 2026 no new features ship to SOAP, so any new capability you want is REST-only after that date.
Is REST a drop-in replacement for the SOAP SDK?
No. Reporting, auth flow and error handling all differ. A report goes from a SOAP envelope to a JSON POST with an OAuth bearer token and your developer token in the headers. Treat it as a rebuild onto plain HTTP and JSON rather than a config change.
What does Google login in the Bing Ads API actually give me?
You authenticate the Microsoft API with the same Google identity you use for Google Ads (GoogleOAuth…AuthCodeGrant, December 2025). A multi-platform tool then shares one OAuth mental model and less credential-management code. A March 2026 fix preserved the Google refresh token.
Is Microsoft's AI Max generally available?
As of this writing it’s an open pilot (since May 2026), with the AISearchSetting API hook. Pilot timelines shift quickly, so check the release notes and confirm the schema before building against it.
Which upgrade has the fastest payback?
MSClickIdPerformanceReport (May 2026). Stitch MSCLKID to your CRM orders and you get true ROAS instead of platform-reported numbers. It’s the same join you already run on Google’s GCLID, so the pattern is familiar and the value is immediate.
Why bother automating Bing at all?
Because the API just reached feature parity with Google, from PMax and AI Max to NCA, generative assets, Google login and import, while almost no one automates over it. The window is open precisely because your competitors aren’t here yet.