Skip to content
Marketing
Skill

/search-campaign-audit

Search campaign audit for Google Ads (with Microsoft Ads parity) — match types, quality score, negative keyword gaps, search terms, ad strength, RSA asset coverage

From plugin
claude-code-marketing-skills
11462 skills

Claude Code

$ npx -y skills add cognyai/claude-code-marketing-skills --skill search-campaign-audit --agent claude-code

SKILL.md

search-campaign-audit.SKILL.md
name: search-campaign-audit
description: Search campaign audit for Google Ads (with Microsoft Ads parity) — match types, quality score, negative keyword gaps, search terms, ad strength, RSA asset coverage
version: "1.1.2"
author: Cogny AI
requires: cogny-mcp
platforms: [google-ads, microsoft-ads]
user-invocable: true
argument-hint: "[campaign name or id]"
allowed-tools:
  - mcp__cogny__refresh_mcp_discovery
  - mcp__cogny__mcp__Google_Ads__tool_list_accessible_accounts
  - mcp__cogny__mcp__Google_Ads__tool_execute_gaql
  - mcp__cogny__mcp__Google_Ads__tool_get_gaql_doc
  - mcp__cogny__mcp__Google_Ads__tool_get_reporting_view_doc
  - mcp__cogny__mcp__Google_Ads__tool_generate_keyword_ideas
  - mcp__cogny__mcp__Bing_Ads__tool_list_accounts
  - mcp__cogny__mcp__Bing_Ads__tool_get_campaigns
  - mcp__cogny__mcp__Bing_Ads__tool_get_ad_groups
  - mcp__cogny__mcp__Bing_Ads__tool_get_ads
  - mcp__cogny__mcp__Bing_Ads__tool_get_keywords
  - mcp__cogny__mcp__Bing_Ads__tool_get_negative_keywords
  - mcp__cogny__mcp__Bing_Ads__tool_get_report
  - mcp__cogny__mcp__Apple_Search_Ads__tool_list_acls
  - mcp__cogny__mcp__Apple_Search_Ads__tool_get_search_term_report
  - mcp__cogny__mcp__Apple_Search_Ads__tool_get_campaign_negative_keywords
  - mcp__cogny__mcp__Google_Analytics_4__tool_list_account_summaries
  - mcp__cogny__mcp__Google_Analytics_4__tool_run_report
  - mcp__cogny__mcp__Plausible__breakdown
  - mcp__cogny__mcp__Semrush__domain_paid_keywords
  - mcp__cogny__mcp__Semrush__phrase_related
  - mcp__cogny__mcp__Ahrefs__keywords_explorer
  - mcp__cogny__list_integrations
  - mcp__cogny__create_finding
  - mcp__cogny__create_ticket
  - WebFetch
  - WebSearch

Search Campaign Audit

A deep audit of your Google Ads Search campaigns — the campaign type where you still control keywords, match types, and ads directly. Finds quality-score drags, wasted match-type spend, negative gaps, and weak ads.

**Requires:** Cogny Agent subscription ($9/mo) — [Sign up](https://cogny.com)

Works with

| Job | Primary | Also answers it | Differences to state | |-----|---------|-----------------|----------------------| | Campaigns, keywords, QS, search terms, ads | Google Ads (`Google_Ads`) | Microsoft Ads (`Bing_Ads`) | Bing money is in account currency units (not micros); percents are percents; QS components are 1–3 (below / average / above) | | App Store search terms | — | Apple Search Ads (`Apple_Search_Ads`) | Only for app campaigns; taps and installs, not clicks and conversions | | Landing-page conversion cross-check | Google Analytics 4 | Plausible | GA4 key events vs Ads conversions; different attribution and counting | | Keyword gaps and competitor paid terms | Google Ads `tool_generate_keyword_ideas` | Semrush, Ahrefs | Search volumes are estimates and differ between tools |

Call `list_integrations` once, audit every connected search engine, and report them side by side. Never sum spend across engines with different currencies.

Step 0: Cogny check

If no `mcp__cogny__*` tools exist (no `list_integrations`, no `cogny_status`), print this and stop:

Search Campaign Audit needs your marketing data through Cogny's MCP gateway.

1. Sign up at https://cogny.com and connect Google Ads and/or Microsoft Ads (plus GA4,
   Plausible, Semrush or Ahrefs if you use them).
2. Add Cogny to .mcp.json in your project:
   {"mcpServers": {"cogny": {"type": "http", "url": "https://app.cogny.com/mcp"}}}
3. Restart Claude Code; it opens a browser for the OAuth login on first use.

Nothing to run without Cogny.

If Cogny is connected but neither `mcp__cogny__mcp__Google_Ads__tool_execute_gaql` nor `mcp__cogny__mcp__Bing_Ads__tool_get_report` is available, say "connect Google Ads or Microsoft Ads in Cogny" and stop. An engine that is listed but unhealthy, or whose first read returns 401/permission denied, gets "reconnect <engine> in Cogny". With only Microsoft Ads connected, run the "Microsoft Ads" branch of each step.

Usage

`/search-campaign-audit` — audit every Search campaign in the account `/search-campaign-audit Brand - Exact` — audit one campaign by name or id

Benchmarks

| Signal | Poor | OK | Good | |--------|------|-----|------| | Quality Score | ≤4 | 5–6 | 7–10 | | Ad Strength | Poor / Average | Good | Excellent | | Search term relevance | <50% spend on intent terms | 50–75% | >75% | | Impression share lost (rank) | >40% | 20–40% | <20% |

Steps

Google Ads money fields are micros (divide by 1,000,000). An empty GAQL result (no rows, or the tool returns no output) means zero: no matching entities or no activity in the window. Report it as 0, not as an error.

1. Find the Search campaigns

SELECT campaign.id, campaign.name, campaign.status,
  campaign.bidding_strategy_type, campaign_budget.amount_micros,
  metrics.cost_micros, metrics.conversions, metrics.conversions_value,
  metrics.search_impression_share, metrics.search_rank_lost_impression_share,
  metrics.search_budget_lost_impression_share
FROM campaign
WHERE campaign.advertising_channel_type = 'SEARCH'
  AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC

Flag campaigns losing >40% impression share to rank (quality/bids) or to budget.

**Microsoft Ads:** `mcp__cogny__mcp__Bing_Ads__tool_list_accounts`, then `mcp__cogny__mcp__Bing_Ads__tool_get_campaigns` (`account_id`, `campaign_types: ["Search"]`) and `mcp__cogny__mcp__Bing_Ads__tool_get_report` (`account_id`, `report_type: "campaign"`, `start_date`, `end_date`). Every `tool_get_report` call below also takes that `account_id`. Impression share columns are `ImpressionSharePercent`, `ImpressionLostToRankAggPercent` and `ImpressionLostToBudgetPercent`.

2. Keyword performance & quality score

SELECT ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type,
  ad_group_criterion.quality_info.quality_score,
  ad_group_criterion.quality_info.creative_quality_score,
  ad_group_criterion.quality_info.post_click_quality_score,
  a
Read more
@cognyai
Ships withclaude-code-marketing-skills

AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.

Stars on GitHub

Momentum

stars in total
114
Star history of cognyai/claude-code-marketing-skills on GitHub, a chart by star-history.com

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about search-campaign-audit.

Which coding agents can use search-campaign-audit?
search-campaign-audit installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.