Ad Campaign Analyzer
Take raw campaign performance data and turn it into clear decisions. This skill doesn't just summarize metrics — it diagnoses problems, identifies winners, checks statistical significance, and tells you exactly what to cut, scale, and test next.
Core principle: Most startup founders check their ad dashboard, see a ROAS number, and either panic or celebrate. This skill gives you the nuanced analysis a paid media specialist would: what's actually significant, what's noise, and where your next dollar should go.
When to Use
- "Analyze my Google Ads performance"
- "Which ads should I kill?"
- "Is this campaign working?"
- "Where am I wasting ad spend?"
- "Optimize my Meta Ads"
Phase 0: Intake
- Campaign data — One of:
- CSV export from Google Ads / Meta Ads Manager / LinkedIn Campaign Manager
- Pasted performance table
- Screenshots of dashboard (we'll extract the data)
- Platform(s) — Google / Meta / LinkedIn / All
- Time period — What date range does this cover?
- Monthly budget — Total ad spend in this period
- Primary goal — What conversion are you optimizing for? (Demos / Trials / Purchases / Leads)
- Target metrics — Do you have target CPA or ROAS? (If not, we'll benchmark)
- Any known changes? — Did you change creative, budget, or targeting during this period?
Phase 1: Data Ingestion & Normalization
Accepted Data Formats
| Source |
Key Columns Expected |
| Google Ads |
Campaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value |
| Meta Ads |
Campaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS |
| LinkedIn Ads |
Campaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads |
Normalize all data into a standard analysis format:
| Dimension |
Impressions |
Clicks |
CTR |
CPC |
Conversions |
Conv Rate |
CPA |
Spend |
Revenue/Value |
Phase 2: Performance Diagnostics
2A: Campaign-Level Health Check
For each campaign:
| Metric |
Value |
Benchmark |
Status |
| CTR |
[X%] |
[Industry avg] |
[Good/Okay/Poor] |
| CPC |
$[X] |
[Category avg] |
[Good/Okay/Poor] |
| Conv Rate |
[X%] |
[Benchmark] |
[Good/Okay/Poor] |
| CPA |
$[X] |
[Target or benchmark] |
[Good/Okay/Poor] |
| ROAS |
[X] |
[Target or benchmark] |
[Good/Okay/Poor] |
| Impression Share |
[X%] |
[>60% ideal] |
[Good/Okay/Poor] |
2B: Budget Waste Detection
Identify spend that produced no or negative return:
| Waste Type |
Signal |
Action |
| Zero-conversion keywords/ads |
Spend > $[X] with 0 conversions |
Pause or add negatives |
| High CPA outliers |
CPA > 3x target |
Pause or restructure |
| Low CTR ads |
CTR < 50% of campaign average |
Replace creative |
| Broad match bleed |
Search terms report showing irrelevant clicks |
Add negative keywords |
| Audience overlap |
Same users hit by multiple campaigns |
Exclude audiences |
| Dayparting waste |
Conversions cluster at certain hours; spend is 24/7 |
Set ad schedule |
2C: Winner Identification
Find what's actually working:
| Winner Type |
Signal |
Action |
| Top-performing keywords |
Lowest CPA, highest conv rate |
Increase bid, add variants |
| Winning ads |
Highest CTR + conv rate combo |
Scale spend, clone for other groups |
| Best audiences |
Lowest CPA segment |
Increase budget allocation |
| Best times |
Peak conversion hours/days |
Concentrate budget |
2D: Statistical Significance Check
For any A/B test (ad variants, audiences, landing pages):
Test: [Variant A] vs [Variant B]
Metric: [Conv Rate / CTR / CPA]
Variant A: [X%] (n=[sample_size])
Variant B: [Y%] (n=[sample_size])
Confidence level: [X%]
Verdict: [Statistically significant / Not enough data / Too close to call]
Recommended action: [Pick winner / Continue test / Increase budget to reach significance]
Minimum sample: 100 clicks per variant for CTR tests, 30 conversions per variant for CPA tests.
Phase 3: Funnel Analysis
Click → Conversion Path
Impressions: [N] (100%)
↓ CTR: [X%]
Clicks: [N] ([X%] of impressions)
↓ Landing page → Conversion: [X%]
Conversions: [N] ([X%] of clicks)
↓ Conversion → Revenue: $[X] avg
Revenue: $[N]
Funnel Drop-Off Diagnosis
| Drop-Off Point |
Rate |
Benchmark |
Likely Cause |
Fix |
| Impression → Click |
[CTR%] |
[Benchmark] |
[Ad relevance / targeting] |
[Copy/targeting change] |
| Click → Conversion |
[Conv%] |
[Benchmark] |
[Landing page / offer / audience mismatch] |
[LP optimization] |
| Conversion → Revenue |
[Close%] |
[Benchmark] |
[Lead quality / sales process] |
[Qualification criteria] |
Phase 4: Output Format
# Ad Campaign Analysis — [Product/Client] — [DATE]
Period: [Date range]
Total spend: $[X]
Platform(s): [Google / Meta / LinkedIn]
Primary goal: [Conversions / Revenue / Leads]
---
## Executive Summary
[3-5 sentences: Overall performance verdict, biggest win, biggest problem, top recommendation]
---
## Performance Dashboard
| Campaign | Spend | Impressions | Clicks | CTR | CPC | Conversions | CPA | ROAS | Verdict |
|----------|-------|------------|--------|-----|-----|-------------|-----|------|---------|
| [Name] | $[X] | [N] | [N] | [X%] | $[X] | [N] | $[X] | [X] | [Scale/Optimize/Pause] |
---
## Budget Waste Report
**Total estimated waste: $[X] ([X%] of total spend)**
### Wasted on zero-conversion items: $[X]
[List of keywords/ads/audiences with spend but no conversions]
### Wasted on high-CPA items: $[X]
[List of items with CPA > 3x target]
### Recommended saves: $[X]/month
[Specific items to pause]
---
## Winners to Scale
### Top Keywords/Audiences
| Item | CPA | Conv Rate | Current Spend | Recommended Spend |
|------|-----|----------|--------------|-------------------|
### Top Ads
| Ad | CTR | Conv Rate | Why It Works |
|----|-----|----------|-------------|
---
## A/B Test Results
### [Test Name]
- Variant A: [Metric] (n=[N])
- Variant B: [Metric] (n=[N])
- Confidence: [X%]
- **Verdict:** [Winner / Continue / Inconclusive]
---
## Action Plan
### Immediate (This Week)
- [ ] **Pause:** [Specific items — keywords, ads, audiences]
- [ ] **Scale:** [Specific items — increase budget/bids]
- [ ] **Add negatives:** [Specific keywords from search terms]
### This Month
- [ ] **Test:** [New ad angles / audiences / landing pages]
- [ ] **Restructure:** [Ad groups that need splitting or merging]
- [ ] **Optimize:** [Bid strategy changes]
### Next Month
- [ ] **Expand:** [New campaigns / channels to test]
- [ ] **Review:** [Run this analysis again]
Save to clients/<client-name>/ads/campaign-analysis-[YYYY-MM-DD].md.
Cost
| Component |
Cost |
| Data analysis |
Free (LLM reasoning) |
| Statistical calculations |
Free |
| Total |
Free |
Tools Required
- No external tools needed — pure reasoning skill
- User provides campaign data as CSV, paste, or screenshot
Trigger Phrases
- "Analyze my ad campaign performance"
- "Which ads should I pause?"
- "Where am I wasting ad budget?"
- "Is my Google Ads campaign working?"
- "Optimize my Meta Ads spend"
1---2name: ad-campaign-analyzer3description: Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Takes CSV or pasted data, runs statistical analysis, and produces a diagnostic report with action items.4---56# Ad Campaign Analyzer78Take raw campaign performance data and turn it into clear decisions. This skill doesn't just summarize metrics — it diagnoses problems, identifies winners, checks statistical significance, and tells you exactly what to cut, scale, and test next.910**Core principle:** Most startup founders check their ad dashboard, see a ROAS number, and either panic or celebrate. This skill gives you the nuanced analysis a paid media specialist would: what's actually significant, what's noise, and where your next dollar should go.1112## When to Use1314- "Analyze my Google Ads performance"15- "Which ads should I kill?"16- "Is this campaign working?"17- "Where am I wasting ad spend?"18- "Optimize my Meta Ads"1920## Phase 0: Intake21221. **Campaign data** — One of:23 - CSV export from Google Ads / Meta Ads Manager / LinkedIn Campaign Manager24 - Pasted performance table25 - Screenshots of dashboard (we'll extract the data)262. **Platform(s)** — Google / Meta / LinkedIn / All273. **Time period** — What date range does this cover?284. **Monthly budget** — Total ad spend in this period295. **Primary goal** — What conversion are you optimizing for? (Demos / Trials / Purchases / Leads)306. **Target metrics** — Do you have target CPA or ROAS? (If not, we'll benchmark)317. **Any known changes?** — Did you change creative, budget, or targeting during this period?3233## Phase 1: Data Ingestion & Normalization3435### Accepted Data Formats3637| Source | Key Columns Expected |38|--------|---------------------|39| **Google Ads** | Campaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value |40| **Meta Ads** | Campaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS |41| **LinkedIn Ads** | Campaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads |4243Normalize all data into a standard analysis format:4445| Dimension | Impressions | Clicks | CTR | CPC | Conversions | Conv Rate | CPA | Spend | Revenue/Value |46|-----------|------------|--------|-----|-----|-------------|----------|-----|-------|--------------|4748## Phase 2: Performance Diagnostics4950### 2A: Campaign-Level Health Check5152For each campaign:5354| Metric | Value | Benchmark | Status |55|--------|-------|-----------|--------|56| CTR | [X%] | [Industry avg] | [Good/Okay/Poor] |57| CPC | $[X] | [Category avg] | [Good/Okay/Poor] |58| Conv Rate | [X%] | [Benchmark] | [Good/Okay/Poor] |59| CPA | $[X] | [Target or benchmark] | [Good/Okay/Poor] |60| ROAS | [X] | [Target or benchmark] | [Good/Okay/Poor] |61| Impression Share | [X%] | [>60% ideal] | [Good/Okay/Poor] |6263### 2B: Budget Waste Detection6465Identify spend that produced no or negative return:6667| Waste Type | Signal | Action |68|-----------|--------|--------|69| **Zero-conversion keywords/ads** | Spend > $[X] with 0 conversions | Pause or add negatives |70| **High CPA outliers** | CPA > 3x target | Pause or restructure |71| **Low CTR ads** | CTR < 50% of campaign average | Replace creative |72| **Broad match bleed** | Search terms report showing irrelevant clicks | Add negative keywords |73| **Audience overlap** | Same users hit by multiple campaigns | Exclude audiences |74| **Dayparting waste** | Conversions cluster at certain hours; spend is 24/7 | Set ad schedule |7576### 2C: Winner Identification7778Find what's actually working:7980| Winner Type | Signal | Action |81|------------|--------|--------|82| **Top-performing keywords** | Lowest CPA, highest conv rate | Increase bid, add variants |83| **Winning ads** | Highest CTR + conv rate combo | Scale spend, clone for other groups |84| **Best audiences** | Lowest CPA segment | Increase budget allocation |85| **Best times** | Peak conversion hours/days | Concentrate budget |8687### 2D: Statistical Significance Check8889For any A/B test (ad variants, audiences, landing pages):9091```92Test: [Variant A] vs [Variant B]93Metric: [Conv Rate / CTR / CPA]94Variant A: [X%] (n=[sample_size])95Variant B: [Y%] (n=[sample_size])96Confidence level: [X%]97Verdict: [Statistically significant / Not enough data / Too close to call]98Recommended action: [Pick winner / Continue test / Increase budget to reach significance]99```100101Minimum sample: 100 clicks per variant for CTR tests, 30 conversions per variant for CPA tests.102103## Phase 3: Funnel Analysis104105### Click → Conversion Path106107```108Impressions: [N] (100%)109 ↓ CTR: [X%]110Clicks: [N] ([X%] of impressions)111 ↓ Landing page → Conversion: [X%]112Conversions: [N] ([X%] of clicks)113 ↓ Conversion → Revenue: $[X] avg114Revenue: $[N]115```116117### Funnel Drop-Off Diagnosis118119| Drop-Off Point | Rate | Benchmark | Likely Cause | Fix |120|----------------|------|-----------|-------------|-----|121| Impression → Click | [CTR%] | [Benchmark] | [Ad relevance / targeting] | [Copy/targeting change] |122| Click → Conversion | [Conv%] | [Benchmark] | [Landing page / offer / audience mismatch] | [LP optimization] |123| Conversion → Revenue | [Close%] | [Benchmark] | [Lead quality / sales process] | [Qualification criteria] |124125## Phase 4: Output Format126127```markdown128# Ad Campaign Analysis — [Product/Client] — [DATE]129130Period: [Date range]131Total spend: $[X]132Platform(s): [Google / Meta / LinkedIn]133Primary goal: [Conversions / Revenue / Leads]134135---136137## Executive Summary138139[3-5 sentences: Overall performance verdict, biggest win, biggest problem, top recommendation]140141---142143## Performance Dashboard144145| Campaign | Spend | Impressions | Clicks | CTR | CPC | Conversions | CPA | ROAS | Verdict |146|----------|-------|------------|--------|-----|-----|-------------|-----|------|---------|147| [Name] | $[X] | [N] | [N] | [X%] | $[X] | [N] | $[X] | [X] | [Scale/Optimize/Pause] |148149---150151## Budget Waste Report152153**Total estimated waste: $[X] ([X%] of total spend)**154155### Wasted on zero-conversion items: $[X]156[List of keywords/ads/audiences with spend but no conversions]157158### Wasted on high-CPA items: $[X]159[List of items with CPA > 3x target]160161### Recommended saves: $[X]/month162[Specific items to pause]163164---165166## Winners to Scale167168### Top Keywords/Audiences169| Item | CPA | Conv Rate | Current Spend | Recommended Spend |170|------|-----|----------|--------------|-------------------|171172### Top Ads173| Ad | CTR | Conv Rate | Why It Works |174|----|-----|----------|-------------|175176---177178## A/B Test Results179180### [Test Name]181- Variant A: [Metric] (n=[N])182- Variant B: [Metric] (n=[N])183- Confidence: [X%]184- **Verdict:** [Winner / Continue / Inconclusive]185186---187188## Action Plan189190### Immediate (This Week)191- [ ] **Pause:** [Specific items — keywords, ads, audiences]192- [ ] **Scale:** [Specific items — increase budget/bids]193- [ ] **Add negatives:** [Specific keywords from search terms]194195### This Month196- [ ] **Test:** [New ad angles / audiences / landing pages]197- [ ] **Restructure:** [Ad groups that need splitting or merging]198- [ ] **Optimize:** [Bid strategy changes]199200### Next Month201- [ ] **Expand:** [New campaigns / channels to test]202- [ ] **Review:** [Run this analysis again]203```204205Save to `clients/<client-name>/ads/campaign-analysis-[YYYY-MM-DD].md`.206207## Cost208209| Component | Cost |210|-----------|------|211| Data analysis | Free (LLM reasoning) |212| Statistical calculations | Free |213| **Total** | **Free** |214215## Tools Required216217- No external tools needed — pure reasoning skill218- User provides campaign data as CSV, paste, or screenshot219220## Trigger Phrases221222- "Analyze my ad campaign performance"223- "Which ads should I pause?"224- "Where am I wasting ad budget?"225- "Is my Google Ads campaign working?"226- "Optimize my Meta Ads spend"