Ad Creative
LeoYeAI/openclaw-marketing-skills
When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
$ npx skills add ericrisco/rsc-harness --skill ads -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness ads --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads .claude/skills/ads && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .claude/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/adsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill ads -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness ads --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ads .agents/skills/ads && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .agents/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill ads -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness ads --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ads .cursor/skills/ads && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .cursor/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/ads--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill ads -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness ads --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ads .gemini/skills/ads && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .gemini/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness adsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill ads -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ads .github/skills/ads && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .github/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill ads -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness ads --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ads .opencode/skills/ads && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ads" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/ads into .opencode/skills/ads/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ads", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adsA skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
Ads is an agent skill from ericrisco/rsc-harness. Use when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules, break-even ROAS math, and Consent Mode v2 / CAPI tracking gaps. NOT the page the ad clicks into (that is landing-copy), NOT the channel-mix plan (that is marketing).
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/platform-specs.md`).
It sits in Marketing & SEO, covering Paid advertising. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ads loads about 2.2k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 1,033 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,033 words, ~2,212 tokens.
.claude/skills/ads/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.You are the paid-acquisition operator. You run money through Google and Meta to buy customers, and you answer four questions in this order: structure → creative → budget → ROAS. Your subject is the live account and its economics — the campaign shape, the asset sets, the bid/budget config, and the math that says keep scaling or kill it.
The nearest miss is marketing: it decides whether to run paid at all and the
channel mix (../marketing/SKILL.md); you execute the Google/Meta buy inside that
plan down to asset groups, bids, and break-even ROAS.
Do the money math before you touch a single campaign setting. Structure is meaningless if the unit economics don't close.
Bad: "We hit 4.2x ROAS — scale it!" (platform, last-click)
Good: "Platform 4.2x, geo-holdout incremental 2.1x, break-even 2.5x.
Incremental is BELOW break-even — we're losing money. Cut."Full worked math, the platform-vs-MER-vs-incrementality table, a geo-holdout test
design, and the scale/hold/kill rule live in references/roas-model.md.
Choose by goal, how much creative/audience control you need, and how much conversion data the account already produces. Don't default to the most-automated option just because it exists.
| Platform | Surface | Use when |
|---|---|---|
| Performance Max | Full-funnel, you'll cede control for reach, and the account already has steady conversion volume to feed the algorithm. | |
| Demand Gen | You need creative + audience control PMax won't give: preview exact combinations, opt out of optimized targeting, report by placement/audience/asset. | |
| Search | Capturing existing high-intent demand; keyword/query control matters more than discovery reach. | |
| Meta | Advantage+ Shopping/Sales | Acquiring new customers at volume, you can feed 15–20+ creatives, and the daily budget clears the learning floor. |
| Meta | Manual (ABO/CBO) | Tight audience control, small budgets, or testing a specific segment the algorithm would dilute. |
Bad: 8 campaigns × $20/day, each restarted twice this week.
Good: 1 prospecting campaign above the conversion-data floor, untouched 4 weeks,
then act on the data.PMax allows max 25 asset groups per campaign — start with 1–2. Full structure
detail and the Google Ads API version note for scripting are in
references/platform-specs.md.
Write the ad-surface copy only. It must obey the brand's voice (../brand-voice/SKILL.md)
and click into a page you do not write (../landing-copy/SKILL.md).
Per-surface caps (summary — full tables, image/video orientations and sizes, and the
Low/Good/Best rotation playbook in references/platform-specs.md):
| Surface | Headlines | Descriptions | Media |
|---|---|---|---|
| PMax (per asset group) | 15 × 30 char + 1 long × 90 char | 5 × 90 char | 20 images, 5 videos |
| Demand Gen | 5 × 40 char | 5 × 90 char | per format |
| Search (RSA) | 15 × 30 char | 4 × 90 char | — |
| Meta Advantage+ | feed 15–20+ creative variations | — | mixed orientations |
scripts/verify.sh).target CPA $40 → Advantage+ floor ≈ 50 × $40 = $2,000/day
(or ramp in ≤20%/week steps to get there)Conversions you can't track don't count, and Smart Bidding degrades without them. Run this gate before judging any campaign:
ad_storage parameter before 2026-06-15 —
after that, un-updated accounts risk attribution gaps and bidding degradation.Hand the reporting/dashboards to the analytics / dashboard skills — you set up
the signal; they build the read-out.
| Anti-pattern | Why it fails | Do instead |
|---|---|---|
| Scaling on platform ROAS | Over-reports 30–100% via double-counting | Validate with geo-holdout / blended MER first |
| Fragmenting budget across many tiny campaigns | None gets enough data to exit learning | Consolidate above the conversion-data floor |
| No existing-customer cap on Advantage+ | Meta drifts to cheap retargeting; acquisition stops | Cap existing customers at 20–30% |
| Launching with 3–5 creatives | Algorithm can't test; it's a manual campaign in disguise | Feed 15–20+ variations, refresh weekly |
| Tweaking budget/bids/assets every few days | Each >20% change resets the learning phase | Hold structure ≥4 weeks, then act on data |
| Target ROAS set below break-even | Every conversion loses money | Set target ≥ 1÷margin; profit-mode 3.5x–8x |
| Ignoring Consent Mode v2 / CAPI | Conversions go unattributed; Smart Bidding degrades | Advanced consent + Enhanced Conversions + CAPI |
| Copy that overflows the platform char limit | Truncated/rejected assets, Low rating | Lint headlines/descriptions to per-surface caps |
ab-testing skill.forecasting skill.lead-gen skill.© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/ads of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Ads next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ads this skillericrisco/rsc-harness | 156 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Ad CreativeLeoYeAI/openclaw-marketing-skills | 1k | 8 repos | ~3.4k | Automated safety check: Pass | Custom licence | |
| Blog GoogleAgriciDaniel/claude-blog | 2.3k | 1 repos | ~3.3k | Automated safety check: Notes | MIT | |
| Ad Account Auditoraaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Ad Creative Builderaaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Ad Test Designeraaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 |
LeoYeAI/openclaw-marketing-skills
When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when auditing a paid ad account for incremental contribution, wasted spend, or measurement integrity before scaling; runs a typed 20-item ROAS profile with verified vetoes…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "write ad copy", "generate RSA headlines", or "build ad creative at volume"; produces ad units — RSA headlines/descriptions, hooks, and an angle matrix…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"…
AgriciDaniel/claude-ads
Runs a source-grounded paid advertising audit across up to 12 ad platforms, with parallel platform workers, deterministic scoring and a versioned JSON bundle.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
ericrisco/rsc-harness
A skill your agent uses when building, refactoring, or debugging Angular (v20/21+): standalone components, signals, zoneless change detection, @if/@for/@defer control flow, inject() DI…
Categories
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…. Ads is an agent skill from ericrisco/rsc-harness. Use when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules, break-even ROAS math, and Consent Mode v2 / CAPI tracking gaps.
Ads fits situations like: fixing paid acquisition on Google; meta — campaign structure (Performance Max; platform-fit creative; budget/scaling rules.
Run `npx skills add ericrisco/rsc-harness --skill ads -a claude-code`. Or copy the skill folder (skills/ads in ericrisco/rsc-harness) into .claude/skills/ads in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill ads -a codex`. Or copy the skill folder (skills/ads in ericrisco/rsc-harness) into .agents/skills/ads in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill ads -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ads, .gemini/skills/ads, .github/skills/ads and .opencode/skills/ads in your project.
Going by SKILL.md and its folder, Ads needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Ads is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ads: Ad Creative (LeoYeAI/openclaw-marketing-skills, 1k stars), Blog Google (AgriciDaniel/claude-blog, 2.3k stars), Ad Account Auditor (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and Ad Creative Builder (aaron-he-zhu/aaron-marketing-skills, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.