Install any skill in seconds. Free to start, no credit card required.
Get Started Free →indranilbanerjee/launch-ad-campaign
Launch paid ad campaigns.
Passed 15 of 19 test cases with the skill, and 3 of 19 without it.
and 18 more in the full report
14 fixed3 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
Which context document path is consulted to map platform-specific audience targeting parameters, custom audience formats, and lookalike requirements?
| Checked | Without skill | With skill |
|---|---|---|
| References skills/context-engine/platform-publishing-specs.md for audience field mapping specs | Missed | Passed |
The instructions your model reads when the skill loads.
Script location. If your host does not set
${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin'sscripts/folder, next toskills/. Run them with Python 3.10 or newer:python, orpython3wherepythonis not found (macOS, many Linux systems).
Create and launch a paid advertising campaign on the specified ad platform with proper campaign structure, audience targeting, bid strategy, budget controls, and compliance checks. Includes mandatory budget safeguards that require explicit re-confirmation when spend exceeds brand thresholds, and sets up post-launch monitoring to catch early performance issues before budget is wasted on underperforming configurations.
yes (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.yes, record it: python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"launch-ad","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}', then python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed yes.connector_executor.py needs --approval-id and fires only against a matching, unused, unexpired record (see /digital-marketing-pro:execute-action). A write through a connected MCP server tool is outside that code check: it relies on this typed yes and on your host's permission prompt. Afterwards run python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id} --data '{"execution_result":"success"}' (or failure).The platforms now publish their own MCP servers (catalog: .mcp.json.connectors-reference; details and sources: CONNECTORS.md → "Official ad-platform and CRM MCP servers"). None is active by default. They change how step 12 runs, never whether the gate above runs.
| Server | What DMP may do through it |
|---|---|
meta-ads — Meta Ads AI Connectors, https://mcp.facebook.com/ads (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks |
amazon-ads-mcp — Amazon Ads MCP Server (open beta, partners with API credentials) | Create and update campaigns, read reports. Never delete, even though the server can |
google-ads-mcp — Google's open-source server | Read only. Use it for step 13 (verify the campaign exists with the right settings) and for pacing reports. Google: it "cannot modify bids, pause campaigns, or create new assets". It cannot create or launch anything |
Rules that apply to every write through these servers:
yes → approval-manager.py --action create-approval → --action approve → only then the tool call → approval-manager.py --action mark-executed after the platform confirms. A tool's own confirmation prompt does not replace this gate.PAUSED, set explicitly in the tool call; don't rely on a server default. Ignore the user preference in step 12 for creation — creation is always PAUSED.yes, record a new approval, then switch to ACTIVE (or schedule the start date). /digital-marketing-pro:doctor / connector_resolver.py reports this as the launch-ads action with create_status: PAUSED.access is read-only for write actions. If only google-ads-mcp is connected, a Google launch stays manual (or uses a write-capable connector) — say so, don't improvise.execution-tracker.py, including the approval ids.The user must provide (or will be prompted for):
test cases passed, vs 3 / 19 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.