Skip to content
Marketing
Skill

/google-ads-audit

Comprehensive Google Ads account audit — campaign structure, budget pacing, conversion tracking, wasted spend — across every campaign type, ranked by estimated $ impact

From plugin
claude-code-marketing-skills
10251 skills
Install
$ npx -y skills add cognyai/claude-code-marketing-skills --skill google-ads-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/google-ads-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Comprehensive Google Ads account audit — campaign structure, budget pacing, conversion tracking, wasted spend — across every campaign type, ranked by estimated $ impact

SKILL.md

google-ads-audit.SKILL.md
name: google-ads-audit
description: Comprehensive Google Ads account audit — campaign structure, budget pacing, conversion tracking, wasted spend — across every campaign type, ranked by estimated $ impact
version: "1.0.0"
author: Cogny AI
requires: cogny-mcp
platforms: [google-ads]
user-invocable: true
argument-hint: "[full|campaigns|budget|tracking|negatives]"
allowed-tools:
  - mcp__cogny__google_ads__tool_list_accessible_accounts
  - mcp__cogny__google_ads__tool_execute_gaql
  - mcp__cogny__google_ads__tool_get_gaql_doc
  - mcp__cogny__google_ads__tool_get_reporting_view_doc
  - mcp__cogny__create_finding
  - WebFetch
  - WebSearch

Google Ads Audit

A one-time, account-wide Google Ads health audit using live data via Cogny's MCP server. Covers every campaign type, scores the account out of 100, and routes you to the right campaign-type skill for deeper drill-down.

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

Prerequisites Check

Verify Google Ads MCP tools are available. If `mcp__cogny__google_ads__tool_execute_gaql` is not available:

This skill requires Cogny's Google Ads MCP server.

1. Sign up at https://cogny.com/agent
2. Connect your Google Ads account
3. Add Cogny to your .mcp.json (see the repo README)
4. Restart Claude Code

Stop here if the tools are missing — do not guess at numbers.

Usage

`/google-ads-audit` — full account audit `/google-ads-audit campaigns` — campaign structure + performance only `/google-ads-audit budget` — budget pacing only `/google-ads-audit tracking` — conversion tracking sanity only `/google-ads-audit negatives` — account negatives + exclusions only

Approach

This is the **account-level** audit — it finds structural problems and wasted spend across the whole account. For campaign-type depth (asset groups, keywords, feeds, audiences) it points you to `/pmax-audit`, `/search-campaign-audit`, `/shopping-campaign-audit`, or `/demand-gen-audit`.

All money fields come back in micros — divide `cost_micros` etc. by 1,000,000.

Steps

1. Account discovery

tool_list_accessible_accounts

If multiple accounts are accessible, list them and ask which to audit. Confirm the account name and currency before continuing.

2. Campaign overview by channel type (last 30 days)

SELECT campaign.name, campaign.status, campaign.advertising_channel_type,
  campaign.bidding_strategy_type, campaign_budget.amount_micros,
  metrics.cost_micros, metrics.conversions, metrics.conversions_value,
  metrics.clicks, metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC

Build a per-channel-type summary (Search / Performance Max / Shopping / Display / Video / Demand Gen): total spend, conversions, CPA, ROAS (`conversions_value / cost`).

Flag:

  • Campaigns spending >5% of account budget with **zero conversions**
  • `MAXIMIZE_CONVERSIONS` / `TARGET_CPA` campaigns with <15 conversions/30d (too little

data for the bidding strategy to learn)

  • Multiple campaigns of the same type competing for the same theme (self-competition)
  • Enabled campaigns with zero spend (broken, or budget/targeting starved)

3. Conversion tracking sanity

**You must run BOTH queries below before flagging anything in this section.** Structure alone (which actions exist, which are `primary_for_goal`) tells you nothing about what is actually driving the bidding signal. A "Primary" action with zero recent volume is harmless; a "Secondary" action can be a deliberate dedup choice. Always cross-reference the structure against actual conversion volume per action.

**3a. Structure — which conversion actions exist:**

SELECT conversion_action.name, conversion_action.status, conversion_action.type,
  conversion_action.category, conversion_action.counting_type,
  conversion_action.primary_for_goal, conversion_action.include_in_conversions_metric
FROM conversion_action

**3b. Volume — which actions are actually firing (last 30 days):**

SELECT segments.conversion_action_name, segments.conversion_action_category,
  metrics.all_conversions, metrics.all_conversions_value,
  metrics.conversions, metrics.conversions_value
FROM customer
WHERE segments.date DURING LAST_30_DAYS

Then join: for every conversion action with non-trivial volume, note whether it is Primary or Secondary, and whether `metrics.conversions` (the bidding signal) or only `metrics.all_conversions` (the reporting signal) is counting it.

**3c. Reconcile against account totals.** Pull account-level `metrics.conversions` and `metrics.conversions_value` for the same window — the sum across Primary actions in 3b should match (within rounding). If it does, the `metrics.conversions` figure is the real booking/purchase/lead action and bidding is grounded in real value. **State this explicitly in the report before making any tracking claim.**

Flag (each must be backed by a number from 3b, not a guess from 3a):

  • **No primary action has volume in the last 30 days** — bidding really is flying

blind. (Note: a Primary action with zero recent volume is harmless, not broken.)

  • A high-volume real revenue action (purchase, booking, qualified lead) is Secondary

while a low-value proxy (page view, "Lokala åtgärder", "Detail product page view") is the only Primary — *that* is the "bidding on page views" pattern.

  • `MANY_PER_CLICK` counting on a lead-gen action with meaningful volume (double-counts

leads; usually should be `ONE_PER_CLICK`).

  • Two near-duplicate Primary actions both firing on the same event (e.g. on-site

booking + GA4 booking both Primary → double-counted bid signal).

  • `REMOVED` / `HIDDEN` actions still receiving conversions.

**Do NOT flag:**

  • A gap between `all_conversions` and `conversions`, by itself. That gap is just the

pile of Secondary actions (store visits, GA4 echoes of an on-site action, local actions, contacts, etc.) — it is often correct and intentional. Only

Read more
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.

Get the whole plugin
Stats
102
Stars
12
Forks
Maintained
Maintenance
HTML
Language
3mo ago
Last commit
5mo ago
Created

Repo: cognyai/claude-code-marketing-skills