Marketing

OpenAI Ads MCP Server

Connect your account, then chat with AI to run tools.

Guide to ChatGPT Ads: context hints, chat_card format, CPM/CPC/oCPC, and paused campaigns from chat — pair with Google Ads when you need keyword volume first.

Best forPerformance MarketersGrowthPaid Social Buyers

Try this workflow

Check account before spend

Read my ChatGPT Ads account — currency, timezone, review status, and whether the account is ready to serve.

Managed
30 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with OpenAI Ads

Built for

Performance Marketers, Growth Teams, Paid Social Buyers, Agencies Running Search Plus Emerging Channels

Example workflows

Check account before spend

Confirms review gate and budget currency before any campaign work.

Try this

Read my ChatGPT Ads account — currency, timezone, review status, and whether the account is ready to serve.

Context hints on ad group

Context hints are the primary targeting lever — not keywords.

Try this

Create a paused ad group under my test campaign with context hints for users comparing B2B project management tools for agencies under 50 people, and set a £3 max CPC bid.

Geo targeting setup

Geo search → location ids → paused campaign is the safe launch path.

Try this

Search geo locations for United Kingdom and United States, then draft a paused campaign targeting those location ids with a £15 daily budget.

Creative plus chat card ad

Shows upload → file_id → ad structure without enabling delivery.

Try this

Upload this product image, create a paused ad group under my test campaign, and draft a chat_card ad that points to our landing page.

Context to know first

What is OpenAI Ads MCP?

OpenAI Ads MCP connects ChatGPT Ads to AI assistants so you can build campaigns, upload creatives, manage audiences, and read delivery and conversion performance from chat — without living in Ads Manager for every standup question.

Does ChatGPT Ads replace Google Ads?

No — they cover different moments. Google Ads captures search intent and keyword volume. ChatGPT Ads reaches people inside ChatGPT conversations. Most teams use both: Google for demand capture, ChatGPT for in-conversation reach.

Can I get keyword volume or CPC forecasts before I spend?

Not from ChatGPT Ads reporting. Delivery insights show impressions, clicks, spend, CPC, and CPM after ads serve. For keyword volume and CPC bands before launch, use Google Ads keyword research in the same chat thread.

Related editorial

ChatGPT Ads from Chat

Build paused ChatGPT campaigns beside Google search work — geo targeting, creative upload, and post-delivery CPC reads without another Ads Manager tab.

Read article

AI Skill
SKILL.md

Domain knowledge for OpenAI Ads — workflow patterns, data models, and gotchas for your AI agent.

OpenAI Ads

ChatGPT Ads are sponsored chat_card units below ChatGPT answers (labeled Sponsored, separate from the model reply). They reach Free and Go users in supported regions; Plus, Pro, Business, Enterprise, and Education tiers do not see ads. Each API key maps to exactly one ad account — there is no account switch parameter.

Hierarchy:

Ad account → Campaign → Ad group → Ad

Targeting: context hints, not keywords

Ad groups carry context_hints — plain-language descriptions of conversations where the ad should appear (for example users comparing CRM tools for agencies). OpenAI matches live chat context, hints, creative, and landing page in a relevance-weighted auction. There are no keywords, keyword volume, or pre-flight CPC quotes. Pair with Google Ads when you need search intent and Keyword Planner bands.

Creative: chat_card

Primary format is chat_card: title (3–50 chars, truncates visually earlier), body (max 100 chars), square image via upload (file_id), target_url, optional account favicon upload. product_ad_template exists for product-feed campaigns when mode is product_feed on the campaign.

What this API does and does not do

In scope: campaign structure, geo targeting, creative upload, custom audiences, conversion pixels and event settings, server-side conversion keys, delivery insights (impressions, clicks, spend, ctr, cpc, cpm), and attributed conversion totals.

Out of scope: keyword research, search volume forecasts, pre-flight CPC estimates, audience size previews, or conversation-level reporting. Advertisers only receive aggregated performance. ChatGPT Ads reports CPC and CPM after delivery via insights — plan from daily_spend_limit_micros and historical rows.

Bidding types: impressions (CPM), clicks (CPC), conversions (oCPC open beta — still billed per valid click, optimized toward one conversion event setting).

Serving requires campaign, ad group, and ad all enabled plus ad review approval. New accounts and ads often sit in in_review until OpenAI approves them.

Recommended workflow

  1. Read ad account — confirm currency, timezone, account review_status, and brand fields.
  2. Search geo locations — copy location ids into campaign targeting.locations.include (never free-text country names).
  3. Upload creative — chat_card ads require file_id from upload before upsert ad. Optional purpose account_favicon for brand favicon.
  4. Create campaigns, ad groups (with context_hints), and ads paused. Respect market daily minimums (for example 25000000 micros = $25 USD, 15000000 micros = £15 GBP per campaign).
  5. Measurement stack (when optimizing for conversions):
    • Create conversion pixel → note source id.
    • Create conversion event setting linking source_ids → note id for conversion-optimized campaigns.
    • Create conversion API key for server events — copy from Ads Manager when shown.
    • List conversion event settings before binding conversion_event_setting_ids on campaigns.
  6. Audiences — small lists via inline members (identifier_type + value); bulk lists via upload custom audience after uploading the file.
  7. Activate bottom-up only when review_status is approved and spend is intended.
  8. Reporting — delivery insights with fields like impressions, clicks, spend, ctr, cpc, cpm. Pass time_ranges as JSON objects (date_range with since, until, timezone, or unix_range with epoch seconds). Only one segment per request (country, device, or product). Conversion insights at campaign, ad group, or ad level with start_time/end_time (end snaps to full hour).

Audit helpers (one-call triage)

Use these before chaining raw list calls:

  • Account overview — walks campaign → ad group → ad once, merges serving flags, and surfaces serving_issues including paused-parent codes list endpoints omit.
  • Context hints audit — finds ad groups with missing, empty, or thin context_hints.
  • Ad copy audit — title/body length violations, truncation-risk guidance, and near-duplicate copy within scope.
  • Ad performance audit — aggregates delivery insights per ad for a date window and flags dead, underperforming, or insufficient-data ads (handles the insights quirk when until is today).

For serving_issues on a single entity, fetch by id on campaigns, ad groups, or ads — list responses do not include them.

Product feeds

Full catalog upload is via SFTP in Ads Manager — the Advertiser API has no feed list or create endpoints. Product-feed campaigns carry product_feed_id on the campaign object.

  • Linked feeds scan — lists product_feed_id values referenced on product_feed campaigns in the account.
  • Delta updates — patch availability or titles on existing variants when delta feeds are enabled on the account (requires feed_id from the linked scan or campaign read).

Insights patterns

  • Delivery: get insights with time_granularity daily (lowercase, not DAY), explicit fields array, and JSON time_ranges objects for the window.
  • Conversions: get conversion insights with aggregation_level, entity_ids, and start_time/end_time (or encoded time_ranges).
  • Empty data usually means no spend or no attributed events yet — not a broken query.

Gotchas

  • Budgets and bids use micros (daily_spend_limit_micros, lifetime_spend_limit_micros, max_bid_micros).
  • Custom audience members use identifier_type and value — not bare email keys.
  • Archive custom audiences when retiring lists; pause or archive campaigns/ad groups/ads instead of deleting.
  • Rate limits: 600 requests per minute per endpoint and 1,200 overall per ad account and IP.
  • Brand updates and some measurement endpoints may require partner enablement upstream.
  • Product-feed campaigns (mode product_feed) need a linked product_feed_id on the campaign; initial catalog upload is via Ads Manager SFTP — use linked-feed scan and delta updates for availability/title changes after setup.

Tools in this Server (30)

Openai Ads Archive Custom Audience

Archive a custom audience so it is no longer used for targeting.

Openai Ads Audit Ad Copy

Audit chat_card titles and bodies for API constraint violations, truncation-risk length, and near-duplicate copy within the selected scope.

Openai Ads Audit Ad Performance

Aggregate delivery insights per ad for a date window and flag dead, underperforming, or insufficient-data ads. Handles the insights API quirk where un...

Openai Ads Audit Context Hints

Find ad groups with missing, empty, or thin context_hints. Context hints are the primary ChatGPT Ads targeting input — this audit catches groups that ...

Openai Ads Create Conversion API Key

Create a server-side Conversions API key for sending events to the ChatGPT Ads measurement endpoint. Store the returned secret server-side only — it i...

Openai Ads Create Conversion Event Setting

Create a conversion event setting linked to one or more conversion sources. Use the returned id as the sole conversion_event_setting_ids entry on conv...

Openai Ads Create Conversion Pixel

Create a web conversion pixel for ChatGPT Ads measurement. Returns pixel_id for browser tagging and source id for conversion event settings. Web clien...

Openai Ads Create Custom Audience

Create a small custom audience from inline hashed or raw identifiers. For bulk lists, upload a file first and use upload custom audience instead.

Openai Ads Get Account Overview

Walk the full ChatGPT Ads account once and return a compact campaign → ad group → ad tree with review_status, serving flags, and serving_issues (inclu...

Openai Ads Get Ad Account

Get metadata for the ChatGPT Ads ad account tied to the connected API key: name, status, currency, timezone, review state, and website URL. Each API k...

Openai Ads Get Ad Groups

Get ChatGPT Ads ad groups. Pass campaign_id to list ad groups under a campaign; pass ad_group_id to fetch one ad group including context_hints, biddin...

Openai Ads Get Ads

Get ChatGPT Ads creatives. Pass ad_group_id to list ads under an ad group; pass ad_id to fetch one ad including creative payload, status, review state...

Openai Ads Get Campaigns

Get ChatGPT Ads campaigns. Omit campaign_id to list campaigns with cursor pagination; pass campaign_id to fetch one campaign including budget, bidding...

Openai Ads Get Conversion Event Settings

List conversion event settings configured for the ad account. Use these ids when creating conversion-optimized campaigns.

Openai Ads Get Conversion Insights

Get attributed conversion totals (click-through and view-through when available) for campaigns, ad groups, or ads. Use after conversion sources and ev...

Openai Ads Get Custom Audiences

Get custom audiences for retargeting and bid multipliers. Omit custom_audience_id to list audiences; pass an id to fetch one audience definition.

Openai Ads Get Insights

Get ChatGPT Ads performance insights for the ad account, a campaign, ad group, or ad. Omit campaign_id, ad_group_id, and ad_id for account-level insig...

Openai Ads Get Linked Product Feeds

List product_feed_id values linked on product-feed campaigns in this ad account. The Advertiser API does not expose a feed catalog list — feeds are cr...

Openai Ads Search Geo Locations

Search location ids for ChatGPT Ads geo targeting. Returns country, region, and DMA matches to use in campaign targeting.locations.include.

Openai Ads Set Ad Account Status

Activate or pause the ChatGPT Ads ad account.

Openai Ads Set Ad Group Status

Activate, pause, or archive a ChatGPT Ads ad group.

Openai Ads Set Ad Status

Activate, pause, or archive a ChatGPT Ads creative.

Openai Ads Set Campaign Status

Activate, pause, or archive a ChatGPT Ads campaign. Enable only after ad groups and ads are reviewed and ready to serve.

Openai Ads Update Ad Account Brand

Update ChatGPT Ads ad account brand metadata such as display name and favicon. Brand updates may require account enablement upstream.

Openai Ads Update Product Feed Delta

Patch availability or titles for existing catalog variants via the Delta Feeds API (PATCH /feeds/{feed_id}/products). Does not upload full catalogs — ...

Openai Ads Upload Creative

Upload an image for ChatGPT Ads creatives or account branding. Returns file_id — required on chat_card ads and optional for account favicon updates. P...

Openai Ads Upload Custom Audience

Create a custom audience from an uploaded identifier file. Upload the file with upload creative first when you only have bytes locally, or pass file_u...

Openai Ads Upsert Ad

Create or update a ChatGPT Ads creative under an ad group. Omit ad_id to create (ad_group_id, name, creative, and status are required upstream). Pass ...

Openai Ads Upsert Ad Group

Create or update a ChatGPT Ads ad group under a campaign. Context hints on the ad group describe which conversations should trigger the ads — this is ...

Openai Ads Upsert Campaign

Create or update a ChatGPT Ads campaign. Omit campaign_id to create (name, status, and budget are required upstream). Pass campaign_id to patch fields...

Frequently Asked Questions

What is OpenAI Ads MCP?

OpenAI Ads MCP connects ChatGPT Ads to AI assistants so you can build campaigns, upload creatives, manage audiences, and read delivery and conversion performance from chat — without living in Ads Manager for every standup question.

Does ChatGPT Ads replace Google Ads?

No — they cover different moments. Google Ads captures search intent and keyword volume. ChatGPT Ads reaches people inside ChatGPT conversations. Most teams use both: Google for demand capture, ChatGPT for in-conversation reach.

Can I get keyword volume or CPC forecasts before I spend?

Not from ChatGPT Ads reporting. Delivery insights show impressions, clicks, spend, CPC, and CPM after ads serve. For keyword volume and CPC bands before launch, use Google Ads keyword research in the same chat thread.

What do I need before ads can serve?

Campaign, ad group, and ad must all be enabled, the ad must pass review, and daily budgets must meet platform minimums. New accounts often sit in review for a short period after first setup.

How do I connect OpenAI Ads to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/openai-ads. Authentication is handled automatically.

How many tools does OpenAI Ads provide?

OpenAI Ads provides 30 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does OpenAI Ads require?

OpenAI Ads uses API Key. OpenAI Ads requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect OpenAI Ads to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/openai-ads

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to OpenAI Ads and paste the MCP URL into Remote MCP server URL.
  4. Click Add. OpenAI Ads will appear under Not connected — select it and click Connect to complete OAuth.
Name: OpenAI Ads
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/openai-ads
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use OpenAI Ads?

Sign in to connect your credentials and start running tools from the chat.

OpenAI Ads MCP Server — ChatGPT Campaign Workflows for AI A…