Google Ads Claude skill

Ad Copy Performance Ranker

Ad Copy Performance Ranker is a Claude skill that analyzes responsive search ads in Google Ads. It queries RSA headlines, descriptions, ad strength and performance through the gaql action, ranks ads by CTR and conversion rate, compares ad strength with real results and suggests new headlines based on winning patterns.
Google AdsIncludes Sample Data4 files
Download Skill

What Ad Copy Performance Ranker does

Ad Copy Performance Ranker is a Claude skill that analyzes responsive search ads in Google Ads. It queries RSA headlines, descriptions, ad strength and performance through the gaql action, ranks ads by CTR and conversion rate, compares ad strength with real results and suggests new headlines based on winning patterns.

Use it to

  • Find the RSAs that drive conversions
  • Check whether Excellent ad strength matches performance
  • Get headline ideas based on your best ads

Example request

Hey Claude, I just added the "ad-copy-performance-ranker" skill. Can you analyze my RSA ads and tell me which headlines and descriptions are working?

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
 
Run this GAQL query with the Google Ads MCP `gaql` action (resource: `ad_group_ad`):
 
```
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 (ads are created PAUSED; confirm with the user first)
- `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
Ready
UTF-8

How to use Ad Copy Performance Ranker with Claude

  1. Download the ZIP from this page. It contains a ad-copy-performance-ranker folder with SKILL.md, HOW_TO_USE.md, sample_input.json, expected_output.json. No account is needed to download it.
  2. Add the folder to Claude as a skill, or paste the contents of SKILL.md into a conversation.
  3. Connect the Google Ads MCP server so Claude can pull live data. Each server page has setup steps for Claude, ChatGPT, Claude Code, Cursor, Gemini CLI and Codex.
  4. Ask Claude for the task in plain language, like the example request above.

Frequently Asked Questions

Common questions about Ad Copy Performance Ranker and how to use it with Claude.

The skill works from ad-level metrics returned by the gaql query. For individual asset details it asks you to export the asset report from the Google Ads interface and share it.

Only if you ask and confirm. New ads created with create_responsive_search_ad are created PAUSED, so nothing serves until you enable them.

Click Download Skill on this page. You get a ZIP file with a ad-copy-performance-ranker folder containing SKILL.md plus HOW_TO_USE.md, sample_input.json and expected_output.json. Downloading does not require an InsightfulPipe account.

Not to download or read it, and you can paste exported data into Claude. For Claude to pull live data, connect the Google Ads MCP server, which needs an InsightfulPipe plan. Plans start at $29.99/month with a 7-day free trial.

Write actions only work on accounts connected with Read & Write access. Owners, admins and operators can turn individual actions on or off per connected account; disabled actions are hidden from Claude and blocked. Destructive actions such as delete, remove and archive are off by default.

Ready to connect your data?

Join hundreds of agencies and brands using InsightfulPipe to connect marketing data to AI.

Start a free trial today.