---
name: actcenter_rsa-review
description: Review and refresh Responsive Search Ads (RSAs) in Google Ads. Audits character counts, pinning, repetition, asset diversity, and Ad Strength. Identifies fatigued or low-performing combinations and produces replacement headlines and descriptions. Use whenever the user says "RSA review", "ad strength is poor", "refresh ads", "novos RSAs", "headlines novos", "criativos novos pra search", "audit my ads", "ads aren't getting impressions", or pastes a list of existing headlines/descriptions. Outputs an Editor-ready CSV with new RSAs and a critique of the existing ones.
metadata:
  type: skill
  version: 1.0
  owner: actcenter
---

# actcenter_rsa-review

Audit + refresh skill for Responsive Search Ads. Inputs are the current RSAs and the account's recent performance signal. Outputs are: a critique of what's in the account, replacement headlines and descriptions, an Editor-ready CSV, and the test plan.

## When to use

Trigger on any of:

- "Audit / refresh / review RSAs"
- "Ad Strength is Poor / Average — fix it"
- "New headlines for [client / ad group]"
- "Refresh creatives for Search"
- "Headlines não estão performando"
- User pastes a list of current headlines + descriptions
- "Why are my ads not serving?"

Do not use for:

- PMax asset groups → different skill (`actcenter_pmax-asset-group`)
- Meta / TikTok / LinkedIn creative → different skill
- Display image creative
- Landing page review

## Inputs the skill expects

Minimum:

1. Current RSAs in the ad group(s) being refreshed — all 15 headlines + 4 descriptions per ad.
2. Account vertical, target audience, primary CTA.
3. Top 3 winning headlines by impressions or by Ad Strength signal (if available).
4. Top 3 search queries the ad group serves on (so the new copy reflects the actual user intent).

Nice-to-have:

5. Brand voice / tone guide.
6. Landing page URL — to confirm message-match.
7. Compliance constraints (e.g., healthcare disclaimers, financial-services restrictions).

## The 7-axis review

For every existing RSA the skill scans:

### 1 — Character compliance
- Headlines ≤ 30 characters. Flag every one over.
- Descriptions ≤ 90 characters. Flag every one over.

### 2 — Variety
- 15 headlines should cover at least 5 angles: benefit, feature, social proof, urgency, CTA, location, brand, problem, price, guarantee.
- Flag if 8+ headlines repeat the same angle (e.g., 12 different ways of saying "free quote").

### 3 — Pinning discipline
- Position 1 pinned headlines: brand or category anchor.
- Position 2: secondary message (location, USP).
- Position 3: CTA.
- Flag over-pinning (limits combinations and depresses Ad Strength).
- Flag empty pin positions where pinning would help message-match.

### 4 — Title Case discipline
- Headlines use Proper / Title Case (Google's UI convention) unless explicitly stylistic.
- Mixed casing in the same ad reads as inconsistent.

### 5 — Punctuation and symbol policy
- One exclamation mark max per ad (Google policy).
- No double punctuation (!!, ??), no all-caps shouting, no emojis in headlines (Google blocks them).
- No em-dash (—). Use hyphen, comma, or rewrite.

### 6 — Message-match to landing page
- Each headline angle should map to copy or proof on the landing page.
- Flag headlines that promise something the LP doesn't deliver (e.g., "Free Inspection" in the ad but no "free" CTA on the page).

### 7 — Ad Strength signal
- Poor / Average / Good / Excellent.
- Excellent isn't the goal — Good with strong message-match outperforms Excellent with mush. But Poor is a serving handicap.

## Output

Two files per run:

### File 1 — `rsa-refresh-{client}-{ad-group}-{YYYY-MM-DD}.csv`

Google Ads Editor format. Columns:

```
Campaign, Ad group, Ad type, Headline 1, Headline 2, ..., Headline 15, Description 1, ..., Description 4, Final URL, Path 1, Path 2, Headline 1 pinned, Headline 2 pinned, Headline 3 pinned
```

15 headlines + 4 descriptions, pinning where appropriate.

### File 2 — `rsa-review-{client}-{ad-group}-{YYYY-MM-DD}.md`

```markdown
# RSA Review — [client] — [ad group] — [YYYY-MM-DD]

## Existing ad — verdict
- **Ad Strength:** [Poor / Average / Good / Excellent]
- **Top problems:** [bullets]
- **Top strengths:** [bullets]

## New RSA — angle map
| Slot | Angle | Headline | Pin |
|---|---|---|---|
| 1 | Brand anchor | … | P1 |
| 2 | Category | … | P1 |
| 3 | Local proof | … | P2 |
| 4 | Benefit 1 | … | — |
| … | … | … | … |
| 15 | CTA | … | P3 |

## Descriptions — angle map
| Slot | Angle | Description |
|---|---|---|
| 1 | Benefit + CTA | … |
| 2 | Trust + proof | … |
| 3 | Differentiator | … |
| 4 | Urgency / CTA | … |

## Compliance notes
- [any disclaimers / forbidden claims / restricted terms]

## Test plan
- A/B: keep the current ad live alongside the new one for 14 days.
- Threshold: 100+ impressions per ad before reading the result.
- Winner criterion: CTR + conv-rate combined.
```

## How to run

```
1. Confirm: which client, which ad group(s), what's the primary conversion goal, what's the LP URL.
2. Read the current RSA. Apply the 7-axis review.
3. Draft 15 new headlines, mapped to 8+ angles, with explicit pin guidance.
4. Draft 4 new descriptions.
5. Validate character counts. Validate punctuation. Validate Title Case.
6. Output both files. Save to /rsa-refresh/{client}/{ad-group}-{date}/.
7. Hand the CSV with a "paste into Editor and pause the losing variant after 14d" note.
```

## Voice for the copy itself

Adapt to the brand and vertical. Default principles:

- Specific over generic. "Same-Day Roof Repair" beats "Quality Roofing".
- One promise per headline.
- Verbs in present tense.
- No em-dash. No emojis. No "amazing / unbeatable / world-class".
- Local + numeric proof when available ("Serving Dallas Since 1998", "5,000+ Roofs Repaired").

## Boundaries

- Don't fabricate proof points. If the user can't confirm "5,000+ roofs", don't write that headline.
- Don't violate vertical-specific policy (healthcare, financial, legal, alcohol, etc.). Ask if uncertain.
- Don't pin all 15 headlines. Heavy pinning is a serving handicap.
- Maintain 14-day test cooldown — don't refresh the same ad group twice in two weeks unless the user names a reason.
