$npx -y skills add gooseworks-ai/goose-skills --skill meta-ads-analyzerDiagnose Meta Ads campaign performance using Meta's actual system mechanics — Breakdown Effect, Learning Phase, Auction Overlap, Pacing, and Creative Fatigue — and produce structured, testable recommendations that avoid judging segments by average CPA instead of marginal efficien
| 1 | # Meta Ads Analyzer |
| 2 | |
| 3 | Most "Meta Ads analysis" stops at "this CPA is high, pause it." That's wrong more often than it's right. Meta's delivery system optimizes for **marginal efficiency** — the cost of the *next* conversion — not average efficiency across a snapshot. A segment with a higher average CPA is often the one keeping your overall campaign cheap. Pausing it makes things worse. |
| 4 | |
| 5 | This skill diagnoses Meta campaigns the way a senior media buyer would: at the right evaluation level, accounting for learning state, separating noise from signal, and explaining *why* the system is making the decisions it's making before recommending any change. |
| 6 | |
| 7 | **Core principle:** Holistic first, then drill down. Marginal over average. Dynamic over static. Every recommendation is a testable hypothesis with expected impact, not a directive. |
| 8 | |
| 9 | ## When to Use |
| 10 | |
| 11 | - "Analyze my Meta Ads campaign performance" |
| 12 | - "Why is the system spending more on the higher-CPA placement?" |
| 13 | - "Diagnose what's wrong with this ad set" |
| 14 | - "Should I pause this audience / placement / ad?" |
| 15 | - "My CPA jumped — is this normal or a real problem?" |
| 16 | - "Audit this campaign before I scale budget" |
| 17 | - "I exported my Meta data — what does it actually mean?" |
| 18 | |
| 19 | ## Phase 0: Intake |
| 20 | |
| 21 | 1. **Campaign data** — One of: |
| 22 | - CSV export from Meta Ads Manager (Campaign / Ad Set / Ad level + breakdowns) |
| 23 | - Pasted performance table |
| 24 | - Screenshots (we'll extract the metrics) |
| 25 | - Live data via your existing Meta Marketing API connection |
| 26 | 2. **Campaign setup**: |
| 27 | - Objective (Awareness / Traffic / Engagement / Lead Gen / Conversions / Sales / App Installs) |
| 28 | - Budget type (Advantage+ Campaign Budget = CBO, or Ad Set Budget = ABO) |
| 29 | - Placements (Automatic vs. manual) |
| 30 | - Number of ad sets and ads |
| 31 | 3. **Time period** — Date range covered, with any known events (creative refresh, budget change, audience edit, account issue) |
| 32 | 4. **Target metrics** — CPA target, ROAS target, or "no target — benchmark me" |
| 33 | 5. **Funnel context** (if relevant) — On-platform conversion vs. website event vs. downstream qualification rate |
| 34 | 6. **What's making you ask?** — Specific concern ("CPA up 40%"), routine review, or pre-scale audit |
| 35 | |
| 36 | ## Phase 1: Identify the Correct Evaluation Level |
| 37 | |
| 38 | This is the most important step. **Evaluating at the wrong level is the #1 source of wrong recommendations.** |
| 39 | |
| 40 | | Campaign Setup | Correct Evaluation Level | Why | |
| 41 | |---|---|---| |
| 42 | | Advantage+ Campaign Budget (CBO) | **Campaign level** | System pools budget across ad sets — only campaign totals reflect reality | |
| 43 | | Automatic placements (no CBO) | **Ad Set level** | System pools budget across placements within the ad set | |
| 44 | | Multiple ads in 1 ad set | **Ad Set level** | System pools delivery across ads | |
| 45 | | Manual placements + ABO | Placement / Ad Set level | Each is independent | |
| 46 | |
| 47 | **Output for this phase:** State the evaluation level explicitly and explain why before any metric is interpreted. |
| 48 | |
| 49 | > If asked "is this Meta placement underperforming?" on a CBO campaign, the answer is "wrong question — at CBO the placement-level CPA is misleading. Here's the campaign total..." |
| 50 | |
| 51 | ## Phase 2: Check Learning Phase Status |
| 52 | |
| 53 | Before judging anything, check delivery state per ad set. |
| 54 | |
| 55 | **Learning state checklist:** |
| 56 | - Status is `Learning` (delivery less stable, CPA typically higher, results not predictive) |
| 57 | - Exits after ~50 optimization events within 7 days of last significant edit |
| 58 | - Shops ads exception: 17 website purchases + 5 Meta purchases |
| 59 | - Status `Learning Limited` = can't get enough events → flag as a structural issue, not a performance issue |
| 60 | |
| 61 | **Significant edits that reset learning:** |
| 62 | - Targeting changes |
| 63 | - Optimization event change |
| 64 | - Creative changes (large) |
| 65 | - Bid strategy / amount changes |
| 66 | - Budget changes >20% |
| 67 | |
| 68 | **Output for this phase:** Per ad set, mark `Active` / `Learning` / `Learning Limited`. Caveat all conclusions for anything in learning. **Do not recommend pausing a Learning ad set based on CPA alone.** |
| 69 | |
| 70 | ## Phase 3: Diagnose with Meta-Specific Lenses |
| 71 | |
| 72 | Run the diagnosis through these five lenses. Each one explains a different class of "weird" behavior. |
| 73 | |
| 74 | ### 3A: Marginal Efficiency Analysis (Breakdown Effect) |
| 75 | |
| 76 | The Breakdown Effect: the system shifts budget toward segments where the *next* conversion is cheapest, not where the *average* conversion is cheapest. A segment can have a high average CPA in a breakdown report and still be the right place for budget. |
| 77 | |
| 78 | **How to spot it:** |
| 79 | - Time-series the segment's CPA. If marginal CPA is rising sharply, expect the system to shift budget out — even if average looks fine. |
| 80 | - A breakdown row with high average CPA + high spend usually means the system found ch |