New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

create_openai_ads_campaign

Build a campaign on the connected ChatGPT Ads account — the ads that appear below ChatGPT answers. ALWAYS created PAUSED at every level, with no override: it spends NOTHING until you activate it with set_openai_ads_status(confirm:true). The object graph is campaign -> ad group -> ad, and a campai...

SERVERHermoso SOURCEhttps://app.hermoso.ai/mcp
Critical RISK CLASS
Category Destructive
Parameters 00 required
Recommended Hiddensee the rule below
Registry record Grade D, identity unverified Pull the record →

This record as markdown: /tools/hermoso/create-openai-ads-campaign.md

What create_openai_ads_campaign does on Hermoso

AI agents call create_openai_ads_campaign to permanently remove resources in Hermoso, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

Why create_openai_ads_campaign is rated Critical

An AI agent that decides to call create_openai_ads_campaign doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from Hermoso is gone. There is no undo for destructive operations.

Questions about create_openai_ads_campaign

What does the create_openai_ads_campaign tool do? +

Build a campaign on the connected ChatGPT Ads account — the ads that appear below ChatGPT answers. ALWAYS created PAUSED at every level, with no override: it spends NOTHING until you activate it with set_openai_ads_status(confirm:true). The object graph is campaign -> ad group -> ad, and a campaign ON ITS OWN CANNOT SERVE AN IMPRESSION, so pass adGroup{name, maxBid, contextHints, ad{creative}} and this builds the whole tree. THE CREATIVE IS A TEXT + IMAGE CARD AND NOTHING ELSE — title 3–50 characters, body 100 maximum, one landing page, one still image. THERE IS NO VIDEO ON THIS CHANNEL: never offer a video ad here, and if the brand only has video, pull a frame from it first. TARGETING IS SEMANTIC: context hints are natural-language descriptions of the conversations where this ad belongs (up to 2,000 per ad group). Geo (countries / locationIds) and PLATFORMS (which of the iOS app, Android app and web the ad runs on) are the only other dimensions — leave platforms out to run on all three. They guide matching, they are NOT exact-match keywords, and they do not guarantee delivery. OpenAI’s own guidance is BREADTH — many genuinely distinct hints and many distinct title/body angles beat one message repeated — which is exactly what plan_variations and mine_angles produce. OpenAI has no atomic multi-object write available here, so the whole tree is VALIDATED before the first write; if a level below the campaign is still rejected, the campaign is left PAUSED (spending nothing) and the note says exactly what exists — nothing is archived behind your back, because archiving is irreversible. Everything is READ BACK from OpenAI before you are told it exists: print the returned note verbatim, and if it says the campaign cannot serve yet, say that rather than calling it a finished ad. It is categorised as a Destructive tool in the Hermoso MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.

How do I enforce a policy on create_openai_ads_campaign? +

Register the Hermoso MCP server in PolicyLayer and add a rule for create_openai_ads_campaign: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Hermoso. Nothing to install.

What risk level is create_openai_ads_campaign? +

create_openai_ads_campaign is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.

Can I rate-limit create_openai_ads_campaign? +

Yes. Add a rate_limit block to the create_openai_ads_campaign rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block create_openai_ads_campaign completely? +

Set action: deny in the PolicyLayer policy for create_openai_ads_campaign. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides create_openai_ads_campaign? +

create_openai_ads_campaign is provided by the Hermoso MCP server (https://app.hermoso.ai/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

More on Hermoso, and thousands of servers like it.

// THE MCP REGISTRY

PolicyLayer tracks 44,603 MCP servers and 515,000+ tools.

Every server has a live record: who publishes it, whether it answers without auth, its risk grade, every tool classified, the recommended policy. This page is one line of Hermoso's. Pull the full record:

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.