Porter Metrics+Microsoft Ads+ChatGPT
boltMicrosoft Ads + AI Tutorial · 2026

Microsoft Ads to ChatGPT in 2026: 4 free ways to connect

Learn to connect Microsoft Ads to ChatGPT via MCP for free. Create reports and manage campaigns, creatives, and budgets with AI, all from the chat. Explore alternatives like Google Sheets and BigQuery, and avoid the mistakes that get ad accounts banned.

rocket_launchUse Porter for freeManage your ad accounts and build reports with ChatGPT, free forever, automations included. The only limits: up to 3 ad accounts and 30 days of historical data for reporting. No credit card required.
Juan Bello

Juan Bello

Founder, Porter Metrics · July 13, 2026 · 19 min read

boltTL;DR

To connect Microsoft Ads to ChatGPT:

  1. Sign up free at portermetrics.com and connect your Microsoft Ads account with your Microsoft account.
  2. In ChatGPT, click + → Connectors → Manage connectors → Add custom connector, name it Porter, paste https://mcp.portermetrics.com/mcp, then click Add and authenticate with Google.

That’s it, you’re connected. Porter’s free plan covers up to 3 Microsoft Ads accounts with no usage limits on ChatGPT’s free plan. No credit card required.

What makes Porter different:

  • 403+ Microsoft Ads metrics and dimensions, and the only MCP that includes attribution coverage in the same connection.
  • Universal Microsoft Ads MCP. Hosted white-label dashboards and client portals, search query analysis and keyword discovery, cross-channel budget optimization with Google Ads and LinkedIn Ads data. Your whole Microsoft Ads operation runs from one chat.
ChatGPT showing a live marketing data results table from Porter Metrics
Example Microsoft Ads client dashboard generated in ChatGPT using live data from Porter MCP.

Prerequisites

  • A Porter Metrics account with your Microsoft Ads account connected (free tier is enough to try it end-to-end)
  • A ChatGPT account — the free plan works for ChatGPT Web; a Pro subscription is needed for Codex and Desktop MCP features
  • Admin or standard access to the Microsoft Ads accounts you want to connect

Connect Microsoft Ads to ChatGPT with MCP

For this tutorial we’re going with the MCP method. Here’s a quick explainer of what MCP is and why it’s the best path for Microsoft Ads.

MCP (Model Context Protocol) is the open standard that lets AI tools like Claude, ChatGPT, Codex and others access and use external APIs — the things that make tools like Microsoft Ads work under the hood. Instead of building a custom integration for every AI tool you use, you install one MCP and every compatible AI gets access to the same data.

content_paste
Copy-paste setup
No tokens, no scripts, no developer help — literally paste one URL into ChatGPT and you’re done.
hub
Works with every AI tool
Claude, Codex, ChatGPT, Cursor, Antigravity, Lovable, Vercel v0, Zapier. One MCP URL, every tool that speaks the protocol.
merge_type
20+ sources in one connection
Porter’s MCP ships Microsoft Ads plus Google Ads, GA4, Shopify, HubSpot, Klaviyo, Google Sheets and 20+ more. Query and blend them all in a single conversation.
tune
Perfect granularity
Spreadsheets lock you into the columns you exported. MCP hits Microsoft’s Advertising API directly — so you can filter by campaign, break down by ad group or keyword, and add new dimensions on the fly without rebuilding tables.

The full setup takes under 5 minutes and breaks into three moves: connect Microsoft Ads to Porter, point ChatGPT at the Porter MCP, and ask your first question.

Two ways to connect Porter to ChatGPT. This tutorial uses the Porter MCP (recommended): you paste one URL, and every new tool or data source is available the moment the Porter team ships it. Prefer one click? Porter Metrics is also an approved app in the ChatGPT marketplace — same account, same live data, but app updates only land after ChatGPT reviews them, so the newest capabilities always arrive on the MCP first. Jump to the marketplace steps ↓

1. Connect your Microsoft Ads data to Porter

Porter sits between Microsoft’s Advertising API and ChatGPT. It handles OAuth, rate limiting, pagination and all the plumbing so ChatGPT only ever sees clean, structured data.

Sign up for Porter. Create a free account at portermetrics.com. The free tier is enough to run this full workflow end-to-end.

Connect your Microsoft account. In Porter, click Create → pick ChatGPT as the destination → select Microsoft Ads as the source → sign in with Microsoft to grant access to your accounts.

Sign in with Porter Metrics prompt to authorize ChatGPT

Select your accounts. Choose the Microsoft Ads accounts you want ChatGPT to query. When you select multiple accounts under a single connection, Porter automatically blends their data together so you can query them as one.

Porter Metrics is now connected to ChatGPT confirmation

Optional: enable automatic BigQuery storage if you’re connecting multiple accounts with large data volumes. This keeps ChatGPT’s responses fast even at scale.

2. Connect the MCP to ChatGPT

Porter’s MCP URL is what you paste into ChatGPT. Once added, ChatGPT can query Microsoft Ads data on demand in any conversation.

Go to chatgpt.com and click the + icon in the chat input to open the tools menu.

Open the plus menu in the ChatGPT composer to add an app

In the menu that opens, hover over Connectors and click Manage connectors.

ChatGPT More menu showing Add sources to connect Porter Metrics

In the Connectors panel, click the + button at the top of the list to start adding a new connector.

Searching for the Porter Metrics app in ChatGPT

Pick Add custom connector from the dropdown that appears.

Porter Metrics app page in ChatGPT with the Connect button

A dialog opens with the name and URL fields. Type Porter in the first field to name the connector.

Porter Metrics app page in ChatGPT with the Connect button

In the second field, paste https://mcp.portermetrics.com/mcp. Leave the advanced settings alone.

Sign in with Porter Metrics prompt to authorize ChatGPT

Click Add at the bottom right of the dialog. ChatGPT opens a sign-in window — use the same Google account linked to your Porter workspace and approve access.

Porter Metrics is now connected to ChatGPT confirmation

Once the authorization finishes, you’ll see Porter’s tools appear in the connectors panel. You’re ready to start asking questions.

Porter Metrics attached in a new ChatGPT chat

For a fuller walkthrough with screenshots at every step, see the Porter MCP tutorial.

3. Start building questions and dashboards

With Porter connected, open a new ChatGPT chat and ask anything about your Microsoft Ads in plain English. ChatGPT calls Porter behind the scenes, pulls live data from Microsoft, and answers with tables, charts, or summaries.

Try one of these to verify the setup is working:

chat_bubble“What were my best-performing Microsoft Ads campaigns last week, ranked by ROAS?”
chat_bubble“Show me my Microsoft Ads impression share by campaign — where am I losing the most impressions?”
chat_bubble“Which keywords have the highest CPA in my Microsoft Ads account? Should I pause or optimize them?”

For a full catalogue of copy-paste prompts organized by use case (performance, keyword analysis, client reporting, agency, e-commerce, cross-channel), jump to the prompts section below.

Alternative ways to connect Microsoft Ads to ChatGPT

Porter MCP is the path we just walked through and the one we recommend for most marketers. It is not the only way to get Microsoft Ads data in front of ChatGPT, though. The most common alternatives are Microsoft Ads’s direct API, a live Google Sheets bridge or CSV upload, and BigQuery for scale. Each has trade-offs, so pick the one that fits how your team already works.

  • 🔌 Microsoft Ads’s direct API — Talk to Microsoft’s Advertising API yourself. Maximum control, but you handle auth, rate limits and pagination — and you only get one source. (Microsoft doesn’t ship an official MCP yet.)
  • 📊 Google Sheets — Live Sheet or one-off CSV upload. Auditable, familiar, faster for big exports — but aggregation happens in the Sheet, not the API.
  • 🗄️ Google BigQuery — For large accounts or agencies running multi-account analysis. BigQuery aggregates; ChatGPT only queries pre-built summaries.

Via the Porter Metrics app in the ChatGPT marketplace

If you’d rather not paste a connector URL, install Porter straight from ChatGPT’s app gallery — it’s the same Porter connection behind the scenes, published as an approved ChatGPT app:

  1. Open the Porter Metrics app page in ChatGPT (or search “Porter Metrics” in the apps gallery).
  2. Click Connect and sign in with the same account you use in Porter.
  3. Authorize it and ask your first Microsoft Ads question — same live data as the MCP.

The trade-off to know: the marketplace app only updates after each ChatGPT review cycle, while the MCP updates the moment Porter ships. If you want every new tool and data source immediately, use the MCP; if you want the one-click install and don’t mind waiting for new features, the marketplace app is the shortest path — including write actions through your connected Porter account.

Via Microsoft Ads’s direct API

Microsoft doesn’t ship an official MCP for Microsoft Ads yet, so going direct means writing API calls yourself in Codex or your own scripts.

If you’re building a product around Microsoft Ads — or you’re a developer who’d rather own every layer of the integration — the most direct path is talking to Microsoft’s Advertising API yourself. Whichever route you pick, you still follow Microsoft’s rate limits & quotas. Either way you skip Porter and call Microsoft from your own code, from Codex, or from Microsoft Ads’s own connector.

The trade-off to know. Going direct gives you maximum control and the freshest possible data — every endpoint, every parameter, no abstraction layer in between. But you’re now responsible for OAuth flows, refresh tokens, rate limits, pagination, schema changes, and error retries. And critically, you only get one source. The moment you also want Google Ads, GA4 or Shopify in the same conversation, you’re back to building (or stitching together) more integrations.

When this makes sense: engineering teams that need a single source with full control, products that ship Microsoft Ads data as a feature (where you own the integration anyway), or one-off scripts where you don’t mind writing the auth and pagination code yourself. For marketers who want to ask questions in plain English and blend Microsoft Ads with the rest of their stack in a single conversation, the Porter MCP path is dramatically less work.

Via Google Sheets (live Sheet or manual CSV)

If your team already lives in Google Sheets — or you want a paper trail before ChatGPT touches anything — feed Microsoft Ads into a Sheet, then let ChatGPT read the Sheet. You can automate the Microsoft Ads → Sheets pipeline with Porter so it refreshes daily, or do one-off CSV exports from Microsoft Advertising for static analysis.

The trade-off to know. With the MCP path, ChatGPT calls Microsoft’s API directly and Microsoft does the filtering and aggregation on its side — clean and deterministic. With the Sheets path, ChatGPT aggregates inside the Sheet itself, which can introduce hallucinations on totals, averages, and joins when you have thousands of rows. The upside is speed: for very large date ranges or historical analysis, a pre-built Sheet is dramatically faster than live API calls.

When this makes sense: finance teams that want to review numbers before ChatGPT acts on them, agencies already delivering client reports in Sheets, historical analysis across years of data, or any case where you care more about speed than real-time freshness.

Via Google BigQuery (for scale)

This is the path most people overlook — and it’s the one that saves you when your Microsoft Ads account gets serious. A single large advertiser or an agency managing 10+ accounts will hit API rate limits and latency problems querying ChatGPT directly. ChatGPT will literally tell you it’s taking too long or timing out on big pulls.

BigQuery fixes that. You load Microsoft Ads data into BigQuery tables on a schedule, then connect BigQuery to ChatGPT — either through a BigQuery MCP or via Codex with SQL queries. Instead of asking ChatGPT to pull raw Microsoft Ads data, you let BigQuery aggregate into small, optimized tables, and ChatGPT only queries the summarized output. Scale problem solved.

When this makes sense: enterprise accounts with millions of impressions, agencies running multi-account analysis across 10+ clients, or any team already using BigQuery as a data warehouse. Porter loads Microsoft Ads (and 25+ other sources) directly into BigQuery so you don’t have to build your own ETL.

Read the full BigQuery tutorial →

Connecting Microsoft Ads to Codex

Most marketers lump ChatGPT and Codex together and miss the biggest advantage of the entire MCP ecosystem. They’re not the same tool — and the difference matters enormously once you start working with Microsoft Ads data seriously.

ChatGPT is a chat interface. You ask a question, ChatGPT pulls live data through the MCP, answers, maybe builds a quick dashboard inside the conversation. Great for one-off analysis. The problem: everything is ephemeral. Want to refresh the dashboard tomorrow? You regenerate it from scratch. Want the same report every Monday? You re-ask the question every Monday.

Codex is ChatGPT running inside your computer’s terminal. Because it has access to your filesystem, runtime, and other developer tools, it doesn’t just answer questions — it can build real software. Persistent scripts, scheduled routines, HTML apps, internal dashboards, integrations that run 24/7 without your input. Once it’s connected to Porter’s MCP for Microsoft Ads, a whole category of work becomes possible.

What Codex unlocks that ChatGPT alone cannot

This is where the MCP ecosystem pays off most. Because Codex can combine Porter’s MCP with other MCPs — Firecrawl for web scraping, Airtable for structured data, Notion for wikis, Vercel for deployment, Slack and Gmail for delivery — you’re no longer querying data. You’re building tools.

apps
Build your own reporting dashboard app
Stack: Porter MCP + Vercel MCP (or Cloudflare Pages, Netlify)
Feed Codex your Microsoft Ads targets and goals — CPA goals, daily budgets, ROAS thresholds — and ask it to generate a custom ROI dashboard for each client. It builds the HTML, pulls live data, deploys to a URL. No Data Studio embed to break when the vendor changes pricing, no template constraints. The dashboard updates automatically because it queries Porter’s MCP on every page load.
Best for:agencies that want white-label client dashboards without Looker or Data Studio dependencies.
visibility
Full competitor + performance monitoring
Stack: Porter MCP + Firecrawl MCP
Combine your own Microsoft Ads performance from Porter with competitor landing pages and live ads from the Meta Ad Library scraped via Firecrawl. Codex stitches both into a weekly competitive intelligence report — your numbers next to their creative angles and pricing, with an LLM summary on top of what changed week over week. Runs on cron, lands in your inbox every Monday morning.
Best for:in-house teams that need market context, not just internal numbers.
menu_book
Internal marketing wiki with live metrics
Stack: Porter MCP + Airtable MCP (or Notion MCP)
Use Airtable or Notion as the schema, Porter as the data source. Codex keeps every page populated with current spend, CPA, and ROAS for every account — no stale screenshots, no copy-paste from Excel. New hires read one wiki entry and have full context on a client’s account.
Best for:agencies and ops teams onboarding analysts or rotating account managers frequently.
notifications_active
24/7 alerts on spend, CTR, and quality drops
Stack: Porter MCP + Slack MCP (or Gmail MCP)
A Codex routine on cron pulls Microsoft Ads via Porter, evaluates thresholds — CTR drops below 1%, daily spend spikes 2× the trailing average — and pushes Slack or Gmail alerts the moment something crosses the line. You stop checking dashboards reactively; the dashboard checks itself and tells you when to look.
Best for:any team that’s ever discovered a problem 48 hours too late because nobody opened the report.

Bottom line: ChatGPT is for quick questions and ad-hoc dashboards. Codex is for building apps, live dashboards, alerts, and actual tools — anything you want to run on its own without re-asking. Same Porter MCP URL works in both, so you don’t pick once and lock in.

Use cases: what you can actually do once Microsoft Ads is connected to ChatGPT

Getting the connection right is half the battle. The real value shows up in what you do next. Here are the use cases Porter users build around their Microsoft Ads data — from simple Q&A to full client-facing workflows.

1. Chat and ask questions directly

The simplest use case — and still the one 80% of marketers start with. Open ChatGPT, ask a question, get an answer grounded in live data.

chat_bubble“What were my top 5 Microsoft Ads campaigns by Conversions last month?”
chat_bubble“Show me my Microsoft Ads Ctr and Spend trend over the last 30 days.”
chat_bubble“Which ad groups had the lowest Conversion Rate last week?”

It’s the fastest way to replace a daily Microsoft Advertising check-in. But chat is table stakes — the interesting use cases come next.

2. Blend Microsoft Ads with your sales data (Stripe, HubSpot, Shopify)

This is where a 360° view gets real. When you connect Microsoft Ads and your revenue source (Stripe for SaaS, HubSpot CRM for B2B, Shopify for e-commerce), ChatGPT can map ad campaigns to actual closed-won deals or purchases — using UTMs, campaign names, and timestamps — and give you attribution that no platform-side number can.

chat_bubble“Cross-reference my Microsoft Ads campaigns with my Google Ads campaigns last 30 days. Where is my Ctr higher and my Cost Per Conversion lower on Microsoft?”
chat_bubble“Compare my Microsoft Ads Spend and Conversions vs my Facebook Ads Spend and Conversions this month. Show the split in a table.”

ChatGPT handles the UTM mapping and joins. You get a client-ready attribution report that no single platform can generate on its own.

3. Automated alerts and notifications on Slack or Gmail

With Codex you can turn Microsoft Ads monitoring into a routine that runs on its own. Hook Porter’s MCP (for the data) together with a Slack or Gmail MCP (for delivery), then write a Codex scheduled task that pulls performance every morning and pings you only when something actually needs attention.

chat_bubble“Alert me when my Microsoft Ads daily Spend spikes 2× above the trailing 7-day average.”
chat_bubble“Notify me if my Microsoft Ads Ctr drops below 1% for any campaign with more than 1000 Impressions.”

No dashboards, no daily check-ins. The report comes to you — and only when it matters.

4. Client-ready presentations with live data (Gamma, HTML, PDF)

A common agency pain: you send clients a Data Studio link, Looker breaks, the client panics — and you spend an hour explaining a broken dashboard. With ChatGPT you can build the presentation itself — as a Gamma deck, a custom HTML page, or a PDF — populated with live numbers each time.

chat_bubble“Build a monthly client report with my Microsoft Ads top campaigns by Conversions, Spend, and Cost Per Conversion.”
chat_bubble“Create a PDF summary of my Microsoft Ads performance vs last quarter with Ctr, Conversion Rate, and Revenue trends.”

The presentation becomes a delivery artifact you send to the client, not a dashboard that depends on another tool staying up. No broken iframe, no login prompts, just the content.

Microsoft Ads fields and metrics you can query with ChatGPT

Before you start writing prompts, it helps to know what data is actually available. Porter MCP gives ChatGPT access to 403 Microsoft Ads fields and metrics across every reporting level, plus breakdowns by audience, placement, device, and geography. And the same MCP URL also unlocks 25+ other sources — so ChatGPT can blend Microsoft Ads with Google Ads, GA4, Shopify, HubSpot and more in a single prompt.

Reporting levels
Campaignad groupkeywordadaudiencebudgetlabel — 18 fields covering ad group labelscampaign labelsbid adjustmentstracking templatesand custom parameters.
Visibility metrics
23 fields including ImpressionsAbsolute Top Impression Rate PercentImpression Share PercentImpression Lost To Budget PercentTop Impression Share Lost To Rank PercentLow Quality ImpressionsPhone Impressionsand hourly ad group impression performance.
Engagement metrics
5 fields — ClicksCtrClick Share PercentClick Typeand Click Type Id.
Conversion metrics
39 fields including ConversionsConversion RateCost Per ConversionRevenue Per ConversionAll ConversionsAll Conversion RateAssisted ConversionsView Through ConversionsLow Quality Conversionsand app install ad metrics.
Efficiency (rates & costs)
16 fields covering SpendBudgetBidCpc Bid AmountCpm Bid AmountBudget StatusBudget Typeand budget identifiers.
Audience breakdowns
43 fields including KeywordSearch QueryDevice TypeDevice OSCityStateCountryPostal CodeQuery Intent DMAQuery Intent NeighborhoodAge GroupGenderAudience NameAudience TypeLanguageand Date.
Cross-channel sources (same URL)
Google AdsGA4ShopifyTikTok AdsLinkedIn AdsHubSpotSearch Console+15 more

Prompts you can copy-paste today

These prompts are organized by job: performance checks, search query & keyword analysis, client reporting, agency multi-account workflows, e-commerce optimization, and cross-channel analysis. All are read-only — paste them into ChatGPT and Porter returns live data.

1. Performance checks

Use these when you need a quick health check on account performance, device splits, or month-over-month trends.

chat_bubble“Compare my Microsoft Ads leads from Desktop vs Mobile last 60 days. Which Device Type has a lower Cost Per Conversion and higher Conversion Rate?”
chat_bubble“Why did my Conversions drop yesterday? Give me the breakdown by Campaign, Device Type, and Keyword Status.”
chat_bubble“Compare my Revenue and All Conversions this month to date vs same period last month. Flag any campaign where Revenue Per Conversion dropped more than 20%.”

2. Search query & keyword analysis

Use these to audit keyword efficiency, catch search query waste, and spot ad groups where CTR is tanking.

chat_bubble“List my worst 10 keywords by Cost Per Conversion last 14 days. Add their Clicks, Ctr, and Spend in a table I can paste into a client report.”
chat_bubble“Find any of my ad groups where Impressions spiked last 7 days but Ctr fell below 1%. Show me the Search Query breakdown causing the drop.”
chat_bubble“Show my top 5 Search Queries by All Conversions last 30 days. Include their Ctr and Cost Per Conversion in a table.”
chat_bubble“Flag any of my Keywords where Spend tripled last 7 days but Conversions stayed under 3. Show me the Search Query and Delivered Match Type breakdown.”

3. Client reporting

Use this when you need to generate a structured report you can send to stakeholders or paste into a deck.

chat_bubble“Draft a monthly client report using my Microsoft Ads numbers from last month. Include top 5 campaigns by Conversions and their Spend, Ctr, and Cost Per Conversion.”

4. Prompts for agencies managing multiple clients

Use this when you’re running multi-account analysis and need to compare periods or flag underperformers across clients.

chat_bubble“Compare my campaign Spend and Conversions this quarter vs last quarter. Highlight any campaign where Revenue Per Conversion dropped more than 15%.”

5. Prompts for e-commerce teams

Use these when you’re optimizing for Revenue, ROAS, and device-level bid adjustments in shopping or search campaigns.

chat_bubble“Show my top 10 campaigns by Revenue last 14 days. Rank them by Revenue Per Conversion and include their Spend and Ctr.”
chat_bubble“Find which Device Type gives me the lowest Cost Per Conversion for campaigns with at least 5 Conversions last 30 days. I want to adjust my bids.”
chat_bubble“Find which of my Audience Types has the lowest Cost Per Conversion with at least 10 All Conversions last 30 days. I want to shift budget there.”

6. Cross-channel prompts

Use these when you need to compare Microsoft Ads against Google Ads, Facebook, or LinkedIn — or build unified reports.

chat_bubble“Cross-reference my Microsoft Ads campaigns with my Google Ads campaigns last 30 days. Where is my Ctr higher and my Cost Per Conversion lower on Microsoft?”
chat_bubble“Compare my Microsoft Ads Spend and Conversions vs my Facebook Ads Spend and Conversions this month. Show the split in a table.”
chat_bubble“Which channel — Microsoft Ads or Google Ads — had the better Conversion Rate last 60 days? I want to shift next month’s budget to the winner.”
chat_bubble“Draft a cross-channel report comparing my Microsoft Ads and LinkedIn Ads performance last quarter. Include Ctr, Conversions, and Cost Per Conversion for both.”

Limits, safety, and best practices for Microsoft Ads via ChatGPT

chat_bubble“Microsoft Advertising suspended over 475,000 accounts in 2024 for policy violations like scams and deepfakes.” — Microsoft Advertising Transparency Report, ppcnewsfeed.com, June 2025″

While Microsoft Ads does not ban accounts for legitimate API usage, enforcement is real and aggressive for policy violations. The risk for marketers using MCP integrations is not account suspension — it’s throttling and data disruption. A marketing agency running multi-tenant reporting through a single app registration can hit rate ceilings within minutes, causing Claude to return stale or incomplete campaign data. The real cost is not a banned account; it’s lost optimization windows and decisions made on partial data.

Microsoft’s rate-limit enforcement is quota-based and account-wide, not tool-based. Microsoft doesn’t throttle accounts because you used Claude or an MCP. It throttles because of how the API was used: exceeding 40 queries per second, 60,000 method calls per minute, or 20,000,000 method calls per day. Read-only analysis within these thresholds is safe. Bursty traffic, unbatched parallel requests, or sharing a single app registration across multiple tenants is not. Persistent violations trigger Error Code 117 (CallRateExceeded), and continued abuse can lead to reduced rate limits or temporary suspension of API access within two business days.

The two ways to burn through your Microsoft Ads quota

After reviewing official docs and community threads, two patterns come up again and again.

1. Burst API calls exceeding 40 QPS or 60,000 method calls per minute. Sending unbatched, parallel requests to pull large date ranges or multiple accounts simultaneously quickly exhausts the per-minute quota. Microsoft returns Error Code 117 and forces a 60-second cooldown. Microsoft Advertising API — Request Method Limits. Use batch requests (up to 300 items per batch) and implement exponential backoff instead.

2. Sharing a single app registration across multiple Microsoft Ads accounts or tenants. Each app registration is limited to 25 requests every 20 seconds. A single OAuth app serving 5+ client accounts will hit this ceiling during morning reporting runs, causing cascading failures across all connected accounts. Microsoft Advertising API — Request Method Limits. Register separate apps per tenant or use Microsoft Advertising’s built-in multi-account batching.

3. Exceeding entity input limits in targeting or campaign structures. Microsoft enforces hard caps: 250 placements per profile, 100 profiles targeted per member, and 4,000 postal codes per profile. Attempting to upload larger lists via API triggers input throttling, silently truncates data, or returns partial success errors that Claude may not surface clearly. Microsoft Advertising API — Request Method Limits. Validate entity counts client-side before API submission and paginate large targeting updates.

Both behaviors trigger quota-based throttling. If you want to use ChatGPT for Microsoft Ads safely, stay within documented limits and use a managed MCP that enforces batching and backoff automatically.

The 5-rule scaling protocol

Based on Microsoft Ads’s documented quotas and the behaviors that have actually caused throttling — not guesswork:

  • Batch your requests. Microsoft counts each item in a batch as a separate method call, but the HTTP request itself counts as one against your 40 QPS limit. Batch up to 300 operations per request to maximize throughput. Microsoft Advertising API — Request Method Limits. Ignoring this burns through your 60,000 calls/minute quota 300x faster than necessary.

  • Respect the 60-second cooldown after Error Code 117. When you exceed the per-minute call limit, Microsoft returns Numeric Error Code 117 with explicit instruction to reduce calls per minute and wait 60 seconds before retrying. Microsoft Advertising API — Request Method Limits. Retry storms without backoff will escalate throttling to account-level rate reduction.

  • Do not exceed 25 requests every 20 seconds per app registration. This is the per-app hard ceiling. Microsoft Advertising API — Request Method Limits. If you manage multiple Microsoft Ads accounts through Claude, register separate Azure AD applications or use Porter’s native multi-account batching to stay under this threshold.

  • Cap entity inputs to documented limits: 250 placements per profile, 100 profiles per member, 4,000 postal codes per profile. Microsoft Advertising API — Request Method Limits. Exceeding these does not trigger a ban, but causes silent truncation or partial write failures that leave campaigns misconfigured.

  • Stay under the 20,000,000 method calls per day account ceiling. Microsoft Advertising API — Request Method Limits. For high-volume accounts with hourly reporting, this translates to roughly 833K calls per hour average — easily exceeded with unoptimized multi-year historical pulls. Porter MCP enforces daily budget tracking and warns before large date-range queries.

What Porter MCP does differently: it enforces these rate limits at the platform level. Porter’s Microsoft Ads MCP batches API requests automatically (up to 300 operations per batch), implements exponential backoff with 60-second respect windows after Error Code 117, and isolates each connected account under separate OAuth scopes to prevent cross-tenant quota collisions. Read-only is the default connection mode; write operations require explicit scope elevation. That’s the behavior Microsoft’s automated throttling systems handle gracefully — and what keeps your data flowing without interruption.

Frequently asked questions

What is a Microsoft Ads MCP?
A Microsoft Ads MCP (Model Context Protocol) is an open standard that lets AI tools — ChatGPT, Claude, Codex — connect to your Microsoft Ads data without custom integrations. Porter’s MCP server makes your campaigns, ad groups, ads, keywords, and accounts available through one URL: no tokens, no scripts, no developer setup.
What’s the difference between ChatGPT and Codex?
ChatGPT is the conversational product (web, app, mobile). Codex is a terminal-based developer tool that can write scripts, save files, and automate workflows. Both can connect to Microsoft Ads via MCP.
How fresh is the data? Is it real time?
Microsoft’s API refreshes continuously, with clicks available within 2 hours and conversions within 3 hours. Once the previous day’s data finishes processing, it is considered “Books Closed.” Porter MCP pulls live, so your data is always within that window. Microsoft Advertising API — Reporting Data Freshness
Are there rate limits for Microsoft Ads data?
Yes. Microsoft enforces 40 queries per second, 60,000 method calls per minute, 20,000,000 per day, and 25 requests every 20 seconds per app registration. Porter MCP batches requests automatically (up to 300 operations per batch) and implements exponential backoff so you rarely hit them. Microsoft Advertising API — Request Method Limits
Why do ChatGPT’s numbers sometimes differ from Microsoft Advertising?
Three common reasons: (1) Attribution windows — the API may use different conversion goal settings than the UI. (2) Time zones — the UI and API can use different time zone defaults. (3) Processing lag — clicks take up to 2 hours and conversions up to 3 hours to appear in reporting. The fix: align attribution settings and time zones, and allow a few hours for data to settle. Microsoft Advertising API — Data Discrepancies
Will using ChatGPT affect my Microsoft Ads access or limits?
No. Microsoft doesn’t ban or restrict accounts for legitimate API usage, and Porter MCP reads your data through deterministic guardrails; read-only analytics stays well inside Microsoft’s normal limits. The thing to watch is rate throttling — burst traffic or sharing one app registration across multiple tenants can trigger Error Code 117 and 60-second cooldowns. See the limits section above.

Ready to chat with your Microsoft Ads?

Open ChatGPT, add the Porter connector, and ask your first question. If you don’t have Porter yet, start a free trial and connect your Microsoft Ads account — you’ll be chatting with your campaigns in under five minutes.

rocket_launchStart free Porter trialopen_in_newOpen ChatGPT