ab-test-plan
FreePlan an A/B test by script: sample size per variant, days to run, stopping rules. "how many visitors per variant"
The English summary is being prepared. Showing the original description.
Launch a paid ad campaign on a connected ad platform, approval-gated. "launch the Google Ads campaign"
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
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):
~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Apply brand voice, compliance rules for target markets (skills/context-engine/compliance-rules.md), and industry context. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load restrictions. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.budget_range in profile.json. If the daily or lifetime budget exceeds the brand's defined maximum, halt and require explicit re-confirmation from the user with the exact dollar amount displayed prominently. This safeguard cannot be bypassed — it protects against accidental overspend.skills/context-engine/platform-publishing-specs.md for audience field mappings, custom audience upload formats, lookalike source requirements, exclusion list configuration, and any platform-specific targeting features (Google affinity audiences, Meta detailed targeting, LinkedIn job title targeting, TikTok interest categories).approval-manager.py --action create-approval with the risk level inside the --data JSON — {"type":"launch-ad","platform":"<platform>","content_summary":"...","risk_level":"high"} (use "critical" if daily budget exceeds $1,000). There is no --risk-level flag; see the Execution gate above for the exact command. Generate a campaign summary with projected reach, estimated cost per result, targeting details, creative preview, budget safeguard verification, and compliance status.yesexecution-tracker.py to log the campaign launch with timestamp, platform, campaign ID, budget details, targeting summary, creative asset references, bid strategy, and monitoring schedule.A structured launch confirmation containing:
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Plan an A/B test by script: sample size per variant, days to run, stopping rules. "how many visitors per variant"
The English summary is being prepared. Showing the original description.
Write ad copy variants to each platform's specs, policy-checked and in brand voice. "write ad copy for Meta"
The English summary is being prepared. Showing the original description.
Add a custom MCP integration: scaffold the server, write .mcp.json, test it. "add a new MCP server"
The English summary is being prepared. Showing the original description.
Run a one-time AEO audit of six AI answer engines, scored per surface. "check our AI search visibility"
The English summary is being prepared. Showing the original description.
Plan AEO/GEO strategy to get cited by AI: content, entities, schema, 90-day plan. "how do we get cited by AI"
The English summary is being prepared. Showing the original description.
Build the agency dashboard across all client brands: health, pacing, risk. "how are all our clients doing"
The English summary is being prepared. Showing the original description.