# ChatGPT Ads setup

> Connect ChatGPT Ads to Claude, ChatGPT, Codex or any MCP client, what to ask it once it is connected, and the 55 tools behind the answers.

[Guides](https://www.getmcpads.com/guides)

## For you

Campaigns, ad groups, ads and image creatives, native performance, conversion tracking, product feeds, existing audiences and delivery diagnostics. Saved business reviews and reporting exports.

> **Note** Connect with the Ads Management API key from Ads Manager Settings, then select the verified advertising account. Native account permissions and feature eligibility apply.

## Connect it

1. Open the dashboard and choose this platform.
2. Open ChatGPT Ads in Sources. Copy the account's Ads Management API key from Ads Manager Settings and enter it in the connection form. The key is encrypted and is never returned to your assistant. This connection uses an advertising API key, not an OpenAI model API key.
3. Tick the accounts to expose. Nothing is readable until you do.
4. Paste the endpoint into your assistant, or use the shared one for every platform at once.

## Read campaigns, creatives and results

Read the selected account, then follow campaigns, ad groups and ads to the level you need. Ask for performance by account, campaign, ad group or ad with explicit dates. Reports preserve the account's currency and timezone, expose pagination and completeness, and retain the requested attribution convention. Missing rows are not converted into zero spend or zero conversions.

Open the creative gallery for native ad names, image assets and destinations. For delivery questions, request serving_issues on the campaign, ad group or ad. Native review status and delivery issues are separate from performance. The connector also reads conversion settings, pixels, events and insights, existing custom audiences, product feeds and audit logs.

## Prepare and change ads

Read openai_ads_get_write_context and openai_ads_get_write_schema before proposing a campaign. Supported objectives are impressions, clicks and conversions, with compatible fixed or automatic bidding. Create campaigns, groups and ads in pause, inspect the preview, and confirm the exact change. Activation is a separate action with its own preview and confirmation. Every write needs a paid plan and the selected account's permissions.

Upload PNG, JPEG or WebP images of at least 640 × 640 pixels, up to 5 MiB for binary uploads, or import a public HTTPS image URL. Chat-card image ads are supported. Product ads need an existing ingested product feed owned by the account. A business-agent campaign needs an existing native business_agent_id. Video and carousel ad creation are not supported.

Bulk changes use a separate native schema. Start with validation-only, review the proposal, then confirm the intended operation. A returned job ID only means the job was accepted: read its final status, every operation result and the affected entities. Preserve receipts after timeouts; never submit an uncertain change again.

## Compare, save and export

Add the selected ChatGPT Ads account to a business client for saved reviews alongside other sources. Export its reports through the Data API or Google Sheets with the requested dates, currency, timezone and attribution. Keep source-specific conversion definitions separate when comparing platforms.

ChatGPT Ads on its own endpoint

```text
https://mcp.getmcpads.com/openai-ads/mcp
```

## What to ask

```text
Show ChatGPT Ads performance by campaign for the last seven days, with currency and attribution.
Why is this ChatGPT ad not serving, and what creative does it use?
Prepare a campaign, ad group and image ad, keeping all three paused.
Upload this PNG, JPEG or WebP image and use it in my paused ad.
Read my conversion goals, product feeds and existing custom audiences.
Validate these bulk campaign changes, then show every operation's outcome.
Include ChatGPT Ads in my client's saved business review and export the daily report to Google Sheets.
```

## What answers each one

| Question | Tools |
| --- | --- |
| Show ChatGPT Ads performance by campaign for the last seven days, with currency and attribution. | [`openai_ads_get_account`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_account), [`openai_ads_get_campaigns`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_campaigns), [`openai_ads_get_insights`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_insights) |
| Why is this ChatGPT ad not serving, and what creative does it use? | [`openai_ads_get_ad`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_ad), [`openai_ads_get_ad_group`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_ad_group), [`openai_ads_get_campaign`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_campaign), [`openai_ads_list_ad_creatives`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_list_ad_creatives) |
| Prepare a campaign, ad group and image ad, keeping all three paused. | [`openai_ads_get_write_context`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_write_context), [`openai_ads_get_write_schema`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_write_schema), [`openai_ads_create_campaign`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_create_campaign), [`openai_ads_create_ad_group`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_create_ad_group), [`openai_ads_create_ad`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_create_ad) |
| Upload this PNG, JPEG or WebP image and use it in my paused ad. | [`openai_ads_upload_image`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_upload_image), [`openai_ads_update_ad`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_update_ad) |
| Read my conversion goals, product feeds and existing custom audiences. | [`openai_ads_get_conversion_settings`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_conversion_settings), [`openai_ads_get_feeds`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_feeds), [`openai_ads_get_custom_audiences`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_custom_audiences) |
| Validate these bulk campaign changes, then show every operation's outcome. | [`openai_ads_submit_bulk_job`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_submit_bulk_job), [`openai_ads_get_bulk_job`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_bulk_job), [`openai_ads_get_bulk_job_operations`](https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_get_bulk_job_operations) |
| Include ChatGPT Ads in my client's saved business review and export the daily report to Google Sheets. | `save_business_client`, `create_business_review`, `get_sheet_export_options`, `prepare_sheet_export`, `start_sheet_export` |

## What it can change

Create paused campaigns, ad groups and image ads; edit budgets, bids, targeting, schedules and creative content. Upload images, pause or archive entities, and prepare bulk changes. Activation is a separate confirmed action. Every write previews before confirmation and requires a paid plan.

> **Warning** 25 write tools, absent from the tool list on the Free plan. Each one previews by default and needs a second call with confirm before anything changes.

- [ChatGPT Ads reference](https://www.getmcpads.com/docs/sources/chatgpt-ads): All 55 tools, with their parameters.
- [Metrics](https://www.getmcpads.com/docs/sources/chatgpt-ads/metrics): 11 metrics you can request.
- [Dimensions](https://www.getmcpads.com/docs/sources/chatgpt-ads/dimensions): 9 dimensions and report attributes.
- [Skills](https://www.getmcpads.com/skills): 4 operating procedures use this source.

## For your agent

> **Note** Connect with the Ads Management API key from Ads Manager Settings, then select the verified advertising account. Native account permissions and feature eligibility apply.

|  |  |
| --- | --- |
| Platform id | `openai_ads` |
| Tool prefix | `openai_ads_` |
| Account parameter | `adAccountId` |
| Dedicated endpoint | https://mcp.getmcpads.com/openai-ads/mcp |
| Tools | 55, 25 of which write |
| Announced by default | `openai_ads_list_ad_creatives` |
| Metrics | 11, see /docs/sources/chatgpt-ads/metrics |
| Dimensions | 9, see /docs/sources/chatgpt-ads/dimensions |

## Scope requested from the platform

ChatGPT Ads uses an account-scoped Ads Management API key, followed by explicit account selection. There is no OAuth scope request. Native permissions and feature eligibility apply; writes also require a paid plan, a saved preview and explicit confirmation.

## Reaching a tool that is not announced

```text
search_tools({ task: "..." })      find it
describe_tool({ name: "..." })     read its schema
run_tool({ name, args })           execute, with the same checks
```

## What will refuse you

- An account not ticked by the owner. Call `list_accounts` and use a `adAccountId` from it.
- A write on a plan without writes. The tool is absent from the list and refused if called anyway.
- A write without `confirm: true` returns a preview and applies nothing. That is not an error.
- A call to this platform on another platform's dedicated endpoint. The refusal names the URL that serves it.

## Questions this source answers

| Question | Tools, in order |
| --- | --- |
| Show ChatGPT Ads performance by campaign for the last seven days, with currency and attribution. | `openai_ads_get_account` then `openai_ads_get_campaigns` then `openai_ads_get_insights` |
| Why is this ChatGPT ad not serving, and what creative does it use? | `openai_ads_get_ad` then `openai_ads_get_ad_group` then `openai_ads_get_campaign` then `openai_ads_list_ad_creatives` |
| Prepare a campaign, ad group and image ad, keeping all three paused. | `openai_ads_get_write_context` then `openai_ads_get_write_schema` then `openai_ads_create_campaign` then `openai_ads_create_ad_group` then `openai_ads_create_ad` |
| Upload this PNG, JPEG or WebP image and use it in my paused ad. | `openai_ads_upload_image` then `openai_ads_update_ad` |
| Read my conversion goals, product feeds and existing custom audiences. | `openai_ads_get_conversion_settings` then `openai_ads_get_feeds` then `openai_ads_get_custom_audiences` |
| Validate these bulk campaign changes, then show every operation's outcome. | `openai_ads_submit_bulk_job` then `openai_ads_get_bulk_job` then `openai_ads_get_bulk_job_operations` |
| Include ChatGPT Ads in my client's saved business review and export the daily report to Google Sheets. | `save_business_client` then `create_business_review` then `get_sheet_export_options` then `prepare_sheet_export` then `start_sheet_export` |

## Native units and safe writes

Read schemas before constructing nested requests. Reporting cost is in major account currency units; budgets and bids in native write bodies are integer micros. CTR and conversion-rate fields are fractions. Keep the account timezone, date window and attribution with every result; do not infer zero from empty reports.

For writes, keep the preview's confirmation token and a stable requestId. Read the durable mutation receipt and native entities after an uncertain response; do not retry a write automatically. Campaign, group and ad creation always stays paused. Bulk schemas differ from single-resource schemas, and partial bulk failure does not roll back successful operations.

---

This page as HTML: https://www.getmcpads.com/guides/sources/chatgpt-ads
Every page under /guides and /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
