Source profileQuality 83/100

nowork-studio/NotFair/google-ads/copy/SKILL.md

google-ads-copy

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.

Source repository stars
3,314
Declared platforms
0
Static risk flags
0
Last source update
2026-07-31
Source checked
2026-08-04

Decision brief

What it does—and where it fits

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

Best for

  • Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/nowork-studio/NotFair --skill "google-ads/copy"
Safe inspection promptEditorial

Inspect the Agent Skill "google-ads-copy" from https://github.com/nowork-studio/NotFair/blob/e682cc9f630d242d78a696763ab5f5fd852eff28/google-ads/copy/SKILL.md at commit e682cc9f630d242d78a696763ab5f5fd852eff28. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Setup

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

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

    Business context — non-negotiable input

    Every copy decision is grounded in business context. Read {datadir}/business-context.json and {datadir}/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 ..…If the user volunteers new info (new service, changed positioning, seasonal update), merge it in.Every copy decision is grounded in business context. Read {datadir}/business-context.json and {datadir}/personas/{accountId}.json first.
  3. 03

    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, n…

    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 dive…
  4. 04

    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:

    adgroupad — current headlines, descriptions, ad-strength, per-ad clicks/CTR/conversions (the baseline to beat)keywordview — what's converting and which QS components are weaksearchtermview — the actual phrases customers are typing (the single best language source)
  5. 05

    Competitive copy rules

    Never name a competitor in ad copy (policy risk + you do their brand awareness for free).

    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 outp…

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score83/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars3,314SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
nowork-studio/NotFair
Skill path
google-ads/copy/SKILL.md
Commit
e682cc9f630d242d78a696763ab5f5fd852eff28
License
MIT
Collected
2026-08-04
Default branch
main
View the original 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/BcreateAdVariationExperiment 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 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. Every write is undoable for 7 days via undoChange (assuming the entity hasn't been modified since).
  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.

Alternatives

Compare before choosing

Computed 10042,968

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10023,781

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 1004,922

dotnet/skills

migrate-vstest-to-mtp

Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

Computed 100165

JasonColapietro/suede-creator-skills

suede-ab-testing

Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).