Skip to main content
ClaudeWave
EN, English
Skill624 repo starsupdated 1mo ago

21-ads-audit-global

This Claude Code skill conducts a comprehensive audit of advertising accounts across Meta, Google, and TikTok platforms, assigning a Health Score between 0 and 100 based on 84 checkpoints across six dimensions: Account, Campaign, AdSet, Ad, Tracking, and Optimization. Use it when ROAS drops significantly, inheriting accounts from other teams, spending over $5,000 monthly without systematic review, encountering pixel or conversion API errors, preparing to scale spend substantially, or managing dropshipping operations with attribution discrepancies.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/minhnv0807/ai-business-skills /tmp/21-ads-audit-global && cp -r /tmp/21-ads-audit-global/skills/en/21-ads-audit-global ~/.claude/skills/21-ads-audit-global
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Ads Audit (Global) — Health Score & Action Plan

> **Difference from `03-performance-eval-global`:**
> - `03` evaluates current performance (CPM, ROAS, funnel) — diagnoses symptoms.
> - `21` audits account configuration (setup, structure, tracking, creative) — scores 0-100 and finds systemic issues.
>
> Insight before numbers. Lead with judgment; illustrate with metrics.

---

## For Newbies — Start Here

**What is an ads audit?**
A structured review of your ad accounts (Meta, Google, TikTok) to find leaks, misconfigurations, and missed opportunities. The output is a **Health Score (0-100)**, a list of **Quick Wins**, and a **7-day Action Plan**.

**When do you need one?**
- ROAS dropped suddenly (>20% week-over-week).
- New account inherited from another agency or in-house team.
- Spending >$5K/month with no clear performance review process.
- Pixel/CAPI showed errors or duplicate events.
- About to scale spend by 2-3x and want to verify foundation.
- Dropshipping store with attribution confusion (Shopify vs Meta vs Triple Whale numbers don't match).

**What you'll need before starting:**
1. Read access to ad accounts (or screen-share / data export).
2. Last 30 days of spend, impressions, clicks, conversions, ROAS.
3. Pixel/CAPI status (Events Manager, GA4, TikTok Events).
4. Region context (US, EU, SEA, LATAM) — benchmarks differ widely.
5. Business model (DTC e-com, B2B SaaS, lead gen, dropshipping) — optimization rules differ.

**How long does it take?**
- Quick audit: 2-3 hours (Health Score + Quick Wins).
- Full audit: 6-10 hours (Health Score + 84 checkpoints + 7-day plan + creative review).

---

## Step 0 — Read Context + Select Region Variant

Before audit, pull two contexts:

1. **Product context** — call `product-marketing-context-global` if not already in conversation. This gives the auditor: pricing, target CAC, business model, current channels.
2. **Region variant** — load the appropriate file:

| Region | File | Currency | Key benchmarks |
|--------|------|----------|----------------|
| **US / North America** | `variants/01-us.md` | USD | Meta CPM $7-12, Google CPC $1-3, ROAS 3-5x |
| **EU / UK** | `variants/02-eu.md` | EUR / GBP | Meta CPM €5-10, Google CPC €1-3, ROAS 3-4x |
| **SEA (VN, TH, ID, PH, SG, MY)** | `variants/03-sea.md` | USD-equivalent | Meta CPM $1-2, Google CPC $0.30-1, ROAS 2-3x |
| **LATAM (BR, MX, AR, CO, CL)** | `variants/04-latam.md` | USD-equivalent | Meta CPM $0.50-1.5, Google CPC $0.20-0.80, ROAS 2-3x |

> **Why region matters:** A $5 CPM is excellent in US but terrible in Vietnam. Audit grading without regional context produces false positives or false negatives.

---

## Information Gathering

Ask up to 4 questions:

1. **Which platforms?** Meta / Google / TikTok / multi-platform — and what % of total ad spend each represents.
2. **Industry + business model?** (DTC e-com, dropshipping, B2B SaaS, lead-gen, local service, course/info-product.)
3. **Monthly ad spend + region?** (e.g. "$15K/month, 70% US, 30% Canada".)
4. **Can you share data?** Either paste tables, share a Looker Studio link, or grant view access to the ad account.

### Auto-pull via MCP (if connected)

If user has connected an MCP server, pull data directly:

| Platform | MCP recommended | Key tools used |
|----------|-----------------|----------------|
| Meta Ads | Meta Official MCP (`mcp.facebook.com/ads`) | `ads_insights_anomaly_signal`, `ads_insights_auction_ranking_benchmarks`, `ads_get_dataset_quality`, `ads_get_opportunity_score` |
| Google Ads | Google Official MCP | GAQL: campaign performance, search terms, quality score |
| TikTok Ads | AdsMCP / tiktok-ads-mcp-server | Performance reports, creative library |
| Cross-platform | Adspirer ads-mcp | Unified analytics across 175+ tools |

**Sample Meta Insights fields when MCP unavailable:**
```
fields=spend,impressions,clicks,ctr,cpc,cpm,actions,cost_per_action_type,
       purchase_roas,frequency,reach
date_preset=last_30d
level=adset
breakdowns=age,gender
```

**Sample GAQL query for Google audit:**
```sql
SELECT campaign.name, campaign.status, campaign.bidding_strategy_type,
       metrics.impressions, metrics.clicks, metrics.cost_micros,
       metrics.conversions, metrics.cost_per_conversion,
       metrics.search_impression_share
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
  AND campaign.status != 'REMOVED'
ORDER BY metrics.cost_micros DESC
```

---

## Health Score Framework (0-100)

### Formula
```
Health Score = Σ(Check_pass × Severity_weight × Dimension_weight)
             / Σ(Check_total × Severity_weight × Dimension_weight) × 100
```

### Severity weights
| Severity | Multiplier | Meaning |
|----------|-----------|---------|
| Critical | 5.0× | Active money/data loss — fix today |
| High | 3.0× | Major impact — fix within 7 days |
| Medium | 1.5× | Best practice gap — fix within 30 days |
| Low | 0.5× | Optimization — fix when possible |

### Grade scale
| Score | Grade | Meaning |
|-------|-------|---------|
| 90-100 | **A** | Excellent — maintain & scale |
| 75-89 | **B** | Good — a few improvements needed |
| 60-74 | **C** | Average — needs serious investment |
| 40-59 | **D** | Poor — significant performance leaks |
| <40 | **F** | Critical — likely losing money in real time |

### 6 Dimensions

```
1. Account     (10%) — billing, permissions, BM/MCC structure, account warnings
2. Campaign    (15%) — objectives, separation (cold/warm/retarget), budget allocation
3. AdSet/AdGroup (20%) — audience, budget, scheduling, exclusions, learning phase
4. Ad/Creative (25%) — diversity, freshness, hook quality, format mix
5. Tracking    (20%) — pixel/CAPI/server-side, event quality, attribution model
6. Optimization (10%) — bid strategy, ML signals, budget pacing, automation rules
```

---

## 84 Checkpoints (Universal Core)

> Region-specific benchmark numbers live in the variant files. The checkpoint logic is identical worldwide.

### Dimension 1 — ACCOUNT (12 checks, weight 10%)

| # | Check | Severity |
00-ke-hoach-mktSkill

Ke hoach Fullstack Marketing — master skill tong hop chien luoc, noi dung, trien khai, hieu suat, va timeline. Goi cac skill con de hoan thien output.

00-marketing-plan-globalSkill

Use when the user needs an overall marketing plan for a period — objectives, segments, positioning, channel mix, content direction, budget, timeline, KPIs, and a risk matrix, adapted to US, EU, SEA, or LATAM. Trigger on 'marketing plan', 'marketing strategy for next year', 'go-to-market roadmap', 'plan for Q3', 'we have no marketing plan', 'where should we spend next quarter'. Also use when a founder only says the business needs to grow and has no idea which channel to start with. Not for — one specific campaign, see `02-campaign-brief-global`; working backward from a revenue goal to spend, see `10-reverse-kpi-global`; splitting a budget across channels and months, see `61-budget-planning-global`; taking a brand new product to market, see `59-go-to-market-global`.

01-content-calendar-globalSkill

Use when the user needs a monthly or weekly content calendar — posting schedule per channel, funnel ratio, content pillars, repurposing matrix, and an owner per slot. Trigger on 'content calendar', 'posting schedule', 'what should we post this month', 'editorial calendar', 'social media plan', 'we post randomly with no plan'. Also use when the user only says the team keeps running out of things to post. Not for — the brief for one specific post, see `36-content-brief-global`; the caption text itself, see `37-social-caption-global`; deciding next period content from last period data, see `40-next-content-plan-global`; a paid campaign timeline, see `02-campaign-brief-global`.

01-lich-noi-dungSkill

Lich noi dung thang — len lich dang bai da kenh voi ti le pheu, content pillar, repurposing matrix, va scoring tieu chi.

02-brief-chien-dichSkill

Brief chien dich marketing — 9 phan day du tu Context den Risk, bao gom creative direction, RACI, budget allocation theo phase, va auto-trigger cac skill lien quan.

02-campaign-brief-globalSkill

Use when a specific campaign needs a brief the whole team can execute from — context, objective, audience, core message, creative direction, channels, deliverables, week-by-week timeline, approval gates, and risks. Trigger on 'campaign brief', 'creative brief', 'launch brief', 'brief the team on this campaign', 'we are running a promo next month', 'what is the plan for this campaign'. Also use when the user describes a promotion out loud and asks for something the team can actually run. Not for — the whole period plan, see `00-marketing-plan-global`; the list of design files needed, see `41-campaign-asset-list-global`; assigning work to one person, see `64-team-brief-global`; a new product launch sequence, see `59-go-to-market-global`.

03-danh-gia-hieu-suatSkill

Danh gia hieu suat marketing — audit performance ads va organic, chan doan root cause, de xuat toi uu voi action plan 48h va checklist hang tuan.

03-performance-eval-globalSkill

Use when marketing numbers look bad and the user needs to know WHY — layered root-cause diagnosis across tracking, delivery, creative, landing page, offer, and audience quality, 5-Whys, regional benchmarks for US, EU, SEA, and LATAM, and a 48-hour action plan. Covers dropshipping ROAS and BE-ROAS. Trigger on 'why is CPA so high', 'my ads are not converting', 'ROAS dropped', 'we are burning budget', 'performance is bad this month', 'diagnose the funnel'. Also use when the user pastes a screenshot of numbers with no question attached. Not for — auditing account configuration and scoring health, see `21-ads-audit-global`; writing a report someone else reads, see `07-marketing-report-global`; turning a raw export into insight, see `13-data-analysis-global`.