← ClaudeAtlas

apple-search-adslisted

Run Apple Search Ads (Apple Ads, ASA) campaigns through the Campaign Management API v5 with a bundled read-only CLI - campaign status and serving reasons, impressions / taps / installs / spend, CPT and CPI, per-country and per-day reports, keyword and search-term reports, negatives, plus documented payloads to create manual campaigns (exact / broad keywords, Search Match discovery, Search tab, product pages), pause, relaunch, change budgets and bids after an explicit yes. Use it whenever the user mentions Apple Ads, Search Ads, ASA, App Store ads, an auto campaign that doesn't deliver, Apple keywords, CPT, paid installs, "pause / relaunch / raise / lower the Apple campaign", or asks what their App Store ads cost, even if they don't say "API". Not for ChatGPT or TikTok ads (sibling skills), not for the App Store listing's own ASO keywords, and not for judging the in-app funnel (posthog-growth:posthog-paid-funnel). There is no Apple 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
# Apple Search Ads (Campaign Management API v5) There is no MCP server: everything goes through the Apple Ads Campaign Management API v5 (base URL in `scripts/report.py`). Auth is a JWT ES256 signed with the user's private key, exchanged for a one-hour OAuth token. Endpoints, payloads and observed behaviours are in `references/api-notes.md` (in this skill's folder). ## 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 what the Apple section needs. 2. If `.claude/posthog-funnel-map.md` exists, read its **Business profile** and **Project conventions**; they override this skill's defaults (report language, style, where reports go). 3. The script reads `APPLE_ADS_ORG_ID`, `APPLE_ADS_CLIENT_ID`, `APPLE_ADS_KEY_ID`, `APPLE_ADS_PRIVATE_KEY_PATH` and `APPLE_ADS_TIMEZONE` (default `ORTZ`, the org's timezone) from the environment, falling back to the first `.env.local` then `.env` found walking up from the current directory. Run it from the project root. The private key is the only secret: never print it, copy it or commit it. If the user has no API access yet: in Apple Ads, Account settings > API, they create an API user (role "API Campaign Manager" for read and write, "API Account Read Only" to only report), generate a key pair locally