diagnose-underperforme…
Diagnose why a specific Google Ads or Meta Ads campaign / ad set / ad is underperforming and prescribe the next concrete action. Use when the user says…
Find wasted spend in Google Ads search terms and add negatives at the right scope (account list, campaign, or ad group). Use when the user says "find junk keywords", "stop wasting on bad searches", or wants a search-terms cleanup.
$ npx -y skills add markifact/markifact-mcp --skill negative-keyword-sweep --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/negative-keyword-sweepContext preview
The summary Claude sees to decide when to auto-load this skill.
Find wasted spend in Google Ads search terms and add negatives at the right scope (account list, campaign, or ad group). Use when the user says "find junk keywords", "stop wasting on bad searches", or wants a search-terms cleanup.
name: negative-keyword-sweep description: Find wasted spend in Google Ads search terms and add negatives at the right scope (account list, campaign, or ad group). Use when the user says "find junk keywords", "stop wasting on bad searches", or wants a search-terms cleanup.
Pull the search-terms report, identify spend that isn't producing, group it intelligently, and add negatives at the right level — without nuking legitimate intent.
1. Account name (substring) — required. 2. Scope — single campaign, list of campaigns, or "all Search campaigns" — required. 3. Lookback — default 30 days; user can override (60 / 90). 4. Waste thresholds — defaults; allow override:
5. Negative scope preference — default behavior:
1. **Discover** ops: `gads_select_accounts`, `gads_list_report_fields`, `gads_get_report`, `gads_create_negative_keyword_list`, `gads_attach_negative_list_to_campaigns`, `gads_add_keywords_to_negative_list`, `gads_add_negative_keywords_to_campaigns`, `gads_add_negative_keywords_to_ad_groups`. 2. **Inspect** every op via `get_operation_inputs`. 3. **Resolve account** (substring). 4. **Pull search-terms report** via `gads_get_report` at the search-term granularity (`search_term_view` resource). Required fields: search_term, campaign_id/name, ad_group_id/name, impressions, clicks, cost, conversions, conv_value, ctr, cvr. 5. **Compute baselines**: account-level CVR over lookback. Compute target CPA if not given (use account history / average across the scope). 6. **Apply thresholds** → candidate list. Tag each candidate with the trigger reason (no-conv, low-CVR, denylist). 7. **Cluster candidates by intent**. Group on shared roots / themes (e.g. `free trial spreadsheet`, `free template excel`, `free download` → cluster "free*"). For each cluster, propose:
8. **Build a preview table** showing every proposed negative with: keyword, match, scope, target campaigns/ad groups, wasted spend that would have been blocked, and a sample of 1–3 search terms it covers. Wait for user confirmation. 9. **Execute**:
10. **Confirm**: count by scope, total estimated spend blocked.
Use `safe-write-operations` for steps 9 onward.
Preview:
| Negative | Match | Scope | Target | Wasted spend blocked | Sample terms | |---|---|---|---|---|---| | free | EXACT | account list "Junk - Free" | all Search | $312 | `free crm`, `free tool` | | jobs | PHRASE | account list "Junk - Jobs" | all Search | $147 | `crm jobs`, `software jobs` | | ... | |
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. Use when the user says…
Edit a Meta ad's creative content — landing page URL, primary text, headline, description, CTA, link description — across one ad or many. Use when the user…
Launch a complete Google Ads Search campaign — campaign, ad group, responsive search ads, keywords, sitelinks, callouts, and negatives — built paused and ready…
Launch a complete Meta Ads campaign — campaign, ad set, and ad(s) — built paused and ready to review. Use when the user wants a new Facebook/Instagram campaign.
Launch a Google Ads Performance Max campaign with a complete asset group, audience signals, and (for ecom) listing groups. Built paused for review. Use when…
Senior performance-marketing operator with hands-on access to the user's ad accounts via Markifact. Use proactively for anything Google Ads, Meta / Facebook /…