Ad Copy Performance Ranker
SKILL.md
HOW_TO_USE.md
sample_input.json
expected_output.json
skillsgoogle-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
# Ad Copy Performance Ranker
Find your winning headlines and descriptions. Kill the losers. Write better ads based on what actually works.
## Core Philosophy
**Not all headlines are equal.** Google's RSA system tests combinations, but you need to know which assets are carrying the weight and which are dragging you down.
**The Ad Copy Questions:**
1. Which headlines/descriptions are driving clicks and conversions?
2. Which assets should be replaced?
3. What patterns make winning copy?
4. Is my ad strength helping or misleading me?
---
## MCP Integration
### Required Data Pull
Use the Google Ads MCP `ad_group_ad` action with this GAQL query:
```
SELECT
campaign.id,
campaign.name,
ad_group.id,
ad_group.name,
ad_group_ad.ad.id,
ad_group_ad.ad.type,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad.responsive_search_ad.path1,
ad_group_ad.ad.responsive_search_ad.path2,
ad_group_ad.ad.final_urls,
ad_group_ad.ad_strength,
ad_group_ad.status,
ad_group_ad.policy_summary.approval_status,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.cost_micros,
metrics.ctr,
metrics.conversions_from_interactions_rate
FROM ad_group_ad
WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD'
AND ad_group_ad.status != 'REMOVED'
AND segments.date BETWEEN '{start_date}' AND '{end_date}'
ORDER BY metrics.impressions DESC
```
### Data Requirements
**From MCP Response:**
- `ad_group_ad.ad.responsive_search_ad.headlines` - Array of headline assets
- `ad_group_ad.ad.responsive_search_ad.descriptions` - Array of description assets
- `ad_group_ad.ad_strength` - EXCELLENT, GOOD, AVERAGE, POOR
- `metrics.impressions`, `metrics.clicks`, `metrics.conversions`
- `metrics.ctr`, `metrics.conversions_from_interactions_rate`
**Note on Asset-Level Performance:**
Google Ads API provides ad-level metrics, not individual headline/description performance. For asset-level data:
- Use Google Ads UI "View asset details" report
- Analyze patterns across ads that share similar headlines
- Compare ad strength vs actual performance
**User Should Provide:**
- Target metrics (CTR benchmark, conversion rate benchmark)
- Date range (default: last 30 days)
- Industry/vertical for context
---
## Analysis Framework
### Tier 1: Ad-Level Performance
**Ad Performance Ranking:**
| Tier | CTR vs Avg | CVR vs Avg | Assessment |
|------|------------|------------|------------|
| Star | +20%+ | +20%+ | Study and replicate |
| Above Avg | +10-20% | +10-20% | Solid performer |
| Average | Β±10% | Β±10% | Room to improve |
| Below Avg | -10-20% | -10-20% | Needs attention |
| Underperformer | -20%+ | -20%+ | Replace or revise |
---
### Tier 2: Ad Strength Analysis
**Ad Strength Reality Check:**
| Ad Strength | What Google Says | What Actually Matters |
|-------------|------------------|----------------------|
| EXCELLENT | Optimal setup | May or may not perform |
| GOOD | Meets requirements | Usually acceptable |
| AVERAGE | Missing elements | Check performance data |
| POOR | Needs work | Fix if data agrees |
**Key Insight:** Ad Strength β Performance. An "Excellent" ad can underperform a "Good" one. Always prioritize actual metrics over ad strength scores.
---
### Tier 3: Headline Pattern Analysis
**Winning Headline Patterns to Look For:**
| Pattern | Example | Why It Works |
|---------|---------|--------------|
| Benefit-First | "Save 50% Today" | Immediate value |
| Action-Oriented | "Get Your Free Quote" | Clear CTA |
| Social Proof | "Trusted by 10,000+" | Credibility |
| Urgency | "Limited Time Offer" | FOMO |
| Question | "Looking for [X]?" | Relevance |
| Specificity | "24-Hour Delivery" | Concrete promise |
**Weak Headline Patterns:**
| Pattern | Example | Problem |
|---------|---------|---------|
| Generic | "Welcome to Our Site" | No differentiation |
| Vague | "Quality Products" | Means nothing |
| Feature-Only | "We Have Inventory" | No benefit to user |
| Too Long | "..." (truncated) | Message cut off |
---
### Tier 4: Description Analysis
**Description Best Practices:**
| Element | Good Practice | Poor Practice |
|---------|--------------|---------------|
| Length | Uses 80+ characters | Short, wasted space |
| CTA | Clear action included | No direction |
| Benefits | Multiple benefits listed | Feature dump |
| Differentiation | Why choose you | Generic claims |
---
## Output Format
### Executive Summary
```
AD COPY HEALTH: π’/π‘/π΄
Ads Analyzed: XX
Period: [dates]
Avg CTR: X.XX%
Avg CVR: X.XX%
Top Performing Ad: [Campaign > Ad Group > Ad ID]
Ads Needing Attention: XX
```
---
### Top Performing Ads
| Rank | Campaign | Ad Group | CTR | CVR | Ad Strength | Status |
|------|----------|----------|-----|-----|-------------|--------|
| 1 | [name] | [name] | X.XX% | X.XX% | EXCELLENT | Star |
| 2 | [name] | [name] | X.XX% | X.XX% | GOOD | Star |
| 3 | [name] | [name] | X.XX% | X.XX% | GOOD | Above Avg |
**Winning Headlines from Top Ads:**
1. "[Headline text]" - appears in X of top Y ads
2. "[Headline text]" - appears in X of top Y ads
3. "[Headline text]" - appears in X of top Y ads
**Winning Descriptions from Top Ads:**
1. "[Description text]"
2. "[Description text]"
**Patterns Observed:**
- [Pattern 1: e.g., "Top ads use specific numbers"]
- [Pattern 2: e.g., "Strong CTAs in position 1"]
- [Pattern 3: e.g., "Benefit-first headlines dominate"]
---
### Underperforming Ads
| Campaign | Ad Group | CTR | CVR | Ad Strength | Issue |
|----------|----------|-----|-----|-------------|-------|
| [name] | [name] | X.XX% | X.XX% | POOR | Low CTR |
| [name] | [name] | X.XX% | X.XX% | AVERAGE | Low CVR |
**Common Problems:**
- [Issue 1: e.g., "Generic headlines without differentiation"]
- [Issue 2: e.g., "No clear CTA in descriptions"]
**Recommended Actions:**
1. **[Ad Group]**: Replace headlines X, Y with [suggested approach]
2. **[Ad Group]**: Add benefit-focused description
3. **[Ad Group]**: Pin strong headline to position 1
---
### Ad Strength vs Performance Analysis
| Ad Strength | Avg CTR | Avg CVR | Count | Reality |
|-------------|---------|---------|-------|---------|
| EXCELLENT | X.XX% | X.XX% | XX | [Assessment] |
| GOOD | X.XX% | X.XX% | XX | [Assessment] |
| AVERAGE | X.XX% | X.XX% | XX | [Assessment] |
| POOR | X.XX% | X.XX% | XX | [Assessment] |
**Key Finding:** [Observation about ad strength correlation with performance]
---
### Headline Audit
**Headlines by Frequency (Across All Ads):**
| Headline | Used In | Avg CTR When Used | Assessment |
|----------|---------|-------------------|------------|
| "[text]" | X ads | X.XX% | Keep |
| "[text]" | X ads | X.XX% | Keep |
| "[text]" | X ads | X.XX% | Test replace |
| "[text]" | X ads | X.XX% | Replace |
**Headline Gaps:**
- Missing: [Type of headline, e.g., "No urgency-based headlines"]
- Missing: [Type of headline, e.g., "No social proof headlines"]
**Suggested New Headlines:**
1. "[Suggested headline]" - adds [missing element]
2. "[Suggested headline]" - adds [missing element]
3. "[Suggested headline]" - adds [missing element]
---
### Description Audit
**Descriptions by Performance:**
| Description | Avg CTR | Avg CVR | Assessment |
|-------------|---------|---------|------------|
| "[text snippet...]" | X.XX% | X.XX% | Star |
| "[text snippet...]" | X.XX% | X.XX% | Solid |
| "[text snippet...]" | X.XX% | X.XX% | Replace |
**Description Gaps:**
- [Missing element, e.g., "No descriptions mention free shipping"]
- [Missing element, e.g., "No urgency in descriptions"]
---
### Quick Wins
```
ACTION ADS EST. IMPACT
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Replace weak headlines XX +XX% CTR
Add missing headline types XX Improved coverage
Fix description CTAs XX +XX% CVR
Address policy issues XX Increase impressions
```
---
### Creative Recommendations
**Based on Top Performers, Test These:**
**Headlines:**
1. "[Suggested headline]" - mirrors winning pattern
2. "[Suggested headline]" - adds variety
3. "[Suggested headline]" - competitive angle
**Descriptions:**
1. "[Suggested description]" - benefit stack
2. "[Suggested description]" - urgency + CTA
**Pinning Strategy:**
- Pin "[best headline]" to Position 1
- Pin "[brand headline]" to Position 2 or 3
- Leave other positions unpinned for testing
---
## Composability
**Chains from:**
- `keyword-performance-analyzer` - Keyword themes inform ad copy relevance
**Chains to:**
- MCP `create_responsive_search_ad` - Can create new ads based on winning patterns
- `ab-test-designer` - Test new creative variations
---
## Limitations
**I can assess:**
- Ad-level performance (CTR, CVR, conversions)
- Ad strength ratings
- Headline/description text and patterns
- Policy status
- Performance vs account average
**I cannot assess (API limitation):**
- Individual headline/description performance scores
- Combination-level performance
- Impression share by asset
- Asset-level Quality Score
**For asset-level details:**
- Use Google Ads UI β Assets β "View asset details"
- Export asset performance report manually
- Provide as supplementary input
---
## Quality Checklist
Before delivering analysis:
- [ ] Ads ranked by CTR and CVR
- [ ] Ad strength vs performance comparison included
- [ ] Top headline patterns identified
- [ ] Underperformers flagged with specific issues
- [ ] Suggested new headlines provided
- [ ] Quick wins prioritized by impact
- [ ] Composability next steps noted
ReadyAd Copy Performance Ranker
MarkdownUTF-8Verified