Skip to main content
ClaudeWave
Skill2.8k estrellas del repoactualizado yesterday

google-ads-copy

google-ads-copy generates Google Ads Responsive Search Ad (RSA) copy and runs structured A/B tests to identify high-performing messaging. Use this skill when writing ad headlines and descriptions, creating ad variants, testing different messaging angles, improving click-through rate, or running RSA experiments. The skill grounds copy decisions in business context, industry benchmarks, and conversion data rather than chasing Google's ad-strength score alone.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/nowork-studio/NotFair /tmp/google-ads-copy && cp -r /tmp/google-ads-copy/google-ads/copy ~/.claude/skills/google-ads-copy
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Ad Copy Generator + A/B Tester

Write Google Ads RSA copy and run structured tests to find winning messaging.

## Setup

Read and follow `../shared/preamble.md` (MCP detection, account selection) and `../shared/analysis-principles.md` (evidence requirement, guardrails). Both apply throughout.

## Reference

Read on demand:

- `references/rsa-best-practices.md` — character limits, headline formulas, pinning, A/B mechanics, common mistakes. The source of truth for what to write.
- `references/rsa-testing-lab.md` — how to choose RSA test metrics, diagnose ad-group intent bloat, decide pinning, and avoid chasing Ad Strength over business outcomes.
- `../manage/references/industry-benchmarks.md` — industry CTR/CVR benchmarks for sanity-checking targets.
- `../manage/references/quality-score-framework.md` — only when QS improvement is the explicit goal.

## Business context — non-negotiable input

Every copy decision is grounded in business context. Read `{data_dir}/business-context.json` and `{data_dir}/personas/{accountId}.json` first.

- If either file is missing or empty, recommend `/google-ads-audit` before writing — generic copy that ignores positioning is wasted ad inventory. The full intake procedure (website crawl, schema, bootstrapping) lives in `../audit/references/business-context.md`.
- If the user volunteers new info (new service, changed positioning, seasonal update), merge it in.

How context shapes copy: services map to headline categories; locations earn local-specific headlines (with QS upside); brand voice sets tone and forbidden words; differentiators ARE the value-prop headlines; competitors sharpen positioning (without naming them); seasonality decides urgency vs. evergreen framing; offers feed time-sensitive variants; landing-page content must match (or conversions drop). Personas drive language: their own search-term phrasing in headlines, their pain points in descriptions, their decision-trigger as the CTA angle.

## Ad-strength vs. real performance

Ad strength optimizes for Google's diversity goals, not your conversion rate. The hierarchy: **conversion rate > CTR > CPA > ad strength.** Don't break a high-CTR ad to chase "Excellent". Do treat low ad strength as a useful diversity signal — eight distinct headlines, one per category, no repeats in description bank.

## Pulling what to write from

Copy must be grounded in what already converts. One `runScript` with `ads.gaqlParallel` covers almost any copy job — fan out:

- `ad_group_ad` — current headlines, descriptions, ad-strength, per-ad clicks/CTR/conversions (the baseline to beat)
- `keyword_view` — what's converting and which QS components are weak
- `search_term_view` — the actual phrases customers are typing (the single best language source)
- `campaign` — the CTR/CVR benchmark each variant has to clear

For brand-wide rewrites, correlate everything in one pass. For a single ad group, scope each query with `WHERE ad_group.id = …`. Layer in seasonality and keyword-landscape context from `business-context.json`.

If the user has a CRM or lead-outcome database with the language customers actually use, mine that — customer language beats marketing language every time.

## Competitive copy rules

- **Never** name a competitor in ad copy (policy risk + you do their brand awareness for free).
- **Never** use "best" / "#1" without verifiable substantiation. Google requires it; the Trademark team enforces it.
- **Do** use specific features competitors lack ("Same-Day Service" beats "Better Service"), trust signals ("4.9★ Google · 500+ Reviews"), guarantees, transparent pricing, and location specificity. Verifiable specificity outperforms superlatives.

## RSA mechanics

Google RSA: up to **15 headlines (30 chars max)** and **4 descriptions (90 chars max)**. A single character over = rejected. Always count.

`references/rsa-best-practices.md` is the source of truth for headline formulas, description ordering, and pinning strategy. The compact rule of thumb: pin one Service+Location headline to position 1, one CTA to position 3, leave position 2 unpinned for Google to test value-prop / trust / differentiator headlines, and never pin more than 3 total.

## A/B testing — use the experiments framework

When the user wants to test, use the MCP server's experiment tooling rather than the old "deploy two paused ads side by side" pattern:

- **Ad-copy A/B** — `createAdVariationExperiment` is the dedicated tool for variation testing at the ad level. It manages the split, the lift comparison, and the read-back.
- **Larger creative shifts** (different angle, different persona target, different LP destination) — `createExperiment` + `addExperimentArms` + `scheduleExperiment`. Monitor with `listActiveExperiments` and `listExperimentAsyncErrors`. Decide endgame with `endExperiment`, `graduateExperiment`, or `promoteExperiment`.
- **Single ad-group, two variants, no traffic split** — paused-then-enabled twin ads in the same ad group is still acceptable for low-stakes copy iteration, but it has no statistical engine behind it. Prefer the experiment path when the decision matters.

Each variant must test a **meaningfully different angle** — not word swaps. "Trust & Expertise" vs. "Speed & Convenience" vs. "Price & Value" is a real test; "Call Today" vs. "Call Now" is noise.

Before writing variants, read `references/rsa-testing-lab.md` when the request mentions testing, pinning, Ad Strength, low CTR/CVR, or mixed-intent ad groups. It encodes the generalized pattern that many RSA problems are really ad-group/query-theme problems.

When calling a winner, the underlying question is the same regardless of mechanism: did the variant win on conversion rate (or CPA), backed by enough sample to trust the difference? Less than ~100 clicks per variant is too early. ≥20% relative CTR or CVR delta is meaningful. 2× CVR gap is decisive immediately. The experiments framework's own significance signals are the cleanest input — defer to them when pre
geminiSkill

>

google-ads-auditSkill

Google Ads account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run an audit before. Also trigger proactively when other ads skills detect that business-context.json is missing.

google-ads-landingSkill

Score and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Page Experience component, or compare an ad group's messaging against its landing page. Trigger on "landing page audit", "landing page score", "landing page quality", "why is my conversion rate low", "LPX", "landing page experience", "ad to page match", or when `/google-ads-audit` surfaces a high-CTR / low-CVR ad group.

google-adsSkill

Manage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings.

meta-ads-auditSkill

Meta Ads (Facebook + Instagram) account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other Meta ads skills reuse. Trigger on "audit my Meta ads", "audit my Facebook ads", "Meta ads audit", "set up my Meta ads", "onboard Meta", "Meta account overview", "how's my Meta account", "Meta health check", "what should I fix in my Facebook ads", or when the user is new to NotFair Meta and hasn't run an audit before. Also trigger proactively when other Meta ads skills detect that meta business-context.json is missing.

meta-adsSkill

Manage Meta Ads (Facebook + Instagram) — performance, ROAS, CPM, frequency, audience overlap, learning phase, creative fatigue, budgets, ad sets, campaigns, ads. Use for any mention of Meta Ads, Facebook Ads, Instagram Ads, ROAS, CPM, ad spend, or campaign settings on Meta.

upgradeSkill

>

broken-link-checkerSkill

>