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

Use when an ad account needs a systematic CONFIGURATION audit — 84 checkpoints across account, campaign, ad set, ad, tracking, and optimization, scored into a Health Score out of 100, quick wins ranked by impact, regional benchmarks, and a dropshipping checklist, covering Meta, Google, and TikTok.

by minhnv0807·MIT license·★ 592 Stars on the repo·GitHub ↗

Use now

Files of Ads Audit (Global) — Health Score & Action Plan

minhnv0807/master1 file shown
SKILL.md
Show the full text480 lines

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:

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
A01 Business Manager / MCC structured (single source of truth) High
A02 Account billing healthy (no failed charges in 30d) Critical
A03 No active account warnings or restrictions Critical
A04 Domain verified (Meta) or website verified (Google/TikTok) High
A05 iOS 14.5+ Aggregated Event Measurement configured (Meta) High
A06 Brand safety / suitability set (Meta + Google) Medium
A07 User access roles minimized (no over-permissioned users) Medium
A08 Spending limit set per account (prevents runaway charges) Medium
A09 2FA enabled on all admin accounts High
A10 Conversion API token rotated within 12 months Low
A11 Account currency matches market currency Low
A12 Tax/VAT configuration correct for region Low
Dimension 2 — CAMPAIGN (14 checks, weight 15%)
# Check Severity
C01 Cold / warm / retarget campaigns separated High
C02 Campaign objectives match real business outcome Critical
C03 No more than 3-5 active "core" campaigns Medium
C04 Campaign Budget Optimization (CBO) used appropriately Medium
C05 No overlapping audiences across active campaigns High
C06 Brand vs non-brand campaigns separated (Google) High
C07 Search vs Performance Max separated (Google) High
C08 iOS / Android segregation when economics differ Low
C09 Budget allocated proportionally to ROAS-by-funnel-stage High
C10 Naming convention consistent (Brand_Funnel_Geo_Date) Low
C11 Campaign-level frequency caps set (where supported) Medium
C12 Holiday/promo campaigns tagged & sunset-dated Low
C13 Negative geo / language exclusions set Medium
C14 Brand keywords campaign exists with good QS (Google) High
Dimension 3 — AD SET / AD GROUP (16 checks, weight 20%)
# Check Severity
S01 Daily budget ≥ 5× target CPA per ad set Critical
S02 Not editing ad sets currently in Learning Phase High
S03 Audience size 1M-50M for cold prospecting (Meta) High
S04 Audience overlap between ad sets <25% High
S05 Lookalikes built from quality seeds (purchasers, not clickers) High
S06 Negative keywords list maintained (Google) High
S07 Match types appropriate (Broad+Smart Bidding, or Phrase/Exact) High
S08 Search term report reviewed within 14 days High
S09 Exclusion of past purchasers from acquisition campaigns Critical
S10 Placement: Advantage+/automatic where appropriate Medium
S11 Ad scheduling matches actual peak-conversion hours Medium
S12 Bid strategy matches account stage (Lowest Cost early, Cost Cap mature) High
S13 Demographic restrictions justified by data (not prejudice) Medium
S14 TikTok-specific: SmartTargeting tested vs manual Medium
S15 Quality score average ≥6/10 (Google) High
S16 Ad set count per campaign ≤5 (Meta) for ML efficiency Medium
Dimension 4 — AD / CREATIVE (18 checks, weight 25%)
# Check Severity
AD01 At least 10 truly different creatives per active ad set High
AD02 No single creative running >21 days continuously High
AD03 Frequency <3.5 on cold audience High
AD04 All 3 formats present (video / image / carousel) Medium
AD05 Videos have sound/music (TikTok-critical) Critical
AD06 First 3 seconds hook tested (Hook Rate >25%) High
AD07 Captions / on-screen text present (sound-off viewing) High
AD08 UGC / review-style creative present (≥1) Medium
AD09 CTA explicit in creative (voice or text) High
AD10 Vertical 9:16 used for Stories/Reels/TikTok High
AD11 Resolution ≥720p (1080p preferred) Medium
AD12 RSA: ≥8/15 headlines, ≥4/4 descriptions filled (Google) High
AD13 Asset strength "Good" or higher on RSA (Google) Medium
AD14 Sitelink / callout / call extensions present (Google) Medium
AD15 Landing page load time <3s on 4G High
AD16 Landing page mobile-first design verified Critical
AD17 Creative-to-LP message match (no bait-and-switch) High
AD18 Compliance: no policy violations (alcohol, health, financial) Critical
Dimension 5 — TRACKING (16 checks, weight 20%)
# Check Severity
T01 Pixel/Tag installed on all relevant pages Critical
T02 Purchase / Lead / KeyEvent firing accurately Critical
T03 Conversion API (CAPI / Enhanced Conversions) deployed High
T04 Event Match Quality ≥6.0 (Meta) High
T05 No duplicate events (deduplication ID set) Critical
T06 UTM parameters present on all paid links Medium
T07 GA4 linked to Google Ads + GA4 linked to BigQuery High
T08 Conversion windows aligned across platforms High
T09 Server-side tracking layer (GTM SS, Stape) considered Medium
T10 Triple Whale / Hyros / Northbeam reconciled vs platform (DTC) High
T11 TikTok Pixel + Events API both firing High
T12 View-through and click-through windows documented Medium
T13 Cross-domain tracking working (multi-domain checkout) High
T14 First-party data collection (email/phone) for CAPI matching High
T15 Cookie consent compliant (GDPR / CCPA / LGPD) Critical
T16 Bot/spam traffic filtered from conversion data Medium
Dimension 6 — OPTIMIZATION (8 checks, weight 10%)
# Check Severity
O01 Automated rules in place (pause low ROAS, scale winners) Medium
O02 Budget pacing reviewed weekly Medium
O03 Creative refresh cadence set (≥30% new every 14 days) High
O04 A/B testing framework defined (one variable at a time) Medium
O05 Reporting cadence: daily skim, weekly deep-dive Low
O06 Diagnostics tab reviewed (Quality, Engagement, Conversion) Medium
O07 Performance reviewed by funnel stage (TOFU/MOFU/BOFU) High
O08 Stop-loss thresholds defined per campaign High

Quick Wins Decision Tree

After scoring, surface the top 5-10 actions a user can do today (<15 minutes each).

START → Is any Critical check failing?
        ├─ YES → Fix in next 24 hours (account-level issues first)
        │        ├─ A02/A03 (billing/warning) → fix immediately
        │        ├─ T01/T02/T05 (tracking broken) → fix before any more spend
        │        ├─ S01 (budget < 5× CPA) → increase budget or pause
        │        └─ AD18 (policy violation) → revise creative
        │
        └─ NO → Score Critical/High Quick Wins by impact:
                 ├─ Pause "wasted spend" keywords / ad sets (>$200 spend, 0 conv)
                 ├─ Add exclusion of past purchasers from cold campaigns
                 ├─ Refresh top-frequency creative (>3.5 freq)
                 ├─ Enable CAPI / Enhanced Conversions
                 ├─ Add UTM parameters to untagged ads
                 └─ Connect GA4 ↔ Google Ads if not linked

Each Quick Win must include: action, expected impact, time required, owner.


Dropshipping Audit Checklist (Special Section)

Dropshipping has unique audit needs: high creative volume, thin margins, attribution opacity, and compressed test cycles. This section augments — not replaces — the 84 universal checkpoints.

1. Creative Testing Velocity (the #1 dropshipping killer)
Check Pass criteria Severity
New creatives launched per week ≥10 (winning store benchmark) Critical
Creative-to-spend ratio 1 winning ad funds 4-5 tests High
Hook variations tested ≥3 hooks per product High
UGC creator pipeline active ≥2 UGC creators delivering weekly High
Cycle time from brief to launch <72 hours High

Failure mode: A store running 2-3 creatives "until they die" instead of testing 10+/week is starving Meta's algorithm and ad fatigue compounds. Fix: build a creative ops calendar (see 06-ugc-egc-brief-global).

2. CBO vs ABO Setup
Check Pass criteria Severity
Testing layer uses ABO (Ad Set Budget) ≥3 ad sets, $20-50/day each High
Scaling layer uses CBO (Campaign Budget) Top winners only, single CBO High
Budget reallocates within 3-7 days of clear winner Document rule + execute Medium
No mixed CBO with non-comparable ad sets Audit campaign structure High
3. Pixel + CAPI Dual Tracking (post-iOS 14.5 critical)
Check Pass criteria Severity
Pixel + CAPI both firing on Purchase event Verified in Test Events Critical
EMQ ≥7.0 (dropshipping should beat 6.0 floor) Events Manager High
Email + phone + first-name + last-name passed via CAPI Backend integration Critical
Server-side tracking via Stape/GTM SS for AOV>$50 stores Verified deployment High
iOS attribution gap reconciled with Triple Whale or Hyros Compare last 30 days High
4. Landing Page CRO Signals
Check Pass criteria Severity
Mobile load time <2.5s (LCP) PageSpeed Insights Critical
Add-to-Cart rate ≥6% (sessions → ATC) GA4 / Shopify High
Checkout conversion ≥40% (ATC → Purchase) GA4 / Shopify High
Hero matches winning ad (creative-LP message match) Manual review Critical
Trust badges, reviews, return policy visible above fold Manual review High
Exit-intent + abandoned cart sequence active Klaviyo / equivalent High
5. Attribution Accuracy
Check Pass criteria Severity
UTMs use consistent schema (utm_source/medium/campaign/content) URL builder doc High
Triple Whale / Hyros / Northbeam connected At least one MMP active High
Platform-reported revenue vs Shopify revenue gap <15% Reconciliation report High
Post-purchase survey ("How did you hear about us?") active Order form / KnoCommerce Medium
Customer LTV tracked, not just first-order revenue Cohort report quarterly High
6. Profit Margin Tracking
Check Pass criteria Severity
Net margin per order calculated (after COGS, ad spend, fees) Spreadsheet or Lifetimely Critical
MER (Marketing Efficiency Ratio = total revenue / total ad spend) tracked daily Dashboard High
Break-even ROAS documented and visible Operations dashboard Critical
Refund/chargeback rate <5% Shopify reports High
Profit-per-customer rising or flat (not declining) 90-day cohort High

Dropshipping cross-reference: When auditing dropshipping accounts, also call 29-dropshipping-mastery-global for product-fit and supply-chain audit beyond ad-account scope.


Output Structure

# Ads Audit: [Brand / Product]
Audit date: [YYYY-MM-DD]
Region: [US / EU / SEA / LATAM]
Auditor: [Agency / In-house]
Spend audited: [$ — last 30d]

## Executive Summary

| Platform | Score | Grade | Top issue |
|----------|-------|-------|-----------|
| Meta Ads | [n]/100 | [A-F] | [1-line] |
| Google Ads | [n]/100 | | |
| TikTok Ads | [n]/100 | | |
| **Aggregate** | **[n]/100** | **[Grade]** | |

## Critical Issues (fix in 24 hours)
[List failed Critical checks with remediation steps]

## Quick Wins (today, <15 min each)
[Top 5-10 actions, sorted by impact]

## By Dimension

### 1. Account — [score]/10
[Pass/fail per check, with screenshots if MCP-pulled]

### 2. Campaign — [score]/10
[...]

[Continue for all 6 dimensions]

## By Platform

### Meta Ads — [score]/100
[Breakdown by dimension]

### Google Ads — [score]/100
[...]

### TikTok Ads — [score]/100
[...]

## Dropshipping Audit (if applicable)
[6 sub-sections from Dropshipping Checklist]

## 7-Day Action Plan

| Day | Action | Platform | Owner | Expected outcome |
|-----|--------|----------|-------|------------------|
| Day 1 | [Quick wins + Critical fixes] | | | |
| Day 2-3 | [High priority] | | | |
| Day 4-5 | [Tracking + creative] | | | |
| Day 6-7 | [Setup + test deploy] | | | |

## 30-Day Forecast
[Realistic improvement estimate if all Critical/High fixed]

## Appendix
- Raw data exports
- Screenshots
- MCP query logs (if used)

Cross-references

When you need Call skill
Diagnose current KPIs and funnel 03-performance-eval-global
Deep data analysis (descriptive→prescriptive) 13-data-analysis-global
Refresh creative after audit finds fatigue 05-ad-copy-global + 06-ugc-egc-brief-global
Reverse-calc budget after fixing tracking 10-reverse-kpi-calc-global
Dropshipping product/supply audit 29-dropshipping-mastery-global
Set up A/B test for fixes 19-ab-test-setup-global

Quality Checklist (before delivery)

  • Region variant loaded and benchmarks contextualized
  • All 84 checks scored (no skipped)
  • Health Score calculated per platform AND aggregate
  • Critical issues separated and fix-in-24h flagged
  • Quick Wins ≤15 min each, sorted by impact
  • Dropshipping section included if business model = dropship
  • 7-day Action Plan with owner + expected outcome per row
  • 30-day forecast realistic (not over-promise)
  • No "improve creative" without specifying WHICH creative + WHY
  • No scaling recommendation when Critical tracking fails
  • No edits suggested for ad sets in Learning Phase
  • Cross-references called when needed (e.g. 06 for creative)

Region Variant References

Load the appropriate file before scoring:

  • variants/01-us.md — United States, Canada
  • variants/02-eu.md — European Union, UK
  • variants/03-sea.md — Vietnam, Thailand, Indonesia, Philippines, Singapore, Malaysia
  • variants/04-latam.md — Brazil, Mexico, Argentina, Colombia, Chile

Each variant contains: healthy CPM/CPC ranges, ROAS targets per business model, common red flags, region-specific compliance gates, and tracking platform peculiarities.

1---
2name: 21-ads-audit-global
3description: "Use when an ad account needs a systematic CONFIGURATION audit — 84 checkpoints across account, campaign, ad set, ad, tracking, and optimization, scored into a Health Score out of 100, quick wins ranked by impact, regional benchmarks, and a dropshipping checklist, covering Meta, Google, and TikTok. Trigger on 'ads audit', 'audit my ad account', 'is my Meta setup correct', 'health score for the account', 'review my Google Ads', 'we inherited this account and it is a mess'. Not for — diagnosing why the numbers moved this week, see `03-performance-eval-global`; planning fresh budget, see `54-media-plan-global`; rebuilding the campaign hierarchy, see `52-account-structure-global`."
4metadata:
5 version: 1.0.1
6 category: performance
7license: MIT
8triggers:
9 - "ads audit"
10 - "ad account audit"
11 - "Meta audit"
12 - "Google Ads audit"
13 - "TikTok audit"
14 - "dropshipping ads audit"
15related:
16 - product-marketing-context-global
17 - 03-performance-eval-global
18 - 13-data-analysis-global
19 - 29-dropshipping-mastery-global
20 - references/global-platforms-comparison
21---
22 
23# Ads Audit (Global) — Health Score & Action Plan
24 
25> **Difference from `03-performance-eval-global`:**
26> - `03` evaluates current performance (CPM, ROAS, funnel) — diagnoses symptoms.
27> - `21` audits account configuration (setup, structure, tracking, creative) — scores 0-100 and finds systemic issues.
28>
29> Insight before numbers. Lead with judgment; illustrate with metrics.
30 
31---
32 
33## For Newbies — Start Here
34 
35**What is an ads audit?**
36A 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**.
37 
38**When do you need one?**
39- ROAS dropped suddenly (>20% week-over-week).
40- New account inherited from another agency or in-house team.
41- Spending >$5K/month with no clear performance review process.
42- Pixel/CAPI showed errors or duplicate events.
43- About to scale spend by 2-3x and want to verify foundation.
44- Dropshipping store with attribution confusion (Shopify vs Meta vs Triple Whale numbers don't match).
45 
46**What you'll need before starting:**
471. Read access to ad accounts (or screen-share / data export).
482. Last 30 days of spend, impressions, clicks, conversions, ROAS.
493. Pixel/CAPI status (Events Manager, GA4, TikTok Events).
504. Region context (US, EU, SEA, LATAM) — benchmarks differ widely.
515. Business model (DTC e-com, B2B SaaS, lead gen, dropshipping) — optimization rules differ.
52 
53**How long does it take?**
54- Quick audit: 2-3 hours (Health Score + Quick Wins).
55- Full audit: 6-10 hours (Health Score + 84 checkpoints + 7-day plan + creative review).
56 
57---
58 
59## Step 0 — Read Context + Select Region Variant
60 
61Before audit, pull two contexts:
62 
631. **Product context** — call `product-marketing-context-global` if not already in conversation. This gives the auditor: pricing, target CAC, business model, current channels.
642. **Region variant** — load the appropriate file:
65 
66| Region | File | Currency | Key benchmarks |
67|--------|------|----------|----------------|
68| **US / North America** | `variants/01-us.md` | USD | Meta CPM $7-12, Google CPC $1-3, ROAS 3-5x |
69| **EU / UK** | `variants/02-eu.md` | EUR / GBP | Meta CPM €5-10, Google CPC €1-3, ROAS 3-4x |
70| **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 |
71| **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 |
72 
73> **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.
74 
75---
76 
77## Information Gathering
78 
79Ask up to 4 questions:
80 
811. **Which platforms?** Meta / Google / TikTok / multi-platform — and what % of total ad spend each represents.
822. **Industry + business model?** (DTC e-com, dropshipping, B2B SaaS, lead-gen, local service, course/info-product.)
833. **Monthly ad spend + region?** (e.g. "$15K/month, 70% US, 30% Canada".)
844. **Can you share data?** Either paste tables, share a Looker Studio link, or grant view access to the ad account.
85 
86### Auto-pull via MCP (if connected)
87 
88If user has connected an MCP server, pull data directly:
89 
90| Platform | MCP recommended | Key tools used |
91|----------|-----------------|----------------|
92| 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` |
93| Google Ads | Google Official MCP | GAQL: campaign performance, search terms, quality score |
94| TikTok Ads | AdsMCP / tiktok-ads-mcp-server | Performance reports, creative library |
95| Cross-platform | Adspirer ads-mcp | Unified analytics across 175+ tools |
96 
97**Sample Meta Insights fields when MCP unavailable:**
98```
99fields=spend,impressions,clicks,ctr,cpc,cpm,actions,cost_per_action_type,
100 purchase_roas,frequency,reach
101date_preset=last_30d
102level=adset
103breakdowns=age,gender
104```
105 
106**Sample GAQL query for Google audit:**
107```sql
108SELECT campaign.name, campaign.status, campaign.bidding_strategy_type,
109 metrics.impressions, metrics.clicks, metrics.cost_micros,
110 metrics.conversions, metrics.cost_per_conversion,
111 metrics.search_impression_share
112FROM campaign
113WHERE segments.date DURING LAST_30_DAYS
114 AND campaign.status != 'REMOVED'
115ORDER BY metrics.cost_micros DESC
116```
117 
118---
119 
120## Health Score Framework (0-100)
121 
122### Formula
123```
124Health Score = Σ(Check_pass × Severity_weight × Dimension_weight)
125 / Σ(Check_total × Severity_weight × Dimension_weight) × 100
126```
127 
128### Severity weights
129| Severity | Multiplier | Meaning |
130|----------|-----------|---------|
131| Critical | 5.0× | Active money/data loss — fix today |
132| High | 3.0× | Major impact — fix within 7 days |
133| Medium | 1.5× | Best practice gap — fix within 30 days |
134| Low | 0.5× | Optimization — fix when possible |
135 
136### Grade scale
137| Score | Grade | Meaning |
138|-------|-------|---------|
139| 90-100 | **A** | Excellent — maintain & scale |
140| 75-89 | **B** | Good — a few improvements needed |
141| 60-74 | **C** | Average — needs serious investment |
142| 40-59 | **D** | Poor — significant performance leaks |
143| <40 | **F** | Critical — likely losing money in real time |
144 
145### 6 Dimensions
146 
147```
1481. Account (10%) — billing, permissions, BM/MCC structure, account warnings
1492. Campaign (15%) — objectives, separation (cold/warm/retarget), budget allocation
1503. AdSet/AdGroup (20%) — audience, budget, scheduling, exclusions, learning phase
1514. Ad/Creative (25%) — diversity, freshness, hook quality, format mix
1525. Tracking (20%) — pixel/CAPI/server-side, event quality, attribution model
1536. Optimization (10%) — bid strategy, ML signals, budget pacing, automation rules
154```
155 
156---
157 
158## 84 Checkpoints (Universal Core)
159 
160> Region-specific benchmark numbers live in the variant files. The checkpoint logic is identical worldwide.
161 
162### Dimension 1 — ACCOUNT (12 checks, weight 10%)
163 
164| # | Check | Severity |
165|---|-------|----------|
166| A01 | Business Manager / MCC structured (single source of truth) | High |
167| A02 | Account billing healthy (no failed charges in 30d) | Critical |
168| A03 | No active account warnings or restrictions | Critical |
169| A04 | Domain verified (Meta) or website verified (Google/TikTok) | High |
170| A05 | iOS 14.5+ Aggregated Event Measurement configured (Meta) | High |
171| A06 | Brand safety / suitability set (Meta + Google) | Medium |
172| A07 | User access roles minimized (no over-permissioned users) | Medium |
173| A08 | Spending limit set per account (prevents runaway charges) | Medium |
174| A09 | 2FA enabled on all admin accounts | High |
175| A10 | Conversion API token rotated within 12 months | Low |
176| A11 | Account currency matches market currency | Low |
177| A12 | Tax/VAT configuration correct for region | Low |
178 
179### Dimension 2 — CAMPAIGN (14 checks, weight 15%)
180 
181| # | Check | Severity |
182|---|-------|----------|
183| C01 | Cold / warm / retarget campaigns separated | High |
184| C02 | Campaign objectives match real business outcome | Critical |
185| C03 | No more than 3-5 active "core" campaigns | Medium |
186| C04 | Campaign Budget Optimization (CBO) used appropriately | Medium |
187| C05 | No overlapping audiences across active campaigns | High |
188| C06 | Brand vs non-brand campaigns separated (Google) | High |
189| C07 | Search vs Performance Max separated (Google) | High |
190| C08 | iOS / Android segregation when economics differ | Low |
191| C09 | Budget allocated proportionally to ROAS-by-funnel-stage | High |
192| C10 | Naming convention consistent (Brand_Funnel_Geo_Date) | Low |
193| C11 | Campaign-level frequency caps set (where supported) | Medium |
194| C12 | Holiday/promo campaigns tagged & sunset-dated | Low |
195| C13 | Negative geo / language exclusions set | Medium |
196| C14 | Brand keywords campaign exists with good QS (Google) | High |
197 
198### Dimension 3 — AD SET / AD GROUP (16 checks, weight 20%)
199 
200| # | Check | Severity |
201|---|-------|----------|
202| S01 | Daily budget ≥ 5× target CPA per ad set | Critical |
203| S02 | Not editing ad sets currently in Learning Phase | High |
204| S03 | Audience size 1M-50M for cold prospecting (Meta) | High |
205| S04 | Audience overlap between ad sets <25% | High |
206| S05 | Lookalikes built from quality seeds (purchasers, not clickers) | High |
207| S06 | Negative keywords list maintained (Google) | High |
208| S07 | Match types appropriate (Broad+Smart Bidding, or Phrase/Exact) | High |
209| S08 | Search term report reviewed within 14 days | High |
210| S09 | Exclusion of past purchasers from acquisition campaigns | Critical |
211| S10 | Placement: Advantage+/automatic where appropriate | Medium |
212| S11 | Ad scheduling matches actual peak-conversion hours | Medium |
213| S12 | Bid strategy matches account stage (Lowest Cost early, Cost Cap mature) | High |
214| S13 | Demographic restrictions justified by data (not prejudice) | Medium |
215| S14 | TikTok-specific: SmartTargeting tested vs manual | Medium |
216| S15 | Quality score average ≥6/10 (Google) | High |
217| S16 | Ad set count per campaign ≤5 (Meta) for ML efficiency | Medium |
218 
219### Dimension 4 — AD / CREATIVE (18 checks, weight 25%)
220 
221| # | Check | Severity |
222|---|-------|----------|
223| AD01 | At least 10 truly different creatives per active ad set | High |
224| AD02 | No single creative running >21 days continuously | High |
225| AD03 | Frequency <3.5 on cold audience | High |
226| AD04 | All 3 formats present (video / image / carousel) | Medium |
227| AD05 | Videos have sound/music (TikTok-critical) | Critical |
228| AD06 | First 3 seconds hook tested (Hook Rate >25%) | High |
229| AD07 | Captions / on-screen text present (sound-off viewing) | High |
230| AD08 | UGC / review-style creative present (≥1) | Medium |
231| AD09 | CTA explicit in creative (voice or text) | High |
232| AD10 | Vertical 9:16 used for Stories/Reels/TikTok | High |
233| AD11 | Resolution ≥720p (1080p preferred) | Medium |
234| AD12 | RSA: ≥8/15 headlines, ≥4/4 descriptions filled (Google) | High |
235| AD13 | Asset strength "Good" or higher on RSA (Google) | Medium |
236| AD14 | Sitelink / callout / call extensions present (Google) | Medium |
237| AD15 | Landing page load time <3s on 4G | High |
238| AD16 | Landing page mobile-first design verified | Critical |
239| AD17 | Creative-to-LP message match (no bait-and-switch) | High |
240| AD18 | Compliance: no policy violations (alcohol, health, financial) | Critical |
241 
242### Dimension 5 — TRACKING (16 checks, weight 20%)
243 
244| # | Check | Severity |
245|---|-------|----------|
246| T01 | Pixel/Tag installed on all relevant pages | Critical |
247| T02 | Purchase / Lead / KeyEvent firing accurately | Critical |
248| T03 | Conversion API (CAPI / Enhanced Conversions) deployed | High |
249| T04 | Event Match Quality ≥6.0 (Meta) | High |
250| T05 | No duplicate events (deduplication ID set) | Critical |
251| T06 | UTM parameters present on all paid links | Medium |
252| T07 | GA4 linked to Google Ads + GA4 linked to BigQuery | High |
253| T08 | Conversion windows aligned across platforms | High |
254| T09 | Server-side tracking layer (GTM SS, Stape) considered | Medium |
255| T10 | Triple Whale / Hyros / Northbeam reconciled vs platform (DTC) | High |
256| T11 | TikTok Pixel + Events API both firing | High |
257| T12 | View-through and click-through windows documented | Medium |
258| T13 | Cross-domain tracking working (multi-domain checkout) | High |
259| T14 | First-party data collection (email/phone) for CAPI matching | High |
260| T15 | Cookie consent compliant (GDPR / CCPA / LGPD) | Critical |
261| T16 | Bot/spam traffic filtered from conversion data | Medium |
262 
263### Dimension 6 — OPTIMIZATION (8 checks, weight 10%)
264 
265| # | Check | Severity |
266|---|-------|----------|
267| O01 | Automated rules in place (pause low ROAS, scale winners) | Medium |
268| O02 | Budget pacing reviewed weekly | Medium |
269| O03 | Creative refresh cadence set (≥30% new every 14 days) | High |
270| O04 | A/B testing framework defined (one variable at a time) | Medium |
271| O05 | Reporting cadence: daily skim, weekly deep-dive | Low |
272| O06 | Diagnostics tab reviewed (Quality, Engagement, Conversion) | Medium |
273| O07 | Performance reviewed by funnel stage (TOFU/MOFU/BOFU) | High |
274| O08 | Stop-loss thresholds defined per campaign | High |
275 
276---
277 
278## Quick Wins Decision Tree
279 
280After scoring, surface the top 5-10 actions a user can do **today** (<15 minutes each).
281 
282```
283START → Is any Critical check failing?
284 ├─ YES → Fix in next 24 hours (account-level issues first)
285 │ ├─ A02/A03 (billing/warning) → fix immediately
286 │ ├─ T01/T02/T05 (tracking broken) → fix before any more spend
287 │ ├─ S01 (budget < 5× CPA) → increase budget or pause
288 │ └─ AD18 (policy violation) → revise creative
289 │
290 └─ NO → Score Critical/High Quick Wins by impact:
291 ├─ Pause "wasted spend" keywords / ad sets (>$200 spend, 0 conv)
292 ├─ Add exclusion of past purchasers from cold campaigns
293 ├─ Refresh top-frequency creative (>3.5 freq)
294 ├─ Enable CAPI / Enhanced Conversions
295 ├─ Add UTM parameters to untagged ads
296 └─ Connect GA4 ↔ Google Ads if not linked
297```
298 
299Each Quick Win must include: **action, expected impact, time required, owner**.
300 
301---
302 
303## Dropshipping Audit Checklist (Special Section)
304 
305> Dropshipping has unique audit needs: high creative volume, thin margins, attribution opacity, and compressed test cycles. This section augments — not replaces — the 84 universal checkpoints.
306 
307### 1. Creative Testing Velocity (the #1 dropshipping killer)
308 
309| Check | Pass criteria | Severity |
310|-------|---------------|----------|
311| New creatives launched per week | ≥10 (winning store benchmark) | Critical |
312| Creative-to-spend ratio | 1 winning ad funds 4-5 tests | High |
313| Hook variations tested | ≥3 hooks per product | High |
314| UGC creator pipeline active | ≥2 UGC creators delivering weekly | High |
315| Cycle time from brief to launch | <72 hours | High |
316 
317> **Failure mode:** A store running 2-3 creatives "until they die" instead of testing 10+/week is starving Meta's algorithm and ad fatigue compounds. Fix: build a creative ops calendar (see `06-ugc-egc-brief-global`).
318 
319### 2. CBO vs ABO Setup
320 
321| Check | Pass criteria | Severity |
322|-------|---------------|----------|
323| Testing layer uses ABO (Ad Set Budget) | ≥3 ad sets, $20-50/day each | High |
324| Scaling layer uses CBO (Campaign Budget) | Top winners only, single CBO | High |
325| Budget reallocates within 3-7 days of clear winner | Document rule + execute | Medium |
326| No mixed CBO with non-comparable ad sets | Audit campaign structure | High |
327 
328### 3. Pixel + CAPI Dual Tracking (post-iOS 14.5 critical)
329 
330| Check | Pass criteria | Severity |
331|-------|---------------|----------|
332| Pixel + CAPI both firing on Purchase event | Verified in Test Events | Critical |
333| EMQ ≥7.0 (dropshipping should beat 6.0 floor) | Events Manager | High |
334| Email + phone + first-name + last-name passed via CAPI | Backend integration | Critical |
335| Server-side tracking via Stape/GTM SS for AOV>$50 stores | Verified deployment | High |
336| iOS attribution gap reconciled with Triple Whale or Hyros | Compare last 30 days | High |
337 
338### 4. Landing Page CRO Signals
339 
340| Check | Pass criteria | Severity |
341|-------|---------------|----------|
342| Mobile load time <2.5s (LCP) | PageSpeed Insights | Critical |
343| Add-to-Cart rate ≥6% (sessions → ATC) | GA4 / Shopify | High |
344| Checkout conversion ≥40% (ATC → Purchase) | GA4 / Shopify | High |
345| Hero matches winning ad (creative-LP message match) | Manual review | Critical |
346| Trust badges, reviews, return policy visible above fold | Manual review | High |
347| Exit-intent + abandoned cart sequence active | Klaviyo / equivalent | High |
348 
349### 5. Attribution Accuracy
350 
351| Check | Pass criteria | Severity |
352|-------|---------------|----------|
353| UTMs use consistent schema (utm_source/medium/campaign/content) | URL builder doc | High |
354| Triple Whale / Hyros / Northbeam connected | At least one MMP active | High |
355| Platform-reported revenue vs Shopify revenue gap <15% | Reconciliation report | High |
356| Post-purchase survey ("How did you hear about us?") active | Order form / KnoCommerce | Medium |
357| Customer LTV tracked, not just first-order revenue | Cohort report quarterly | High |
358 
359### 6. Profit Margin Tracking
360 
361| Check | Pass criteria | Severity |
362|-------|---------------|----------|
363| Net margin per order calculated (after COGS, ad spend, fees) | Spreadsheet or Lifetimely | Critical |
364| MER (Marketing Efficiency Ratio = total revenue / total ad spend) tracked daily | Dashboard | High |
365| Break-even ROAS documented and visible | Operations dashboard | Critical |
366| Refund/chargeback rate <5% | Shopify reports | High |
367| Profit-per-customer rising or flat (not declining) | 90-day cohort | High |
368 
369> **Dropshipping cross-reference:** When auditing dropshipping accounts, also call `29-dropshipping-mastery-global` for product-fit and supply-chain audit beyond ad-account scope.
370 
371---
372 
373## Output Structure
374 
375```markdown
376# Ads Audit: [Brand / Product]
377Audit date: [YYYY-MM-DD]
378Region: [US / EU / SEA / LATAM]
379Auditor: [Agency / In-house]
380Spend audited: [$ — last 30d]
381 
382## Executive Summary
383 
384| Platform | Score | Grade | Top issue |
385|----------|-------|-------|-----------|
386| Meta Ads | [n]/100 | [A-F] | [1-line] |
387| Google Ads | [n]/100 | | |
388| TikTok Ads | [n]/100 | | |
389| **Aggregate** | **[n]/100** | **[Grade]** | |
390 
391## Critical Issues (fix in 24 hours)
392[List failed Critical checks with remediation steps]
393 
394## Quick Wins (today, <15 min each)
395[Top 5-10 actions, sorted by impact]
396 
397## By Dimension
398 
399### 1. Account — [score]/10
400[Pass/fail per check, with screenshots if MCP-pulled]
401 
402### 2. Campaign — [score]/10
403[...]
404 
405[Continue for all 6 dimensions]
406 
407## By Platform
408 
409### Meta Ads — [score]/100
410[Breakdown by dimension]
411 
412### Google Ads — [score]/100
413[...]
414 
415### TikTok Ads — [score]/100
416[...]
417 
418## Dropshipping Audit (if applicable)
419[6 sub-sections from Dropshipping Checklist]
420 
421## 7-Day Action Plan
422 
423| Day | Action | Platform | Owner | Expected outcome |
424|-----|--------|----------|-------|------------------|
425| Day 1 | [Quick wins + Critical fixes] | | | |
426| Day 2-3 | [High priority] | | | |
427| Day 4-5 | [Tracking + creative] | | | |
428| Day 6-7 | [Setup + test deploy] | | | |
429 
430## 30-Day Forecast
431[Realistic improvement estimate if all Critical/High fixed]
432 
433## Appendix
434- Raw data exports
435- Screenshots
436- MCP query logs (if used)
437```
438 
439---
440 
441## Cross-references
442 
443| When you need | Call skill |
444|---------------|-----------|
445| Diagnose current KPIs and funnel | `03-performance-eval-global` |
446| Deep data analysis (descriptive→prescriptive) | `13-data-analysis-global` |
447| Refresh creative after audit finds fatigue | `05-ad-copy-global` + `06-ugc-egc-brief-global` |
448| Reverse-calc budget after fixing tracking | `10-reverse-kpi-calc-global` |
449| Dropshipping product/supply audit | `29-dropshipping-mastery-global` |
450| Set up A/B test for fixes | `19-ab-test-setup-global` |
451 
452---
453 
454## Quality Checklist (before delivery)
455 
456- [ ] Region variant loaded and benchmarks contextualized
457- [ ] All 84 checks scored (no skipped)
458- [ ] Health Score calculated per platform AND aggregate
459- [ ] Critical issues separated and fix-in-24h flagged
460- [ ] Quick Wins ≤15 min each, sorted by impact
461- [ ] Dropshipping section included if business model = dropship
462- [ ] 7-day Action Plan with owner + expected outcome per row
463- [ ] 30-day forecast realistic (not over-promise)
464- [ ] No "improve creative" without specifying WHICH creative + WHY
465- [ ] No scaling recommendation when Critical tracking fails
466- [ ] No edits suggested for ad sets in Learning Phase
467- [ ] Cross-references called when needed (e.g. `06` for creative)
468 
469---
470 
471## Region Variant References
472 
473Load the appropriate file before scoring:
474- `variants/01-us.md` — United States, Canada
475- `variants/02-eu.md` — European Union, UK
476- `variants/03-sea.md` — Vietnam, Thailand, Indonesia, Philippines, Singapore, Malaysia
477- `variants/04-latam.md` — Brazil, Mexico, Argentina, Colombia, Chile
478 
479Each variant contains: healthy CPM/CPC ranges, ROAS targets per business model, common red flags, region-specific compliance gates, and tracking platform peculiarities.
480 

Discussion

Alternatives