Skip to main content
Emit a paid ad on ChatGPT Ads. What this does:
  1. The creative is validated against the persona’s guardrails (blocking violations halt; warnings are logged).
  2. Calls the engine adapter to create the campaign / ad_group / ad on the external system.
  3. Records the action so its citation/conversion impact can be measured over time.
Use this when:
  • The user (or upstream agent) has decided to launch a paid placement against a specific prompt cluster.
  • recommend_paid_ad_strategy returned a proposal the user approved.
Skip when:
  • The user wants to pause / activate / archive an existing object (use manage_paid_ad).
  • The user wants strategy proposals, not creation (use recommend_paid_ad_strategy).
  • The user wants reporting (use get_paid_ads_insights).
Intent: ALWAYS ‘commercial’ (paid ads exist to drive conversions). Caller cannot override this. Inputs:
  • object_type (required): ‘campaign’ | ‘ad_group’ | ‘ad’.
  • engine (optional, default ‘chatgpt’).
  • payload (required): engine-shaped payload (e.g. ChatGPT Ads campaign body).
  • persona_id (required): the buyer persona this placement targets — one of the personas get_brand_context lists for this brand. Recorded on the action so outcomes are measured per persona.
  • content (optional): creative body to validate. Strongly recommended for ‘ad’ object_type.
  • parent_external_id (optional): for ad_group/ad, the parent campaign’s external_id.
  • citable_prompt_ids (optional): tracked-prompt ids this placement is meant to win.
  • citable_hub_id (optional): content id of the hub this ad amplifies.
Response: { externalId, engine, objectType, validation, payload }. Inspect prior actions via get_action_outcome_history.

Inputs