Generate or refine Google Ads RSA recommendations using real buyer language from search terms, intent clusters, and winning modifiers. Pulls live data via MCP or works with manual exports.
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
Read first:
- google-ads/references/operator-thesis.md
- google-ads/references/query-patterns.md
- google-ads/references/intent-map.md
- google-ads/references/rsa-playbook.md
- google-ads/references/deliverable-templates.md
Read workspace if available:
- workspace/ads/account.md
- workspace/ads/goals.md
- workspace/ads/intent-map.md
- workspace/ads/queries.md
- workspace/ads/winners.md
- workspace/ads/assets.md
- workspace/ads/learnings.md
Pull via the search tool on google-ads-mcp:
Primary: RSA asset performance:
SELECT
asset.text_asset.text,
asset.type,
ad_group_ad_asset_view.performance_label,
ad_group_ad_asset_view.field_type,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.conversions
FROM ad_group_ad_asset_view
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.impressions DESC
Supplementary: Search terms (for buyer language extraction):
SELECT
search_term_view.search_term,
campaign.name,
metrics.conversions,
metrics.clicks,
metrics.cost_micros
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.conversions > 0
ORDER BY metrics.conversions DESC
LIMIT 200
Retrieval ladder — if the search-term query returns no rows, follow the shared retrieval ladder in data/search-term-retrieval.md. In pmax-fallback mode, use rows for buyer-language extraction only (language signal, not per-term performance). In limited mode, rely on existing asset performance data for copy direction.
Supplementary: RSA ad-level data:
SELECT
campaign.name,
ad_group.name,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad.final_urls,
metrics.impressions,
metrics.clicks,
metrics.conversions
FROM ad_group_ad
WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD'
AND campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
See data/gaql-recipes.md for additional queries.
Ask the user for: - RSA asset report (headlines, descriptions, performance labels) - Or RSA preview from the ads tab - Search terms report (for buyer language extraction)
data/search-term-retrieval.md). In pmax-fallback, use rows for language extraction only. In limited, rely on asset performance data.Trigger: Analysis shows (a) LOW-performing assets that could be replaced, or (b) buyer language patterns not represented in current ads.
Create using drafts/templates/rsa-draft.md:
- Write to workspace/ads/drafts/YYYY-MM-DD-[account-slug]-rsa-refresh.md
- Include specific headlines (≤30 chars) and descriptions (≤90 chars)
- Note pin recommendations (use sparingly)
- Note which assets to consider removing and why
- Source each new asset to the buyer language it came from
- Update workspace/ads/drafts/_index.md
workspace/ads/assets.md — current asset inventory and new recommendationsworkspace/ads/winners.md — high-performing query languageworkspace/ads/queries.md — buyer language patterns