ワンクリックで
dashboard
Quick performance overview of all active Spotify ad campaigns — impressions, spend, reach, clicks, and pacing at a glance.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Quick performance overview of all active Spotify ad campaigns — impressions, spend, reach, clicks, and pacing at a glance.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
This skill should be used when the user asks to "call the Spotify Ads API", "create a Spotify ad campaign", "manage Spotify ads", "pull Spotify ad reports", "set up ad sets or ads", "upload ad assets", "target audiences on Spotify", "check campaign status", "get ad account info", "look up API schema or fields", "check what targeting options exist", or asks about Spotify advertising endpoints, request/response formats, enum values, or authentication.
Create, edit, validate, and publish draft campaigns, ad sets, and ads via the Spotify Ads API. Drafts let you build a full campaign hierarchy without going live — review and iterate before publishing. Use when the user wants to draft a campaign, validate before publishing, edit drafts, list drafts, or publish drafts.
Create a full campaign (campaign + ad sets + ads) from a plain-text description. Parses natural language into structured API calls. Prefers the draft workflow for safer creation with batch validation.
Generate Spotify Ads campaign strategy from a landing page, product or business page, brand brief, location page, uploaded creative assets, existing Spotify Ads assets, or a natural-language business goal. Use when the user asks for the best campaign structure, targeting plan, audience plan, budget split, creative rotation, API-ready campaign plan, or pre-build recommendations before creating Spotify campaigns.
Clone an existing Spotify Ads API campaign or ad set — duplicate the full hierarchy (campaign, ad sets, ads) with optional modifications to name, dates, budget, or targeting.
Manage Spotify Ads API ad sets and ads — list, create, get, or update.
| name | dashboard |
| description | Quick performance overview of all active Spotify ad campaigns — impressions, spend, reach, clicks, and pacing at a glance. |
| argument-hint | [campaign_id] | [detail] |
| allowed-tools | ["Read","Bash","AskUserQuestion"] |
Quick performance overview with metrics, spend, and pacing for active campaigns.
access_token, ad_account_id, and auto_execute from the active platform settings file:
.codex/spotify-ads-api.local.md, then fall back to .claude/spotify-ads-api.local.md, then .gemini/spotify-ads-api.local.md..claude/spotify-ads-api.local.md, then fall back to .codex/spotify-ads-api.local.md, then .gemini/spotify-ads-api.local.md..gemini/spotify-ads-api.local.md, then fall back to .claude/spotify-ads-api.local.md, then .codex/spotify-ads-api.local.md.https://api-partner.spotify.com/ads/v3/spotify-ads-api:configure on Claude/Codex, /configure on Gemini).version: .codex-plugin/plugin.json on Codex, .claude-plugin/plugin.json on Claude, or gemini-extension.json (extension root) on Gemini.SDK_PRODUCT to codex-plugin on Codex, claude-code-plugin on Claude, or gemini-cli-extension on Gemini. Set SDK_HEADER="X-Spotify-Ads-Sdk: $SDK_PRODUCT/$PLUGIN_VERSION" and include -H "$SDK_HEADER" on all API requests.<campaign_id> (UUID) → Campaign detail view for that specific campaigndetail → Extended overview with ad set breakdown for all campaignsExecute two API calls to build the dashboard:
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/aggregate_reports?\
entity_type=CAMPAIGN&\
fields=IMPRESSIONS&fields=SPEND&fields=CLICKS&fields=REACH&fields=FREQUENCY&fields=CTR&fields=COMPLETES&\
granularity=LIFETIME&\
entity_status_type=CAMPAIGN&\
statuses=ACTIVE&\
limit=50"
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/campaigns?limit=50&sort_direction=DESC"
=== Campaign Dashboard ===
Active campaigns: 3 | Total spend: $1,234.56
| Campaign | Impressions | Spend | Reach | Clicks | CTR | Frequency |
|------------------|-------------|----------|--------|--------|-------|-----------|
| Summer Promo | 156,234 | $450.00 | 42,100 | 1,234 | 0.79% | 1.10 |
| Q2 Brand | 89,456 | $225.50 | 28,200 | 567 | 0.63% | 1.14 |
| Podcast Launch | 45,000 | $112.30 | 15,800 | 289 | 0.64% | 1.02 |
aggregate_reports: Already in dollars — display directly as $X.XX (do NOT divide by 1,000,000)micro_amount from entity details (campaigns, ad sets): In micro-units — divide by 1,000,000 to get dollars156,234)0.79%)When budget info is available from campaign/ad set details:
$450 / $500 daily (90%)$2,100 / $5,000 lifetime (42%, 35% of flight elapsed)To calculate flight elapsed percentage:
elapsed_pct = (today - start_date) / (end_date - start_date) * 100
If pacing is significantly ahead or behind (spend % differs from elapsed % by more than 20 points), flag it:
If continuation_token is present in the response, note that more campaigns exist and suggest running again with pagination.
<campaign_id>)Drill into a specific campaign with ad set breakdown.
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/campaigns/$CAMPAIGN_ID"
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/aggregate_reports?\
entity_type=AD_SET&\
fields=IMPRESSIONS&fields=SPEND&fields=CLICKS&fields=REACH&fields=FREQUENCY&fields=COMPLETES&\
granularity=LIFETIME&\
entity_ids=$CAMPAIGN_ID&\
entity_ids_type=CAMPAIGN&\
include_parent_entity=true&\
limit=50"
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/ad_sets?campaign_ids=$CAMPAIGN_ID&limit=50"
=== Summer Promo (REACH) ===
Status: ACTIVE | Created: 2026-02-15
| Ad Set | Format | Budget | Impressions | Spend | Reach | Clicks | Completes |
|------------------|--------|------------|-------------|---------|--------|--------|-----------|
| US 18-34 Audio | AUDIO | $75/day | 98,000 | $300.00 | 28,500 | 890 | 85,000 |
| US 25-54 Video | VIDEO | $50/day | 58,234 | $150.00 | 13,600 | 344 | 42,000 |
Apply the same formatting rules as the account overview (spend from reports is already in dollars; budget micro_amount from entity details must be divided by 1,000,000).
Show targeting summary for each ad set if available (geo, age range, platforms).
detail)Like the default account overview, but also breaks down each campaign into its ad sets.
Use the same calls as the account overview, plus:
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/aggregate_reports?\
entity_type=AD_SET&\
fields=IMPRESSIONS&fields=SPEND&fields=CLICKS&fields=REACH&fields=FREQUENCY&fields=COMPLETES&\
granularity=LIFETIME&\
include_parent_entity=true&\
entity_status_type=AD_SET&\
statuses=ACTIVE&\
limit=50"
And:
curl -s -w "\nHTTP_STATUS:%{http_code}" -H "Authorization: Bearer $TOKEN" \
-H "$SDK_HEADER" \
"$BASE_URL/ad_accounts/$AD_ACCOUNT_ID/ad_sets?limit=50&sort_direction=DESC"
Group ad sets under their parent campaign:
=== Campaign Dashboard (Detailed) ===
Active campaigns: 2 | Total spend: $675.50
Summer Promo (REACH) — $450.00 spent
| Ad Set | Format | Impressions | Spend | Reach | Clicks |
|------------------|--------|-------------|---------|--------|--------|
| US 18-34 Audio | AUDIO | 98,000 | $300.00 | 28,500 | 890 |
| US 25-54 Video | VIDEO | 58,234 | $150.00 | 13,600 | 344 |
Q2 Brand (CLICKS) — $225.50 spent
| Ad Set | Format | Impressions | Spend | Reach | Clicks |
|------------------|--------|-------------|---------|--------|--------|
| US All Audio | AUDIO | 89,456 | $225.50 | 28,200 | 567 |
auto_execute is true, execute all API calls directly and display the dashboard.auto_execute is false, present the curl commands and ask for confirmation before executing.aggregate_reports are already in dollars — display directly. Budget micro_amount values from entity details (campaigns, ad sets) must be divided by 1,000,000. Never show raw micro-amounts to the user.