OpenAI Ads
Connect your ChatGPT ad account with its Ads API key to read campaigns, ads and results, start and pause, change budgets, make ads and send conversions, from Omne AI, your agents and Omne's API.
OpenAI Ads is ChatGPT's ad account. Omne connects to it with an Ads API key, and then Omne AI and your agents work in that account, including campaigns you made in ChatGPT Ads Manager.
Connect OpenAI Ads
- In ChatGPT Ads Manager, open Settings and create an Ads API key.
- In Omne, open Integrations, find OpenAI Ads and press Connect.
- Paste the key and press Connect.
Omne checks the key by reading your ad account, and names the connection after it. A key works for one ad account, so connect one key for each account.
The key
OpenAI's Ads API keys have no read-only kind: a key can change everything in its ad account. Omne holds itself to less. Everything that reads runs at once. Every change waits for your yes, even in Auto. Everything Omne makes starts paused.
The key is kept encrypted on Omne's servers. When you disconnect, Omne deletes its copy. Delete the key in Ads Manager → Settings too, since OpenAI has no way for Omne to cancel it.
What Omne can do with it
Reading:
- The ad account: its site, status, currency, time zone and OpenAI's review of it.
- Campaigns, ad groups and ads: status, goal, budget, dates, countries, bids and serving issues. An ad shows OpenAI's review (in review, approved or rejected) with the reason.
- Results: impressions, clicks, spend, click-through rate, cost per click, cost per thousand, conversions, cost per conversion, attributed sales and ROAS. For the account or one campaign, ad group or ad, in total or by day, and by country, device, platform or product. Conversions take a day to settle.
- Health: in one look, OpenAI's review of the account, every serving issue (no payment method, budget used up, a landing page OpenAI can't read), rejected ads with the reason, and a missing pixel or conversion event.
- Pixels and conversion events, and the events that reached a pixel in the last 15 minutes.
- Who changed what: OpenAI's audit log of the account.
- Places and audiences to target.
Changing, each after your yes:
- Start, pause or archive a campaign, ad group or ad. OpenAI has no delete, and archiving can't be undone.
- Change a campaign's budget, daily or lifetime. A lifetime budget can become daily, but a daily one never goes back to lifetime.
- Rename a campaign, ad group or ad.
- Make a campaign, an ad group or a chat card ad. OpenAI has no dry run, so Omne checks its rules first: a budget, an end date for a lifetime budget, and a conversion event for a conversions campaign. Making an ad sends it to OpenAI's review.
- Make a pixel with its Conversions API key, which Omne keeps sealed, and the conversion events campaigns optimize toward. Pixels need to be switched on for your account by your OpenAI partner representative.
- Send conversions. Omne hashes email, phone, external ID and names with SHA-256 the way OpenAI asks. Each event's ID stops it counting twice beside your site's pixel. A test checks events without saving them. OpenAI takes events up to 7 days old.
Omne's API and MCP
Omne's API is not open yet. Where it is switched on, each of these is its own address under /v1/ads/openai-ads/, with a key from Settings → MCP & API:
| What | Address | |---|---| | The ad account | GET /v1/ads/openai-ads/account | | Campaigns | GET /v1/ads/openai-ads/campaigns | | Ad groups | GET /v1/ads/openai-ads/ad-groups | | Ads | GET /v1/ads/openai-ads/ads | | Results | GET /v1/ads/openai-ads/results | | Health | GET /v1/ads/openai-ads/health | | Pixels and conversion events | GET /v1/ads/openai-ads/tracking | | Events just received | GET /v1/ads/openai-ads/recent-events | | Places | GET /v1/ads/openai-ads/locations | | Audiences | GET /v1/ads/openai-ads/audiences | | Audit log | GET /v1/ads/openai-ads/audit-log | | Start, pause or archive | POST /v1/ads/openai-ads/set-status | | Change a budget | POST /v1/ads/openai-ads/set-budget | | Rename | POST /v1/ads/openai-ads/rename | | Make a campaign | POST /v1/ads/openai-ads/create-campaign | | Make an ad group | POST /v1/ads/openai-ads/create-ad-group | | Make an ad | POST /v1/ads/openai-ads/create-ad | | Make a pixel | POST /v1/ads/openai-ads/create-tracking-tag | | Make a conversion event | POST /v1/ads/openai-ads/create-conversion-event | | Send conversions | POST /v1/ads/openai-ads/send-conversions |
Reading works with any key. Changes need a key made to write, and are POST with their arguments as JSON. The same tools are in Omne's MCP server, named openai_ads_*.
Webhooks
Omne tells your webhooks when the account connects or disconnects, when its first read finishes, and when a campaign, ad group or ad changes status, including OpenAI's review of an ad. Omne reads each account every hour.
Related: Reddit Ads, Ask AI approvals and Omne's API.
Last updated November 8, 2026
There's a real person behind Omne, so ask anything.