Skip to content
Back to skills

Google Ads Audit

ASecurity

Deep Google Ads account audit — keywords, quality scores, budget pacing, search terms

  • 96 stars
  • 0 votes
  • 7 copies
  • 190 views
  • Added May 27, 2026
data-aigosqlapiperformance

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add cognyai/claude-code-marketing-skills --skill google-ads-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google Ads Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Google Ads Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cognyai-google-ads-audit/badge)](https://www.skillsdirectory.com/skills/cognyai-google-ads-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: google-ads-audit
description: Deep Google Ads account audit — keywords, quality scores, budget pacing, search terms
version: "1.0.0"
author: Cogny AI
requires: cogny-mcp
platforms: [google-ads]
user-invocable: true
argument-hint: "[full|keywords|budget|quality|search-terms]"
allowed-tools:
  - mcp__cogny__google_ads__*
  - mcp__cogny__create_finding
  - WebFetch
  - WebSearch
---

# Google Ads Audit

Comprehensive Google Ads account audit using live data via Cogny's MCP server.

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

## Prerequisites Check

Before starting, verify you have Google Ads MCP tools 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 your API key to .mcp.json
4. Restart Claude Code

See the README for setup instructions.
```

## Usage

`/google-ads-audit` — full account audit
`/google-ads-audit keywords` — keyword performance only
`/google-ads-audit budget` — budget pacing only
`/google-ads-audit quality` — quality scores only
`/google-ads-audit search-terms` — search term analysis only

## Full Audit Steps

### 1. Account Discovery
```
google_ads__tool_list_accessible_accounts
```
Identify the account and confirm access.

### 2. Campaign Overview (last 30 days)
```sql
SELECT campaign.name, campaign.status, campaign.bidding_strategy_type,
  campaign_budget.amount_micros, metrics.cost_micros, metrics.conversions,
  metrics.clicks, metrics.impressions, metrics.conversions_value
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
```

### 3. Keyword Performance
```sql
SELECT ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type,
  ad_group_criterion.quality_info.quality_score, campaign.name,
  metrics.cost_micros, metrics.conversions, metrics.clicks, metrics.impressions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESC LIMIT 50
```

Flag: QS < 4, zero conversions with high spend, broad match bleeding

### 4. Search Term Analysis
```sql
SELECT search_term_view.search_term, search_term_view.status, campaign.name,
  metrics.cost_micros, metrics.conversions, metrics.clicks
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESC LIMIT 30
```

Flag: irrelevant terms, high-spend zero-conversion terms, missing negatives

### 5. Budget Pacing
```sql
SELECT campaign.name, campaign_budget.amount_micros, metrics.cost_micros,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_7_DAYS AND campaign.status = 'ENABLED'
```

Calculate: daily budget vs daily spend ratio per campaign

### 6. Quality Score Distribution
```sql
SELECT ad_group_criterion.quality_info.quality_score,
  ad_group_criterion.quality_info.creative_quality_score,
  ad_group_criterion.quality_info.search_predicted_ctr,
  ad_group_criterion.quality_info.post_click_quality_score,
  ad_group_criterion.keyword.text, campaign.name
FROM keyword_view
WHERE ad_group_criterion.quality_info.quality_score IS NOT NULL
ORDER BY ad_group_criterion.quality_info.quality_score ASC
```

### 7. Report findings
Use `create_finding` for each actionable issue found. Include specific data, estimated impact, and recommended action.

Present a summary table:

```
Google Ads Audit: [Account Name]
Health Score: X/100

Campaign Performance (30d):
Total Spend: [X] | Conversions: [X] | Avg CPA: [X]

Issues Found: [N]
- [Critical] ...
- [High] ...
- [Medium] ...

Top 3 Actions:
1. [Highest impact with estimated savings]
2. ...
3. ...
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.