Meta Ads Performance Analyzer
SKILL.md
HOW_TO_USE.md
sample_input.json
expected_output.json
skillsmeta-adsSKILL.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
# Meta Ads Performance Analyzer
Find what's working, what's bleeding money, and what to do about it.
## Core Philosophy
**Meta Ads are not Google Ads.** Different platform, different user intent, different optimization levers. Stop applying search mindset to social.
**The Meta Paradox:** Your best-performing ad today will be your worst performer in 30 days. Creative fatigue is the #1 killer of Meta campaigns.
**The Three Truths of Meta:**
1. **Creative is king:** 70% of performance variance comes from creative
2. **Audience breadth wins:** Narrow targeting is a tax on your CPMs
3. **The algorithm knows:** Fight less, feed more (give it data and budget)
---
## Required Context
### Must Have
**1. Campaign Overview**
- Current campaigns and objectives (Conversions, Traffic, Leads, etc.)
- Monthly spend (or daily budget)
- Time period for analysis (last 7, 14, 30 days)
**2. Core Metrics**
- Spend by campaign
- Results (conversions, leads, purchases)
- Cost per result (CPA, CPL, Cost per Purchase)
- ROAS (if applicable)
### Strongly Recommended
**3. Breakdown Data**
- Performance by ad set (audience)
- Performance by ad (creative)
- Performance by placement (Feed, Stories, Reels, etc.)
- Performance by device (Mobile vs Desktop)
**4. Funnel Metrics**
- Impressions and Reach
- CPM (Cost per 1,000 impressions)
- CTR (Click-through rate)
- CPC (Cost per click)
- Landing page conversion rate
### Nice to Have
- Frequency by ad set
- Audience overlap data
- Creative performance over time (for fatigue analysis)
- Comparison period data (this month vs last month)
- Attribution window settings
- Pixel/CAPI health data
---
## Performance Assessment Framework
### Level 1: Account Health Check
**Traffic Light Status:**
| Metric | Green | Yellow | Red |
|--------|-------|--------|-----|
| CPM | Below industry avg | At industry avg | 50%+ above avg |
| CTR | >1.5% | 1.0-1.5% | <1.0% |
| CPC | Below target | At target | Above target |
| CPA | Below target | At target | 20%+ above target |
| ROAS | Above target | At target | Below target |
| Frequency | <2.0 (7d) | 2.0-3.5 | >3.5 |
**Illustrative CPM Ranges (validate against your own account):**
- E-commerce: $10-15
- SaaS/B2B: $15-25
- Finance: $20-35
- Lead Gen: $8-15
- App Install: $5-12
---
### Level 2: Campaign Diagnosis
**Campaign Performance Tiers:**
| Tier | Criteria | Action |
|------|----------|--------|
| Tier 1: Winners | CPA <80% target, positive ROAS trend | Scale budget 20-30% |
| Tier 2: Performers | CPA 80-100% target, stable | Optimize, don't change budget |
| Tier 3: Borderline | CPA 100-130% target | Test new creative/audience |
| Tier 4: Losers | CPA >130% target for 7+ days | Pause or restructure |
**Diagnostic Questions:**
1. Is the problem at the top (CPM/CTR) or bottom (conversion rate)?
2. Is performance declining over time (fatigue) or was it always poor?
3. Is one element dragging down the whole (single bad ad set)?
4. Are you comparing apples to apples (same attribution window)?
---
### Level 3: Deep Dive Analysis
**A. Creative Analysis**
- Identify top 3 and bottom 3 creatives by CPA
- Check for creative fatigue (CTR decline >30% over 2 weeks)
- Assess creative diversity (formats, hooks, angles)
- Compare static vs video performance
**B. Audience Analysis**
- Identify winning audiences vs losers
- Check audience overlap (cannibalizing each other?)
- Evaluate audience size vs performance
- Compare Advantage+ audiences vs manual targeting
**C. Placement Analysis**
- Feed vs Stories vs Reels performance
- Instagram vs Facebook performance
- Automatic vs manual placement ROI
- Mobile vs Desktop breakdown
**D. Funnel Analysis**
- Where is the biggest drop-off?
- CPM โ CTR โ CPC โ Conversion rate
- Which stage needs the most attention?
---
## Common Problem Patterns
### Pattern 1: High CPM, Low Delivery
**Symptoms:** CPMs 2-3x normal, campaigns struggling to spend
**Causes:**
- Audience too narrow (<1M people)
- Too many exclusions
- Low account spend history
- Auction overlap between ad sets
**Solutions:**
- Broaden targeting
- Consolidate ad sets
- Use Advantage+ audiences
- Increase budget to exit learning limited
### Pattern 2: Good CTR, Bad Conversion Rate
**Symptoms:** CTR >2%, but CPA way above target
**Causes:**
- Creative-landing page mismatch
- Wrong audience (curious but not buyers)
- Landing page issues
- Misleading ad copy
**Solutions:**
- Audit landing page experience
- Review audience quality vs quantity
- Ensure message match
- Check mobile landing page speed
### Pattern 3: Creative Fatigue
**Symptoms:** CTR declining 20%+ week over week, frequency rising
**Causes:**
- Same creative running too long
- Audience exhausted
- Not enough creative diversity
**Solutions:**
- Rotate in new creatives every 2-3 weeks
- Test new angles/hooks
- Expand audience
- Use dynamic creative
### Pattern 4: Learning Limited
**Symptoms:** "Learning Limited" status, volatile performance
**Causes:**
- Not enough conversions (need 50/week per ad set)
- Too many ad sets splitting budget
- Budget too low
- Too many constraints
**Solutions:**
- Consolidate ad sets
- Increase budgets
- Use campaign budget optimization (CBO)
- Simplify structure
### Pattern 5: Winning Creative Plateau
**Symptoms:** Best ad's performance flattening, can't find new winners
**Causes:**
- Testing process broken
- Not enough creative volume
- Testing wrong elements
**Solutions:**
- Increase creative testing velocity (3-5 new ads/week)
- Test hooks first, then bodies
- Analyze what made winners work
- Try new formats (UGC, Reels, Carousels)
---
## Output Format
### Performance Analysis Summary
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
META ADS PERFORMANCE ANALYSIS
Period: [Date Range]
Total Spend: $[X] | Results: [X] | CPA: $[X]
Health Score: [X]/100
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
### Account Health Dashboard
**Overall Status: [GREEN/YELLOW/RED]**
| Metric | Value | Benchmark | Status | Trend |
|--------|-------|-----------|--------|-------|
| CPM | $[X] | $[X] | [Status] | [โโโ] |
| CTR | [X]% | [X]% | [Status] | [โโโ] |
| CPC | $[X] | $[X] | [Status] | [โโโ] |
| CPA | $[X] | $[X] | [Status] | [โโโ] |
| ROAS | [X]x | [X]x | [Status] | [โโโ] |
| Frequency | [X] | <3.0 | [Status] | [โโโ] |
**Funnel Visualization:**
```
Impressions โ Clicks โ Landing Page โ Conversion
[X] [X] [X]% [X]%
[X]% CTR [X]% drop [X]% CVR
```
---
### Campaign Performance Breakdown
**Tier 1 - Winners (Scale These)**
| Campaign | Spend | Results | CPA | vs Target | Action |
|----------|-------|---------|-----|-----------|--------|
| [Name] | $[X] | [X] | $[X] | -[X]% | Scale 25% |
**Tier 2 - Performers (Optimize)**
| Campaign | Spend | Results | CPA | vs Target | Action |
|----------|-------|---------|-----|-----------|--------|
| [Name] | $[X] | [X] | $[X] | [X]% | [Action] |
**Tier 3 - Borderline (Test/Fix)**
| Campaign | Spend | Results | CPA | vs Target | Action |
|----------|-------|---------|-----|-----------|--------|
| [Name] | $[X] | [X] | $[X] | +[X]% | [Action] |
**Tier 4 - Losers (Pause/Restructure)**
| Campaign | Spend | Results | CPA | vs Target | Action |
|----------|-------|---------|-----|-----------|--------|
| [Name] | $[X] | [X] | $[X] | +[X]% | Pause |
---
### Creative Performance Analysis
**Top Performers:**
| Ad Name | Spend | CPA | CTR | Hook Rate | Status |
|---------|-------|-----|-----|-----------|--------|
| [Name] | $[X] | $[X] | [X]% | [X]% | [Fresh/Fatigued] |
**Underperformers:**
| Ad Name | Spend | CPA | CTR | Issue | Recommendation |
|---------|-------|-----|-----|-------|----------------|
| [Name] | $[X] | $[X] | [X]% | [Issue] | [Action] |
**Creative Fatigue Alert:**
- [Ad Name]: CTR dropped [X]% in [X] days - ROTATE
- [Ad Name]: Frequency at [X] - audience exhausted
**Creative Mix Assessment:**
```
Current Mix:
- Static Images: [X]%
- Videos: [X]%
- Carousels: [X]%
- UGC: [X]%
Recommendation: [Assessment of mix health]
```
---
### Audience Performance Analysis
**Winning Audiences:**
| Audience | Size | Spend | CPA | CPM | Notes |
|----------|------|-------|-----|-----|-------|
| [Name] | [X]M | $[X] | $[X] | $[X] | [Notes] |
**Losing Audiences:**
| Audience | Size | Spend | CPA | Issue | Action |
|----------|------|-------|-----|-------|--------|
| [Name] | [X]M | $[X] | $[X] | [Issue] | [Action] |
**Audience Overlap Issues:**
- [Audience A] and [Audience B]: [X]% overlap - consolidate
**Targeting Recommendations:**
- [Recommendation 1]
- [Recommendation 2]
---
### Placement Performance
| Placement | Spend | CPA | CPM | CTR | Recommendation |
|-----------|-------|-----|-----|-----|----------------|
| FB Feed | $[X] | $[X] | $[X] | [X]% | [Action] |
| IG Feed | $[X] | $[X] | $[X] | [X]% | [Action] |
| IG Stories | $[X] | $[X] | $[X] | [X]% | [Action] |
| IG Reels | $[X] | $[X] | $[X] | [X]% | [Action] |
| FB Reels | $[X] | $[X] | $[X] | [X]% | [Action] |
| Audience Network | $[X] | $[X] | $[X] | [X]% | [Action] |
**Placement Strategy:**
[Assessment and recommendation for Advantage+ vs manual placements]
---
### Diagnosis & Root Cause
**Primary Issue:** [One sentence summary]
**Root Cause Analysis:**
```
Problem: [The symptom]
โ
Why: [First-level cause]
โ
Why: [Second-level cause]
โ
Root Cause: [The real issue to fix]
```
**Contributing Factors:**
1. [Factor 1]
2. [Factor 2]
3. [Factor 3]
---
### Action Plan
**Immediate (This Week):**
1. [ ] [Urgent action with specific details]
2. [ ] [Urgent action with specific details]
**Short-Term (Next 2 Weeks):**
1. [ ] [Action item]
2. [ ] [Action item]
3. [ ] [Action item]
**Medium-Term (Next Month):**
1. [ ] [Strategic action]
2. [ ] [Strategic action]
**Expected Impact:**
- If actions completed: CPA should improve by [X]% within [timeframe]
- Primary risk: [Risk and mitigation]
---
### Monitoring Checklist
Track these daily/weekly:
- [ ] CPA by campaign (daily)
- [ ] CTR trends by creative (daily)
- [ ] Frequency by ad set (every 3 days)
- [ ] Learning phase status (daily)
- [ ] Spend pacing vs budget (daily)
**Red Flag Triggers:**
- CPA increases >20% for 3+ days
- CTR drops >25% week-over-week
- Frequency exceeds 4.0 in 7 days
- Campaign stuck in "Learning Limited" for 7+ days
---
## Limitations
**I can provide:**
- Performance diagnosis and benchmarking
- Creative and audience analysis
- Specific optimization recommendations
- Root cause identification
**I cannot provide:**
- Creative design or copywriting
- Audience research/persona development
- Pixel/CAPI technical debugging
- Competitor intelligence from Ad Library
**For better analysis, also provide:**
- Screenshots of Ads Manager breakdowns
- Creative assets or thumbnails
- Landing page URLs
- Historical performance data (for trend analysis)
---
## Quality Checklist
Before delivering analysis:
- [ ] All campaigns categorized into performance tiers
- [ ] Root cause identified (not just symptoms)
- [ ] Actions are specific and prioritized
- [ ] Creative fatigue assessed
- [ ] Audience overlap considered
- [ ] Benchmarks appropriate for industry
- [ ] Recommendations match advertiser's capacity
- [ ] Expected impact quantified where possible
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# How to Use This Skill
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. Can you analyze my Meta Ads performance and tell me what's working?
## Example Invocations
**Example 1: Full Performance Analysis**
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. Here's my Meta Ads data from the last 30 days. Tell me what's working, what's broken, and what I should do.
**Example 2: Diagnose Performance Drop**
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. My CPA jumped from $25 to $45 in the last 2 weeks. Help me figure out why and how to fix it.
**Example 3: Creative Analysis**
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. I want to understand which of my creatives are winning and which are fatigued. Here's my ad-level performance data.
**Example 4: Audience Optimization**
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. I'm running 8 different audiences and want to know which ones to scale and which to cut.
**Example 5: Compare Periods**
Hey Claude, I just added the "meta-ads-performance-analyzer" skill. Compare my November vs December performance and explain the differences.
## What to Provide
**Required:**
- Campaign names and objectives
- Spend by campaign (or ad set)
- Results (conversions, leads, purchases)
- Cost per result (CPA/CPL)
- Time period being analyzed
**Recommended:**
- Ad-level performance (creative breakdown)
- Audience/ad set breakdown
- Placement breakdown
- Funnel metrics (CPM, CTR, CPC, conversion rate)
- Frequency data
**Optional:**
- Week-over-week or month-over-month comparison
- Creative thumbnails or descriptions
- Audience sizes and overlap data
- Attribution window being used
- Industry/vertical context
## What You'll Get
1. **Health Dashboard** - Traffic light status on all key metrics
2. **Campaign Tiering** - Winners, performers, borderline, losers
3. **Creative Analysis** - Top/bottom performers, fatigue detection
4. **Audience Analysis** - What's working, overlap issues
5. **Placement Breakdown** - Where your money is going
6. **Root Cause Diagnosis** - Why performance is what it is
7. **Prioritized Actions** - What to do immediately, this week, this month
## Pro Tips
- Export data from Ads Manager โ Reports โ Create Custom Report
- Include at least 7 days of data (14-30 is better for trends)
- Don't panic about daily fluctuations, look at 7-day trends
- Compare apples to apples: same attribution window, same time period
- Creative performance data is the most valuable, always include it if possible
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
{
"account_info": {
"business": "E-commerce - Fashion DTC",
"objective": "Purchases",
"target_cpa": 35,
"target_roas": 3,
"analysis_period": "Last 30 days"
},
"account_summary": {
"total_spend": 45000,
"total_purchases": 1125,
"revenue": 112500,
"blended_cpa": 40,
"blended_roas": 2.5,
"total_impressions": 3500000,
"total_clicks": 52500,
"cpm": 12.86,
"ctr": 1.5,
"cpc": 0.86,
"landing_page_cvr": 2.14
},
"campaigns": [
{
"name": "Prospecting - Broad",
"objective": "Conversions",
"status": "Active",
"spend": 22000,
"purchases": 485,
"revenue": 48500,
"cpa": 45.36,
"roas": 2.2,
"impressions": 1800000,
"clicks": 27000,
"cpm": 12.22,
"ctr": 1.5,
"frequency": 2.8
},
{
"name": "Prospecting - Lookalikes",
"objective": "Conversions",
"status": "Active",
"spend": 12000,
"purchases": 340,
"revenue": 37400,
"cpa": 35.29,
"roas": 3.1,
"impressions": 900000,
"clicks": 14400,
"cpm": 13.33,
"ctr": 1.6,
"frequency": 2.1
},
{
"name": "Retargeting - Website Visitors",
"objective": "Conversions",
"status": "Active",
"spend": 6000,
"purchases": 210,
"revenue": 18900,
"cpa": 28.57,
"roas": 3.15,
"impressions": 450000,
"clicks": 7200,
"cpm": 13.33,
"ctr": 1.6,
"frequency": 4.8
},
{
"name": "Retargeting - Cart Abandoners",
"objective": "Conversions",
"status": "Active",
"spend": 3000,
"purchases": 75,
"revenue": 6000,
"cpa": 40,
"roas": 2,
"impressions": 200000,
"clicks": 2400,
"cpm": 15,
"ctr": 1.2,
"frequency": 6.2
},
{
"name": "Advantage+ Sales",
"objective": "Sales",
"status": "Active",
"spend": 2000,
"purchases": 15,
"revenue": 1700,
"cpa": 133.33,
"roas": 0.85,
"impressions": 150000,
"clicks": 1500,
"cpm": 13.33,
"ctr": 1,
"frequency": 1.5
}
],
"ad_sets": [
{
"campaign": "Prospecting - Broad",
"name": "Broad - US - 18-65",
"audience_size": "85M",
"spend": 15000,
"purchases": 320,
"cpa": 46.88,
"cpm": 11.5,
"frequency": 2.5
},
{
"campaign": "Prospecting - Broad",
"name": "Interest - Fashion Enthusiasts",
"audience_size": "12M",
"spend": 7000,
"purchases": 165,
"cpa": 42.42,
"cpm": 14,
"frequency": 3.5
},
{
"campaign": "Prospecting - Lookalikes",
"name": "LAL - Purchasers 1%",
"audience_size": "2.5M",
"spend": 8000,
"purchases": 250,
"cpa": 32,
"cpm": 14.5,
"frequency": 2.2
},
{
"campaign": "Prospecting - Lookalikes",
"name": "LAL - Purchasers 3%",
"audience_size": "7.5M",
"spend": 4000,
"purchases": 90,
"cpa": 44.44,
"cpm": 11.8,
"frequency": 1.8
}
],
"ads": [
{
"campaign": "Prospecting - Broad",
"name": "Video - Summer Collection Hero",
"format": "Video",
"spend": 8500,
"purchases": 210,
"cpa": 40.48,
"ctr": 1.8,
"hook_rate": 32,
"days_running": 45,
"ctr_trend": "declining -25% vs first 2 weeks"
},
{
"campaign": "Prospecting - Broad",
"name": "Carousel - Best Sellers",
"format": "Carousel",
"spend": 6000,
"purchases": 145,
"cpa": 41.38,
"ctr": 1.4,
"days_running": 30,
"ctr_trend": "stable"
},
{
"campaign": "Prospecting - Broad",
"name": "UGC - Customer Review",
"format": "Video",
"spend": 4500,
"purchases": 98,
"cpa": 45.92,
"ctr": 1.6,
"hook_rate": 28,
"days_running": 21,
"ctr_trend": "stable"
},
{
"campaign": "Prospecting - Broad",
"name": "Static - Product Grid",
"format": "Image",
"spend": 3000,
"purchases": 32,
"cpa": 93.75,
"ctr": 0.8,
"days_running": 30,
"ctr_trend": "declining"
},
{
"campaign": "Prospecting - Lookalikes",
"name": "Video - Brand Story",
"format": "Video",
"spend": 7000,
"purchases": 220,
"cpa": 31.82,
"ctr": 1.9,
"hook_rate": 38,
"days_running": 28,
"ctr_trend": "stable"
},
{
"campaign": "Prospecting - Lookalikes",
"name": "Static - Lifestyle Shot",
"format": "Image",
"spend": 5000,
"purchases": 120,
"cpa": 41.67,
"ctr": 1.3,
"days_running": 28,
"ctr_trend": "declining -15%"
},
{
"campaign": "Retargeting - Website Visitors",
"name": "Dynamic Product Ads",
"format": "DPA",
"spend": 4000,
"purchases": 150,
"cpa": 26.67,
"ctr": 1.8,
"days_running": 60,
"ctr_trend": "stable"
},
{
"campaign": "Retargeting - Website Visitors",
"name": "Offer - 15% Off",
"format": "Image",
"spend": 2000,
"purchases": 60,
"cpa": 33.33,
"ctr": 1.2,
"days_running": 30,
"ctr_trend": "stable"
}
],
"placements": [
{
"placement": "Facebook Feed",
"spend": 15000,
"purchases": 420,
"cpa": 35.71,
"cpm": 11.5,
"ctr": 1.4
},
{
"placement": "Instagram Feed",
"spend": 12000,
"purchases": 315,
"cpa": 38.1,
"cpm": 13,
"ctr": 1.6
},
{
"placement": "Instagram Stories",
"spend": 8000,
"purchases": 180,
"cpa": 44.44,
"cpm": 14.5,
"ctr": 1.8
},
{
"placement": "Instagram Reels",
"spend": 6000,
"purchases": 145,
"cpa": 41.38,
"cpm": 12,
"ctr": 1.7
},
{
"placement": "Facebook Reels",
"spend": 2500,
"purchases": 45,
"cpa": 55.56,
"cpm": 10,
"ctr": 1.3
},
{
"placement": "Audience Network",
"spend": 1500,
"purchases": 20,
"cpa": 75,
"cpm": 5,
"ctr": 0.5
}
],
"week_over_week": {
"week_1": {
"spend": 10000,
"purchases": 310,
"cpa": 32.26,
"ctr": 1.65
},
"week_2": {
"spend": 11000,
"purchases": 305,
"cpa": 36.07,
"ctr": 1.58
},
"week_3": {
"spend": 12000,
"purchases": 275,
"cpa": 43.64,
"ctr": 1.45
},
"week_4": {
"spend": 12000,
"purchases": 235,
"cpa": 51.06,
"ctr": 1.32
}
},
"context": {
"recent_changes": "Increased budget 20% in week 2, launched Advantage+ Sales in week 3",
"seasonality": "Post-holiday slowdown expected",
"attribution_window": "7-day click, 1-day view"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
{
"summary": {
"total_spend": 45000,
"total_purchases": 1125,
"blended_cpa": 40,
"target_cpa": 35,
"vs_target": "+14%",
"blended_roas": 2.5,
"target_roas": 3,
"health_score": 62,
"health_status": "YELLOW",
"primary_issue": "Creative fatigue and performance degradation over time"
},
"health_dashboard": {
"cpm": {
"value": 12.86,
"benchmark": 12,
"status": "green",
"trend": "stable"
},
"ctr": {
"value": 1.5,
"benchmark": 1.5,
"status": "yellow",
"trend": "declining"
},
"cpc": {
"value": 0.86,
"benchmark": 1,
"status": "green",
"trend": "stable"
},
"cpa": {
"value": 40,
"benchmark": 35,
"status": "yellow",
"trend": "worsening"
},
"roas": {
"value": 2.5,
"benchmark": 3,
"status": "yellow",
"trend": "worsening"
},
"frequency": {
"value": 2.8,
"benchmark": 3,
"status": "yellow",
"trend": "rising"
}
},
"funnel_analysis": {
"impressions": 3500000,
"clicks": 52500,
"ctr_percent": 1.5,
"landing_page_views": 48000,
"lp_view_rate": 91.4,
"purchases": 1125,
"conversion_rate": 2.14,
"bottleneck": "Conversion rate is the weakest link - declining CTR feeding fewer qualified visitors"
},
"campaign_tiers": {
"tier_1_winners": [
{
"name": "Prospecting - Lookalikes",
"spend": 12000,
"purchases": 340,
"cpa": 35.29,
"vs_target": "+1%",
"roas": 3.1,
"action": "Scale budget 25% - best performer, still efficient"
},
{
"name": "Retargeting - Website Visitors",
"spend": 6000,
"purchases": 210,
"cpa": 28.57,
"vs_target": "-18%",
"roas": 3.15,
"action": "Scale budget 20% - watch frequency (currently 4.8)"
}
],
"tier_2_performers": [
{
"name": "Prospecting - Broad",
"spend": 22000,
"purchases": 485,
"cpa": 45.36,
"vs_target": "+30%",
"roas": 2.2,
"action": "Pause underperforming ads, refresh creative - CPA trending worse"
}
],
"tier_3_borderline": [
{
"name": "Retargeting - Cart Abandoners",
"spend": 3000,
"purchases": 75,
"cpa": 40,
"vs_target": "+14%",
"roas": 2,
"action": "Reduce frequency cap, test urgency-based creative"
}
],
"tier_4_losers": [
{
"name": "Advantage+ Sales",
"spend": 2000,
"purchases": 15,
"cpa": 133.33,
"vs_target": "+281%",
"roas": 0.85,
"action": "PAUSE immediately - burning money, not enough data/learning"
}
]
},
"creative_analysis": {
"top_performers": [
{
"name": "Video - Brand Story",
"campaign": "Prospecting - Lookalikes",
"format": "Video",
"spend": 7000,
"cpa": 31.82,
"ctr": 1.9,
"hook_rate": 38,
"status": "Fresh - maintain",
"insight": "Strong hook rate driving efficiency - replicate this hook style"
},
{
"name": "Dynamic Product Ads",
"campaign": "Retargeting",
"format": "DPA",
"spend": 4000,
"cpa": 26.67,
"ctr": 1.8,
"status": "Evergreen performer",
"insight": "DPA working well for retargeting - expected"
},
{
"name": "Video - Summer Collection Hero",
"campaign": "Prospecting - Broad",
"format": "Video",
"spend": 8500,
"cpa": 40.48,
"ctr": 1.8,
"hook_rate": 32,
"status": "FATIGUED - CTR down 25%",
"insight": "Was top performer, now fatiguing after 45 days. Create variations."
}
],
"underperformers": [
{
"name": "Static - Product Grid",
"campaign": "Prospecting - Broad",
"format": "Image",
"spend": 3000,
"cpa": 93.75,
"ctr": 0.8,
"issue": "Poor CTR, high CPA",
"action": "PAUSE - 2.7x target CPA, not improving"
},
{
"name": "Static - Lifestyle Shot",
"campaign": "Prospecting - Lookalikes",
"format": "Image",
"spend": 5000,
"cpa": 41.67,
"ctr": 1.3,
"issue": "Declining CTR, above target",
"action": "Test new static variants or pause for video"
}
],
"fatigue_alerts": [
{
"ad": "Video - Summer Collection Hero",
"days_running": 45,
"ctr_decline": "-25%",
"severity": "HIGH",
"action": "Create 2-3 new variations with different hooks immediately"
},
{
"ad": "Static - Lifestyle Shot",
"days_running": 28,
"ctr_decline": "-15%",
"severity": "MEDIUM",
"action": "Test new image creative within 1 week"
}
],
"creative_mix": {
"current": {
"video": "55%",
"image": "25%",
"carousel": "13%",
"dpa": "7%"
},
"assessment": "Mix is reasonable but static images underperforming. Shift budget from static to video/carousel. Consider adding UGC variety.",
"recommendation": "Target 60% video, 25% carousel, 10% DPA, 5% static for testing"
}
},
"audience_analysis": {
"winning_audiences": [
{
"name": "LAL - Purchasers 1%",
"campaign": "Prospecting - Lookalikes",
"size": "2.5M",
"spend": 8000,
"cpa": 32,
"vs_target": "-9%",
"recommendation": "Scale this audience - best prospecting performer"
},
{
"name": "Broad - US - 18-65",
"campaign": "Prospecting - Broad",
"size": "85M",
"spend": 15000,
"cpa": 46.88,
"vs_target": "+34%",
"recommendation": "Large scale but inefficient - let Advantage+ optimize within"
}
],
"losing_audiences": [
{
"name": "LAL - Purchasers 3%",
"campaign": "Prospecting - Lookalikes",
"size": "7.5M",
"spend": 4000,
"cpa": 44.44,
"issue": "Wider LAL diluting quality",
"action": "Reduce budget, reallocate to 1% LAL"
},
{
"name": "Interest - Fashion Enthusiasts",
"campaign": "Prospecting - Broad",
"size": "12M",
"spend": 7000,
"cpa": 42.42,
"issue": "High frequency (3.5) suggests audience saturation",
"action": "Pause or expand targeting"
}
],
"frequency_concerns": [
{
"audience": "Retargeting - Cart Abandoners",
"frequency": 6.2,
"action": "Set frequency cap at 3-4/week"
},
{
"audience": "Retargeting - Website Visitors",
"frequency": 4.8,
"action": "Monitor - approaching fatigue threshold"
},
{
"audience": "Interest - Fashion Enthusiasts",
"frequency": 3.5,
"action": "Expand audience or reduce spend"
}
]
},
"placement_analysis": {
"rankings": [
{
"placement": "Facebook Feed",
"spend": 15000,
"cpa": 35.71,
"cpm": 11.5,
"efficiency_rank": 1,
"action": "Maintain or increase"
},
{
"placement": "Instagram Feed",
"spend": 12000,
"cpa": 38.1,
"cpm": 13,
"efficiency_rank": 2,
"action": "Maintain"
},
{
"placement": "Instagram Reels",
"spend": 6000,
"cpa": 41.38,
"cpm": 12,
"efficiency_rank": 3,
"action": "Test more Reels-native creative"
},
{
"placement": "Instagram Stories",
"spend": 8000,
"cpa": 44.44,
"cpm": 14.5,
"efficiency_rank": 4,
"action": "Reduce if manual placements"
},
{
"placement": "Facebook Reels",
"spend": 2500,
"cpa": 55.56,
"cpm": 10,
"efficiency_rank": 5,
"action": "Low volume, monitor"
},
{
"placement": "Audience Network",
"spend": 1500,
"cpa": 75,
"cpm": 5,
"efficiency_rank": 6,
"action": "Exclude from prospecting"
}
],
"recommendation": "Keep Advantage+ placements but exclude Audience Network from conversion campaigns. Low CPM doesn't offset terrible conversion rate."
},
"trend_analysis": {
"weekly_performance": [
{
"week": 1,
"spend": 10000,
"cpa": 32.26,
"ctr": 1.65,
"assessment": "Strong baseline"
},
{
"week": 2,
"spend": 11000,
"cpa": 36.07,
"ctr": 1.58,
"assessment": "Budget increase absorbed well"
},
{
"week": 3,
"spend": 12000,
"cpa": 43.64,
"ctr": 1.45,
"assessment": "DEGRADATION started - fatigue + A+ Shopping launch"
},
{
"week": 4,
"spend": 12000,
"cpa": 51.06,
"ctr": 1.32,
"assessment": "Continued decline - action needed"
}
],
"trend_diagnosis": "Performance degrading 58% over 4 weeks (CPA $32 โ $51). Primary causes: 1) Creative fatigue on hero video, 2) Advantage+ Sales burning budget with no returns, 3) Overall frequency creeping up",
"if_no_action": "CPA will likely hit $60+ within 2 weeks"
},
"root_cause_analysis": {
"primary_issue": "Creative fatigue compounded by poor budget allocation to failing campaign",
"causal_chain": [
"Top-performing video running 45 days without refresh",
"CTR declined 25%, reducing qualified traffic",
"Conversion rate dropped as traffic quality decreased",
"Simultaneously, $2K/month bleeding into Advantage+ Sales with 0.85 ROAS",
"Blended CPA dragged up by both factors"
],
"contributing_factors": [
"Retargeting frequency too high (6.2 on cart abandoners)",
"Static image creative consistently underperforming",
"3% Lookalike diluting the efficient 1% LAL results"
]
},
"action_plan": {
"immediate_this_week": [
{
"priority": 1,
"action": "PAUSE Advantage+ Sales campaign",
"impact": "Stop $2K/month waste, improve blended CPA by $3-4",
"effort": "5 minutes"
},
{
"priority": 2,
"action": "PAUSE 'Static - Product Grid' ad",
"impact": "Stop inefficient spend, improve Broad campaign CPA",
"effort": "5 minutes"
},
{
"priority": 3,
"action": "Create 3 new video variations of Summer Collection Hero with different hooks",
"impact": "Refresh fatigued winner, restore CTR",
"effort": "Creative production"
},
{
"priority": 4,
"action": "Set frequency cap of 3/week on Cart Abandoners",
"impact": "Reduce wasted impressions, improve efficiency",
"effort": "10 minutes"
}
],
"short_term_next_2_weeks": [
{
"action": "Shift $3K budget from 3% LAL to 1% LAL",
"impact": "Concentrate on best-performing audience"
},
{
"action": "Test 2 new carousel creatives for Prospecting - Broad",
"impact": "Diversify creative mix beyond video"
},
{
"action": "Increase Retargeting - Website Visitors budget by 20%",
"impact": "Scale efficient campaign while CPA is low"
},
{
"action": "Exclude Audience Network from all conversion campaigns",
"impact": "Remove lowest-quality placement"
}
],
"medium_term_next_month": [
{
"action": "Build creative testing calendar - 3-5 new ads per week",
"impact": "Prevent future fatigue issues"
},
{
"action": "Test Advantage+ Audience on Broad campaign",
"impact": "Let algorithm find best targeting within broad"
},
{
"action": "Review Advantage+ Sales after 30 days if relaunched with better catalog",
"impact": "Give Advantage+ Sales a fair test with proper setup"
}
]
},
"expected_impact": {
"if_actions_completed": {
"timeline": "2-3 weeks",
"projected_cpa": 35,
"projected_improvement": "-12.5%",
"confidence": "Medium-High"
},
"primary_risks": [
"New creative may not match original performance",
"Scaling retargeting may exhaust audience faster"
],
"mitigation": "Test multiple creative variants simultaneously, monitor frequency daily on scaled audiences"
},
"monitoring_checklist": {
"daily": [
"CPA by campaign",
"Spend pacing",
"Learning phase status",
"New creative CTR"
],
"every_3_days": [
"Frequency by audience",
"CTR trends on all active creatives"
],
"weekly": [
"Week-over-week CPA trend",
"Placement performance",
"Creative fatigue check"
],
"red_flags": [
"CPA >$45 for 3+ consecutive days",
"CTR drops >20% on any ad week-over-week",
"Frequency >4.0 on any prospecting audience",
"New creative CTR <1.2% after 3 days"
]
}
}
ReadyMeta Ads Performance Analyzer
MarkdownUTF-8