← ClaudeAtlas

chatgpt-adslisted

Run ChatGPT Ads (OpenAI Ads Manager) campaigns through the OpenAI Advertiser API with a bundled stdlib Python CLI - campaign status, spend, impressions, clicks, CPC, attributed conversions, pixel health, pause, activate, daily budget, attach conversion events, and create a per-country campaign with localized ad copy and UTMs. Use it whenever the user mentions ChatGPT ads, OpenAI Ads, Ads Manager, sponsored answers in ChatGPT, the oaiq pixel, CPC or budget on ChatGPT, "pause / relaunch / lower / prepare the campaign", or asks what their ads cost this week, even if they don't say "OpenAI" or "API". Not for Apple Search Ads or TikTok (sibling skills), not for installing the pixel in site code, and not for judging the funnel in analytics (posthog-growth:posthog-paid-funnel). There is no OpenAI Ads MCP server; don't look for one.
josephbedminster/indie-marketing-skills · ★ 1 · AI & Automation · score 74
Install: claude install-skill josephbedminster/indie-marketing-skills
# ChatGPT Ads (OpenAI Advertiser API) There is no MCP server: everything goes through `https://api.ads.openai.com/v1` (not `api.openai.com`). `scripts/ads.py` in this skill's folder (Python stdlib only) covers the everyday operations and already handles the API's traps: use it rather than hand-written `curl`. Read `references/api-notes.md` (in this skill's folder) only when you need something the script doesn't do. ## Before anything: the project config 1. Read `.claude/paid-ads-config.md` in the user's project. If it is missing, run the `paid-ads-setup` skill of this plugin (template in `../paid-ads-setup/references/config-template.md` relative to this skill's folder), asking only the questions the ChatGPT section needs. 2. If `.claude/posthog-funnel-map.md` exists, read its **Business profile** and **Project conventions**: report language and style, what "converted" means, where reports go. They override this skill's defaults. 3. The script reads its settings from environment variables, falling back to the first `.env.local` then `.env` found walking up from the current directory. Run it from the project root. Never print a secret value. | Variable | Needed for | Default | |---|---|---| | `OPENAI_ADS_API_KEY` | everything (secret) | | | `OPENAI_ADS_PIXEL_ID` | `pixel-events` | | | `OPENAI_ADS_LANDING_URL` | `create` without `--url` | | | `OPENAI_ADS_UTM_SOURCE` | `create` | `chatgpt` | | `OPENAI_ADS_UTM_CAMPAIGN_PREFIX` | `create` without `--utm` |