diagnose-underperforme…
Diagnose why a specific Google Ads or Meta Ads campaign / ad set / ad is underperforming and prescribe the next concrete action.…
Pause fatigued ads and ship fresh creative variants in their place. Works on both Meta and Google Ads. Use when CTR is dropping, frequency is climbing, or the user says "creative is tired" / "let's refresh ads". Always starts new variants paused.
Claude Code
$ npx -y skills add markifact/markifact-mcp --skill rotate-creative --agent claude-code
Codex
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a codex -y
Cursor
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a cursor -y
Gemini CLI
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a gemini-cli -y
GitHub Copilot
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a github-copilot -y
OpenCode
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a opencode -y
Windsurf
$ npx skills add markifact/markifact-mcp --skill rotate-creative -a windsurf -y
name: rotate-creative description: Pause fatigued ads and ship fresh creative variants in their place. Works on both Meta and Google Ads. Use when CTR is dropping, frequency is climbing, or the user says "creative is tired" / "let's refresh ads". Always starts new variants paused.
Identify creative that's stopped performing, pause it, and ship variants. Preserve learning where possible. Always start new ads **paused** for review.
1. Account name (substring) — required. 2. Platform — Meta or Google Ads (or both, if user says "all my ads") — required. 3. Scope — campaign / ad set / ad group, or "all active" — required. 4. Lookback window — default 30 days. 5. Fatigue thresholds — defaults below; allow override:
6. Minimum sample size before pausing — default ≥ 100 clicks AND ≥ 7 days of data. Refuse to pause anything below this. 7. Variant strategy — `tweak` (small copy/headline change), `angle` (new hook/benefit), or `format` (e.g. image → video). Default `angle`. 8. How many variants per fatigued ad — default 2.
1. **Discover** ops: `meta_ads_select_accounts`, `meta_ads_list_ads`, `meta_ads_get_report`, `meta_ads_list_report_fields`, `meta_ads_update_ad_status`, `meta_ads_duplicate_ad`, `meta_ads_get_ad_creative`, `meta_ads_create_ad_creative`, `meta_ads_replace_ad_creative`, `meta_ads_create_single_image_ad` / `_carousel_ad` / `_video_ad` / `_flexible_ad`. 2. **Inspect.** 3. **Resolve account** (substring). 4. **Pull ad-level report** for the scope, current period vs prior period of equal length. Required fields: spend, impressions, clicks, CTR, conversions, frequency, ad_id, ad_name, adset_id, campaign_id. 5. **Apply thresholds** → list of fatigued ads. Drop anything under the sample-size floor. 6. **For each fatigued ad, build a variant**:
7. **Show user a preview**: each fatigued ad → its proposed variant(s), reasoning. Wait for approval. 8. **Execute**: a. Create the variants (PAUSED). b. Pause the originals via `meta_ads_update_ad_status`. 9. **Confirm** counts.
1. **Discover**: `gads_select_accounts`, `gads_get_report`, `gads_list_report_fields`, `gads_update_ad_status`, `gads_update_asset_status`, `gads_create_responsive_search_ad`, `gads_edit_responsive_search_ad`, `gads_create_responsive_display_ad`, `gads_create_demand_gen_*_ad`. 2. **Inspect.** 3. **Resolve account.** 4. **Pull ad / asset report** at the right granularity. For Search, pull at the ad level + asset performance. For PMax, pull asset group asset performance. 5. **Apply thresholds** (drop low-sample). For Search RSAs, also flag any with ad strength `Poor` / `Average`. 6. **For each fatigued RSA**:
7. **Show user the proposed RSAs / assets** before creating. 8. **Execute**: a. Create new ads (PAUSED). For PMax assets, add as ENABLED but the asset group continues running. b. For old ads: pause via `gads_update_ad_status` once the new variant is live (don't pause until the replacement exists). 9. **Confirm.**
Use `safe-write-operations` for every status flip and every create. Batch into one approval where possible.
Preview before execute:
| Original ad | Per
Manage Google Ads, Meta Ads, TikTok Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads, Pinterest Ads, Snapchat Ads, Amazon Ads, DV360, GA4, BigQuery, Google Search Console, Google Business Profile, Google Merchant Center, Facebook, Instagram, LinkedIn, Shopify,
Diagnose why a specific Google Ads or Meta Ads campaign / ad set / ad is underperforming and prescribe the next concrete action.…
Edit a Meta ad's creative content — landing page URL, primary text, headline, description, CTA, link description — across one ad…
Launch a complete Google Ads Search campaign — campaign, ad group, responsive search ads, keywords, sitelinks, callouts, and…
Launch a complete Meta Ads campaign — campaign, ad set, and ad(s) — built paused and ready to review. Use when the user wants a…
Launch a Google Ads Performance Max campaign with a complete asset group, audience signals, and (for ecom) listing groups. Built…
Senior performance-marketing operator with hands-on access to the user's ad accounts via Markifact. Use proactively for anything…
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…