Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/swastik023-google-ads-copy
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, writing, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
google-ads-copy- Description
- Generate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.
- License
- MIT
- Instructions
- 90 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "google-ads-copy" does not match folder "copy"
Files (4)
- SKILL.md
- evals.json · evals/
- rsa-best-practices.md · references/
- rsa-testing-lab.md · references/
SKILL.md (first lines)
# 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. Choose available read capabilities for the evidence relevant to the requested copy:
- `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.
## Copy output contract
Every proposal needs a small decision record, not just a block of headlines:
- A **concept ID** and one-sentence hypothesis: `persona × motivation × angle`.
- A **claim ledger** for every proof, offer, rating, guarantee, price, or superlative: exact source (account data, business context, approved landing page, or user-provided evidence) and whether it is approved for ad use.
- Complete RSA assets with character counts and pin positions, plus a distinct challenger concept when testing.
Do not turn a vague request into fabricated proof. If a claim is attractive but unsupported, label it `needs_substantiation` and write a claim-free alternative. A citation to a competitor, an unverified review site, or general industry knowledge is not approval to use a claim in an ad.
## 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, define the hypothesis, traffic split, measurement,
and decision rule, then check which experiment capabilities the live connection
supports. Ad-copy tests and larger changes to audience or landing page may need
different designs. Running two ads side by side without a controlled split is
observational evidence; do not present it as a randomized experiment.
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.
Before launch, record one primary metric, any guardrail metric (for example CPA or qualified-lead rate), the planned minimum exposure or duration, and the decision rule. Do not peek and declare a winner from an early gap: less than ~100 clicks per variant is usually too early, and even a 2× CVR gap still needs enough conversions and a check for recent changes. The experiment framework's own significance signals are the cleanest input — defer to them when present.
After a winner: pause the loser, then iterate against the winner. Never stop testing.
## Operating principles
1. **Business context is non-negotiable.** No `business-context.json` / `personas` → recommend `/google-ads-audit` before writing.
2. **Confirm before deploying.** Show the exact copy, character counts per asset, and pin positions. Get a yes, then push.
3. **Check reversibility.** Record the original state and only promise rollback when the current capability supports it.
4. **Differentiate, don't imitate.** Generic copy that could belong to any competitor is a wasted ad slot.
5. **Defer to `/google-ads`** for bid / budget / keyword work — this skill writes copy and runs creative experiments only.From Swastik023/marketing-api-automation-mcp, MIT.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from Swastik023
- 0.516score
diagnose-pending
Swastik023
Diagnose Kubernetes Pending Pods and Unschedulable failures caused by node CPU/memory exhaustion, taints/tolerations, affinity constraints, or…
SkillBFreshness: BClaude Code +9 - 0.516score
diagnose-deadlock
Swastik023
Diagnose PostgreSQL table deadlocks, transaction lock contention chains, blocked backend PIDs, and conflicting lock modes.
SkillBFreshness: BClaude Code +9 - 0.516score
diagnose-crashloop
Swastik023
Diagnose Kubernetes Pod CrashLoopBackOff incidents, identify root causes (OOMKilled, configuration error, exit code failures, liveness probe failure), and…
SkillBFreshness: BClaude Code +9 - 0.516score
diagnose-replication-lag
Swastik023
Diagnose PostgreSQL physical and logical streaming replication lag, WAL sender stalls, network saturation, and replay bottlenecks on read replicas.
SkillBFreshness: BClaude Code +9 - 0.516score
diagnose-oom
Swastik023
Diagnose Kubernetes Out-Of-Memory (OOMKilled) events, evaluate container memory limits against working set spikes, and formulate evidence-backed scaling…
SkillBFreshness: BClaude Code +9 - 0.516score
detect-privilege-escalation
Swastik023
Detect container privilege escalation, root UID execution, dangerous Linux capabilities (CAP_SYS_ADMIN), and host namespace mounting.
SkillBFreshness: BClaude Code +9
Cite this page
google-ads-copy skill. Agent Mart. https://agentmart.dev/skills/swastik023-google-ads-copy (last updated 2026-10-24)