ad-creative-generation
Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper…
Plan and manage OpenAI Ads (ChatGPT ads) campaigns end-to-end via the Hyper MCP — API-key auth, account discovery, geo targeting, image upload, chat_card and product-feed creatives, custom audiences, conversion tracking, status flow, and insights, with integer-micros money
Claude Code
$ npx -y skills add hyperfx-ai/marketing-skills --skill openai-ads --agent claude-code
Codex
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a codex -y
Cursor
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a cursor -y
Gemini CLI
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a gemini-cli -y
GitHub Copilot
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a github-copilot -y
OpenCode
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a opencode -y
Windsurf
$ npx skills add hyperfx-ai/marketing-skills --skill openai-ads -a windsurf -y
name: openai-ads description: Plan and manage OpenAI Ads (ChatGPT ads) campaigns end-to-end via the Hyper MCP — API-key auth, account discovery, geo targeting, image upload, chat_card and product-feed creatives, custom audiences, conversion tracking, status flow, and insights, with integer-micros money values. Use when the user wants to launch OpenAI ads, ChatGPT ads, chat card ads, manage OpenAI ad groups or audiences, or pull OpenAI Ads insights. requires_toolkits: - openai_ads icon: openai_ads short_description: Plan and manage OpenAI Ads with chat cards, product feeds, audiences, and insights.
Strategic guide for managing the OpenAI Advertiser API. All operations go through `https://api.ads.openai.com/v1`.
If `openai_ads_ad_accounts_get` is not found, the integration to connect is OpenAI Ads. After connecting, `openai_ads_health_check()` verifies the key — if `connected=false`, the API key is missing, invalid, or expired.
Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:
| Surface | Find a tool | Run it | | --- | --- | --- | | Hyper chat | Call the tool by its name; `search_tools(queries=["<provider> <action>"])` shows its parameters | `<name>(...)` | | MCP client (Claude, Cursor, Codex, ChatGPT) | `search("<what you want to do>")`, then `describe("<name>")` | `call_read("<name>", {...})`, `call_write` or `call_destructive`: the one that `describe` names in `call_with` | | Hyper CLI | `hyperai search "<what you want to do>"`, then `hyperai describe <name>` | `hyperai call <name> --json '{...}'` |
If a tool is not found: in Hyper chat, find its toolkit id with `discover_toolkits` and pass it to `enable_toolkit`. On an MCP client or the CLI, tell the user which integration to connect in Hyper.
> **CRITICAL**: Auth is bearer API-key auth, not OAuth. One Ads API key is > scoped to exactly one ad account. There is no `list ad accounts` endpoint; > `openai_ads_ad_accounts_get` returns the connected account for that key.
> **CRITICAL**: All money values on inputs are **integer micros**. > `$1.00 = 1_000_000` micros. `$50/day = 50_000_000`. The > `daily_spend_limit_micros` minimum is `1_000_000` ($1). The ad group > `max_bid_micros` is capped at `100_000_000` ($100). Insights responses use > plain floats in account currency, not micros.
> **CRITICAL**: Always create campaigns, ad groups, and ads with > `status="paused"`. Surface what was created to the user, then activate > using the dedicated activate endpoint after approval.
> **CRITICAL**: Ads have `review_status`. New ads enter `in_review` and will > not serve until `review_status="approved"`, even if `status="active"`.
> **CRITICAL**: `chat_card` creatives require `target_url` and `file_id`. > Upload the image first via `openai_ads_images_upload`, then pass the returned > `file_id` to `openai_ads_create`. PNG, 1024x1024, <= 1 MB.
> **IMPORTANT**: Creative types are `chat_card` and `product_ad_template`. > Product-ad templates get image and destination URL from the selected product > feed item, so they do not require `file_id` or `target_url`.
> **IMPORTANT**: Campaign `bidding_type` can be `impressions` or `clicks`. > Ad group `billing_event_type` can be `impression` or `click`.
| Job | Tools | | --- | --- | | Account | `openai_ads_ad_accounts_get`, `openai_ads_update_ad_account`, `openai_ads_activate_ad_account`, `openai_ads_pause_ad_account`, `openai_ads_health_check` | | Campaigns | `openai_ads_campaigns_create`, `openai_ads_campaigns_get`, `openai_ads_campaigns_list`, `openai_ads_campaigns_update`, `openai_ads_campaigns_pause`, `openai_ads_campaigns_activate`, `openai_ads_campaigns_archive` | | Ad groups | `openai_ads_ad_groups_create`, `openai_ads_ad_groups_get`, `openai_ads_ad_groups_list`, `openai_ads_ad_groups_update`, `openai_ads_ad_groups_pause`, `openai_ads_ad_groups_activate`, `openai_ads_ad_groups_archive` | | Ads | `openai_ads_create`, `openai_ads_get`, `openai_ads_list`, `openai_ads_update`, `openai_ads_pause`, `openai_ads_activate`, `openai_ads_archive` | | Images & targeting | `openai_ads_images_upload`, `openai_ads_search_geo_locations` | | Audiences | `openai_ads_create_custom_audience`, `openai_ads_create_custom_audience_upload`, `openai_ads_get_custom_audience`, `openai_ads_list_custom_audiences`, `openai_ads_archive_custom_audience` | | Conversions | `openai_ads_create_conversion_pixel`, `openai_ads_create_conversion_api_key`, `openai_ads_create_conversion_event_setting`, `openai_ads_list_conversion_event_settings`, `openai_ads_get_conversion_insights` | | Insights | `openai_ads_account_insights_get`, `openai_ads_campaign_insights_get`, `openai_ads_ad_group_insights_get`, `openai_ads_insights_get` | | Cache snapshot | `openai_ads_cache`, `openai_ads_caches_get`, `openai_ads_caches_refresh` |
Run these after connect:
openai_ads_ad_accounts_get() openai_ads_campaigns_list(limit=100) openai_ads_list_custom_audiences(limit=100) openai_ads_list_conversion_event_settings(limit=100)
The connect-time context builder may have already populated a cached snapshot. Prefer:
openai_ads_caches_get()
If `success=False` because the cache is empty, refresh once:
openai_ads_caches_refresh()
Agent Skills for marketing — paid ads, social media, SEO, AI search, competitor research, ad creative generation, email lifecycle, analytics, operations, and more.
Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper…
Plan and create Amazon Sponsored Products campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Amazon Ads,…
Drive Google Analytics (GA4), Google Tag Manager, Google Search Console, and BigQuery from chat — tracking plans, GA4 reports,…
Generate one excellent, on-brand blog post per run for any business, built to rank on Google and get cited by AI search (ChatGPT,…
Create and maintain a single brand-context.md — positioning, audience, personas, pain points, customer language, voice, proof…
Run end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…