meta-ads-analyzer
Meta Ads Analyzer diagnoses campaign performance by evaluating marginal efficiency rather than average cost per action, accounting for Meta's delivery mechanics including Learning Phase, Breakdown Effect, and Auction Overlap. Use this skill when analyzing Meta campaign data to avoid false signals from static CPA comparisons, determine whether performance swings are normal variance or actionable problems, and generate testable recommendations grounded in how Meta's optimization system actually allocates budget across segments.
git clone --depth 1 https://github.com/gooseworks-ai/goose-skills /tmp/meta-ads-analyzer && cp -r /tmp/meta-ads-analyzer/skills/ads/composites/meta-ads-analyzer ~/.claude/skills/meta-ads-analyzerSKILL.md
# Meta Ads Analyzer
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.
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.
**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.
## When to Use
- "Analyze my Meta Ads campaign performance"
- "Why is the system spending more on the higher-CPA placement?"
- "Diagnose what's wrong with this ad set"
- "Should I pause this audience / placement / ad?"
- "My CPA jumped — is this normal or a real problem?"
- "Audit this campaign before I scale budget"
- "I exported my Meta data — what does it actually mean?"
## Phase 0: Intake
1. **Campaign data** — One of:
- CSV export from Meta Ads Manager (Campaign / Ad Set / Ad level + breakdowns)
- Pasted performance table
- Screenshots (we'll extract the metrics)
- Live data via your existing Meta Marketing API connection
2. **Campaign setup**:
- Objective (Awareness / Traffic / Engagement / Lead Gen / Conversions / Sales / App Installs)
- Budget type (Advantage+ Campaign Budget = CBO, or Ad Set Budget = ABO)
- Placements (Automatic vs. manual)
- Number of ad sets and ads
3. **Time period** — Date range covered, with any known events (creative refresh, budget change, audience edit, account issue)
4. **Target metrics** — CPA target, ROAS target, or "no target — benchmark me"
5. **Funnel context** (if relevant) — On-platform conversion vs. website event vs. downstream qualification rate
6. **What's making you ask?** — Specific concern ("CPA up 40%"), routine review, or pre-scale audit
## Phase 1: Identify the Correct Evaluation Level
This is the most important step. **Evaluating at the wrong level is the #1 source of wrong recommendations.**
| Campaign Setup | Correct Evaluation Level | Why |
|---|---|---|
| Advantage+ Campaign Budget (CBO) | **Campaign level** | System pools budget across ad sets — only campaign totals reflect reality |
| Automatic placements (no CBO) | **Ad Set level** | System pools budget across placements within the ad set |
| Multiple ads in 1 ad set | **Ad Set level** | System pools delivery across ads |
| Manual placements + ABO | Placement / Ad Set level | Each is independent |
**Output for this phase:** State the evaluation level explicitly and explain why before any metric is interpreted.
> 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..."
## Phase 2: Check Learning Phase Status
Before judging anything, check delivery state per ad set.
**Learning state checklist:**
- Status is `Learning` (delivery less stable, CPA typically higher, results not predictive)
- Exits after ~50 optimization events within 7 days of last significant edit
- Shops ads exception: 17 website purchases + 5 Meta purchases
- Status `Learning Limited` = can't get enough events → flag as a structural issue, not a performance issue
**Significant edits that reset learning:**
- Targeting changes
- Optimization event change
- Creative changes (large)
- Bid strategy / amount changes
- Budget changes >20%
**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.**
## Phase 3: Diagnose with Meta-Specific Lenses
Run the diagnosis through these five lenses. Each one explains a different class of "weird" behavior.
### 3A: Marginal Efficiency Analysis (Breakdown Effect)
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.
**How to spot it:**
- Time-series the segment's CPA. If marginal CPA is rising sharply, expect the system to shift budget out — even if average looks fine.
- A breakdown row with high average CPA + high spend usually means the system found cheap marginal conversions there earlier in the period.
**Mandatory framing in the report:** Never recommend pausing a segment based solely on higher average CPA/CPM in a breakdown report. Removing it will often *raise* total cost. Frame any cut as a hypothesis to test with a holdout, not an instruction.
### 3B: Ad Relevance Diagnostics
For each ad with sufficient impressions (~500+), check the three rankings:
| Ranking | Below Average → | Action |
|---|---|---|
| **Quality Ranking** | Creative is the problem | Test new creative formats / hooks |
| **Engagement Rate Ranking** | Hook isn't pulling | Test new opener / first 3 seconds |
| **Conversion Rate Ranking** | Post-click is leaking | Audit landing page (use `ad-to-landing-page-auditor`) |
Two below average + one average = creative refresh. All three below average = scrap and rebuild.
### 3C: Auction Overlap Check
Symptoms: ad sets in the same campaign chronically `Learning Limited`, underspending budget, or showing erratic delivery.
**Causes:** Overlapping audiences within the same ad account / Page mean only one of your ads enters each auction (Meta picks the highest-value one; the others are excluded — you don't bid against yourself, but the suppressed ad sets can't learn).
**Action:**
- Run Account Overview → Opportunity Score for explicit overlap flags
->
AI video conversations - create real-time video calls with AI personas
AI-powered web scraping - extract data using natural language prompts
Search Amazon products - find items, compare prices, read reviews
Test and document API endpoints - validate responses, check status, generate examples
>
>
Brand intelligence - logos, colors, fonts, styleguides, and company data from any domain