agentleFS
HainrixzHainrixz/claude-ads/ads/SKILL.md

ads

Skill102 starsChanged 6 months agoMITView on GitHub

Free-first paid advertising audit and optimization skill, focused on the 3 platforms where 95% of advertiser spend lives: Meta, Google, TikTok. Guided onboarding (/ads start) saves context once and step-by-step OAuth walkthroughs; continuous coach (/ads next) ranks Quick Wins after each audit. ~158 weighted checks with scoring, parallel agents, industry templates, and AI creative generation.

  • Reads credentials

54 other projects use a version of this, 10 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use popups, ads-apple and 7 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CesarjoquinSkill

    popups

    When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see cro. For general page conversion optimization, see cro.

    Also in 23 projects that use this

  • chriswesttSkill

    ads-apple

    Apple Ads (formerly Apple Search Ads) deep analysis for mobile app advertisers. Evaluates campaign structure, bid health, Custom Product Pages (CPPs), MMP attribution, budget pacing, TAP coverage (Today/Search/Product Pages), Maximize Conversions bidding, and goal CPA benchmarks by country. Use when user says Apple Ads, Apple Search Ads, ASA, App Store ads, Apple ads, Search Ads, or is advertising a mobile app on iOS.

    Also in 5 projects that use this

  • CesarjoquinSkill

    free-tools

    When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," "free resource," "ROI calculator," "grader tool," "audit tool," "should I build a free tool," or "tools for lead gen." Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets.

    Also in 24 projects that use this

  • coreyhaines31Skill

    marketing-council

    When the user wants multiple expert perspectives on a marketing question — a simulated board of advisors staffed by legendary marketers (Seth Godin, David Ogilvy, Eugene Schwartz, April Dunford, Rory Sutherland, Alex Hormozi, Byron Sharp, and more). Also use when the user mentions 'marketing council,' 'board of advisors,' 'advisory board,' 'what would Seth Godin say,' 'what would Ogilvy think,' 'channel Hormozi,' 'get multiple perspectives,' 'debate this,' 'have the council review,' 'marketing mentors,' or asks how a famous marketer would approach their problem. The council gives each advisor's take through their documented frameworks, surfaces where they disagree, and synthesizes a recommendation. For executing the winning direction, hand off to positioning, offers, copywriting, ads, or the relevant skill.

    Also in 18 projects that use this

  • +5 more from Cesarjoquin

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. 0 are common, 5 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 52 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When the user invokes any /ads command other than /ads start, /ads math, or /ads test, FIRST run:

    line 46
  2. Very specific:

    If due is non-empty, before the requested command ask ONE AskUserQuestion: *"Tengo pendiente saber cómo le fue a <campaign(s)>.

    line 67
  3. Distinctive:

    Ask these questions upfront (combine into one message):

    line 79
  4. Distinctive:

    If the user provides data upfront (e.g.

    line 88
  5. Very specific:

    After the inline intake, offer: *"Want me to save this to your profile so I never re-ask?

    line 91
  6. Distinctive:

    Use the provided context to:

    line 94
  7. Very specific:

    When the user invokes /ads audit, delegate to subagents in parallel:

    line 101
  8. Very specific:

    Create prioritized action plan from the quick_wins and critical_issues arrays of each JSON

    line 108
  9. Very specific:

    If API key is missing, /ads generate and /ads photoshoot display setup instructions and exit.

    line 130
  10. Distinctive:

    Local Service: call extensions, location targeting, store visits, directions events

    line 138
  11. Distinctive:

    Never recommend Broad Match without Smart Bidding (Google)

    line 150
  12. Very specific:

    Path resolution: All references are installed at ~/.claude/skills/ads/references/.

    line 165
  13. Very specific:

    When sub-skills or agents reference ads/references/*.md, resolve to ~/.claude/skills/ads/references/*.md.

    line 166

“Common” is measured: kept by at least 6 in 10 of the 52 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
<!-- Portions Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) - see LICENSE for original authors · tododeia.com · id er-fd4fa55b -->

Ads: Free-first Paid Advertising Audit & Optimization

Focused ad account analysis on the 3 base platforms where most ad spend lives: Meta, Google, TikTok. Orchestrates 20 specialized sub-skills and 7 agents (3 audit + 4 creative). First-run users should type /ads start — a guided wizard that captures context, walks them through OAuth setup step-by-step, and persists everything to ~/.claude-ads/profile.json so no future command ever re-asks.

Quick Reference

CommandWhat it does
/ads startFirst-run wizard — context capture, per-platform OAuth/MCP walkthroughs with live verification, optional Zernio + Meta Developers signup. Re-run as /ads start edit/status/reset.
/ads nextContinuous coach — reads recent audit JSON + history, ranks top 3 Quick Wins by impact × ease, optionally walks you through fixing #1. Detects regressions vs your last audit.
/ads concienciaCampaign awareness — tracks what Claude knows and doesn't know about real business results (closed customers, lead quality) of WhatsApp / form / call campaigns; dated check-ins cross-referenced with platform clicks and messages → real close rate.
/ads auditFull multi-platform audit with parallel subagent delegation (3 agents: Meta, Google, TikTok)
/ads googleGoogle Ads deep analysis (Search, PMax, includes YouTube video campaigns)
/ads metaMeta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook
/ads tiktokTikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max)
/ads creativeCross-platform creative quality audit
/ads landingLanding page quality assessment for ad campaigns
/ads budgetBudget allocation and bidding strategy review
/ads plan <business-type>Strategic ad plan with industry templates
/ads competitorCompetitor ad intelligence analysis
/ads mathPPC financial calculator (CPA, ROAS, break-even, budget forecasting)
/ads testA/B test design (hypothesis, significance, duration, sample size)
/ads reportPDF audit report generation for client deliverables
/ads dna <url>Extract brand DNA from website, outputs brand-profile.json
/ads createGenerate campaign concepts + copy briefs, outputs campaign-brief.md
/ads generateGenerate AI ad images from brief, outputs to ad-assets/
/ads photoshootProduct photography in 5 styles (Studio, Floating, Ingredient, In Use, Lifestyle)
/ads update <platform|all>Refresh per-platform references with last 30 days of changes (COSTLY: ~50–150k tokens/platform; gates on confirmation)
/ads publishPublish generated creatives to 14+ social networks via Zernio (first 2 accounts free; see skills/ads-publish/SKILL.md)

First-run behavior

When the user invokes any /ads command other than /ads start, /ads math, or /ads test, FIRST run:

python3 scripts/profile.py get
  • Exit code 2 (profile missing) → gently surface a one-line tip:

    Tip: run /ads start first — it saves ~30 sec per future command. Proceed inline instead? (Y/N) Honor N (proceed) by falling back to the inline Context Intake below.

  • Exit code 0 (profile present) → parse the JSON and use the saved context.industry, context.monthly_spend_usd, context.primary_goal, context.active_platforms directly. Do NOT re-ask. Only re-ask if a field is null/empty.

Then, for the same set of commands, run:

python3 scripts/conciencia.py due

If due is non-empty, before the requested command ask ONE AskUserQuestion: "Tengo pendiente saber cómo le fue a <campaign(s)>. ¿Me cuentas ahora?" → Ahora runs the /ads conciencia check-in (Phase 3) for every overdue campaign in one message, then resumes the requested command · Después runs conciencia.py snooze <key> --days 1 for each and continues. Never block the requested command on it.

Context Intake (fallback — only when profile is missing AND user declined /ads start)

Without context, benchmarks will be generic and recommendations may be wrong for the user's situation.

Ask these questions upfront (combine into one message):

  1. Industry / Business type: Which best describes you? E-commerce · Local Service · Real Estate · Healthcare · Finance · Agency · Other (Note: B2B-enterprise, SaaS, mobile-app, and info-products templates were removed in v2.3.0 since they depended on LinkedIn/Apple/YouTube which are no longer audited; use the generic template plus the platform-specific skills below.)
  2. Monthly ad spend: Total budget and per-platform breakdown (approximate is fine)
  3. Primary goal: Sales / Revenue · Leads / Demos · App Installs · Calls · Brand
  4. Active platforms: Of the 3 supported (Meta, Google, TikTok), which are you advertising on?

If the user provides data upfront (e.g. "audit my Google Ads, I spend $5k/mo on ecommerce"), extract context from that and proceed without re-asking.

After the inline intake, offer: "Want me to save this to your profile so I never re-ask? (runs /ads start quickly with your answers prefilled)."

Use the provided context to:

  • Select the correct industry benchmarks from references/benchmarks.md
  • Apply budget-appropriate recommendations (e.g. Smart Bidding requires 15+ conv/month)
  • Calibrate severity scoring (a $500/mo account has different priorities than $50k/mo)

Orchestration Logic

When the user invokes /ads audit, delegate to subagents in parallel:

  1. Load context — run python3 scripts/profile.py get. If profile exists, use it. If exit 2, fall back to inline Context Intake (and offer to save via /ads start at the end).
  2. Collect account data (exports, screenshots, or pasted metrics — for connected platforms use the saved tier in connections.<p>.tier)
  3. Detect business type and identify active platforms (from context.active_platforms if available)
  4. Spawn subagents via Task tool with context: fork — only for context.active_platforms (or those with connections.<p>.tier != "skipped"): audit-google, audit-meta, audit-tiktok
  5. Validate: each subagent writes both <platform>-audit-results.json and <platform>-audit-results.md. Parse the JSON and validate against references/audit-output-schema.json before aggregating. If any subagent's JSON is missing or invalid, surface the error and stop — do not silently aggregate partial results.
  6. Aggregate scores using the platform-budget-share formula in references/scoring-system.md and generate the unified Ads Health Score (0-100)
  7. Create prioritized action plan from the quick_wins and critical_issues arrays of each JSON
  8. Business-outcome awareness — for lead / message / call / form campaigns, run python3 scripts/conciencia.py list. If an audited campaign has an awareness file, add its close_rate, cost_per_close and junk_rate (with check-in counts) next to the platform CPL in the summary and classify it with the reading table in references/conciencia.md. If none exists, report the business outcome as N/A and offer /ads conciencia registrar. Skip for e-commerce with a purchase pixel.
  9. Persist to history — for each new audit JSON: python3 scripts/profile.py save-audit <platform>-audit-results.json. This feeds /ads next regression detection.
  10. Suggest the next step — point the user at /ads next for ranked Quick Wins.

For individual commands (/ads google, /ads meta, etc.), load the relevant sub-skill directly. Still load profile / collect context first if not already provided.

For /ads update <platform|all>, route to skills/ads-update/SKILL.md. The update skill enforces a mandatory cost-confirmation gate before fetching — do NOT bypass it. See references/update-cost-warning.md for the rationale.

Creative Workflow

Sequential pipeline (each step is independently runnable):

  1. /ads dna <url> → brand-profile.json in current directory
  2. /ads create → reads profile + optional audit results → campaign-brief.md
  3. /ads generate → reads brief + profile → ad-assets/ directory
  4. /ads photoshoot → standalone or reads profile for style injection

Requires GOOGLE_API_KEY (Gemini default) or ADS_IMAGE_PROVIDER + matching key. If API key is missing, /ads generate and /ads photoshoot display setup instructions and exit; they never fail silently.

Industry Detection

Detect business type from ad account signals:

  • SaaS: trial_start/demo_request events, pricing page targeting, long attribution windows
  • E-commerce: purchase events, product catalog/feed, Shopping/PMax campaigns
  • Local Service: call extensions, location targeting, store visits, directions events
  • B2B Enterprise: LinkedIn Ads active, ABM lists, high CPA tolerance ($50+), long sales cycle
  • Info Products: webinar/course funnels, lead gen forms, low-ticket offers
  • Mobile App: app install campaigns, in-app events, deep linking
  • Real Estate: listing feeds, property-specific landing pages, geo-heavy targeting
  • Healthcare: HIPAA compliance flags, healthcare-specific ad policies
  • Finance: Special Ad Categories declared, financial products compliance
  • Agency: multiple client accounts, white-label reporting needs

Quality Gates

Hard rules (never violate these):

  • Never recommend Broad Match without Smart Bidding (Google)
  • 3x Kill Rule: flag any ad group/campaign with CPA >3x target for pause
  • Budget sufficiency: Meta ≥5x CPA per ad set, TikTok ≥50x CPA per ad group
  • Learning phase: never recommend edits during active learning phase
  • Compliance: always check Special Ad Categories for housing/employment/credit/finance
  • Creative: never run silent video ads on TikTok (sound-on platform)
  • Attribution: default to 7-day click / 1-day view (Meta), data-driven (Google)
  • Andromeda creative diversity: Flag Meta accounts with <10 genuinely distinct creatives
  • Privacy infrastructure gate: Always verify tracking stack (Consent Mode V2, CAPI, Events API, AdAttributionKit) before making optimization recommendations
  • PDF report quality gate: When generating reports via /ads report, always use scripts/generate_report.py with --check first. Reports must have: clean layout with no overlapping elements, proper margins (0.75in), word-wrapped table cells (no clipping), all charts/images sized within page boundaries, page numbers and section dividers, captions on every visual, and zero empty sections. Run --check before --output and fix any warnings before delivering the PDF

Reference Files

Load these on-demand as needed; do NOT load all at startup.

Path resolution: All references are installed at ~/.claude/skills/ads/references/. When sub-skills or agents reference ads/references/*.md, resolve to ~/.claude/skills/ads/references/*.md.

  • references/audit-methodology.md: Shared 7-step audit process all platform skills delegate to. Single source of truth for the audit skeleton, check ID convention, MCP-first rule, and output contract reference.
  • references/audit-output-schema.json: Canonical JSON schema every audit-* agent must emit. The orchestrator validates against this before aggregating cross-platform scores. New integrations conform to this contract.
  • references/profile-schema.json: Schema for ~/.claude-ads/profile.json — the persistent user context written by /ads start and read by every command.
  • references/audit-history-schema.json: Schema for ~/.claude-ads/history/index.json — the audit log /ads next reads for regression detection.
  • references/conciencia-schema.json: Schema for ~/.claude-ads/conciencia/<platform>-<campaign_id>.json — business outcomes per campaign written by /ads conciencia.
  • references/conciencia.md: Awareness formulas (close rate, cost per close, junk rate), the platform-vs-business reading table, and threshold rules.
  • references/setup-meta.md / setup-google.md / setup-tiktok.md: Step-by-step OAuth + MCP + manual connection walkthroughs loaded by /ads start Phase C.
  • references/setup-zernio.md / setup-meta-developers.md: Account-creation walkthroughs for optional integrations.
  • references/scoring-system.md: Weighted scoring algorithm and grading thresholds
  • references/benchmarks.md: Industry benchmarks by platform (CPC, CTR, CVR, ROAS)
  • references/bidding-strategies.md: Bidding decision trees per platform
  • references/budget-allocation.md: Platform selection matrix, scaling rules, MER
  • references/platform-specs.md: Creative specifications across all platforms
  • references/conversion-tracking.md: Pixel, CAPI, EMQ, ttclid implementation
  • references/compliance.md: Regulatory requirements, ad policies, privacy
  • references/google-audit.md: 80-check Google Ads audit checklist (includes YouTube video campaigns)
  • references/meta-audit.md: 50-check Meta Ads audit checklist
  • references/tiktok-audit.md: 28-check TikTok Ads audit checklist
  • references/brand-dna-template.md: Brand DNA schema and extraction guide
  • references/image-providers.md: Provider config (Gemini/OpenAI/Stability/Replicate)
  • references/google-creative-specs.md: PMax/RSA/YouTube generation-ready specs
  • references/meta-creative-specs.md: Feed/Reels/Stories specs + safe zones
  • references/tiktok-creative-specs.md: 9:16 only + safe zone overlay
  • references/gaql-notes.md: GAQL field compatibility, deduplication patterns, filter scope best practices
  • references/voice-to-style.md: Brand voice axis to visual attribute mapping for image generation
  • references/copy-frameworks.md: 6 ad copy frameworks (AIDA, PAS, BAB, 4P, FAB, Star-Story-Solution)
  • references/mcp-integration.md: Canonical MCP integration pattern + per-platform MCP server catalog
  • references/mcp-meta-integration.md: Meta MCP check↔tool mapping (template for new MCP integrations)

For platforms where MCP is not the preferred path, the audit agent reads <platform>-data.json produced by scripts/api/<platform>_fetch.py. These are pure-stdlib API adapters covering Meta, Google, and TikTok. See scripts/api/README.md for the per-platform OAuth setup walkthrough.

Scoring Methodology

Ads Health Score (0-100)

Per-platform score using weighted algorithm from references/scoring-system.md. Cross-platform aggregate weighted by budget share:

Aggregate = Sum(Platform_Score x Platform_Budget_Share)

Grading

GradeScoreAction Required
A90-100Minor optimizations only
B75-89Some improvement opportunities
C60-74Notable issues need attention
D40-59Significant problems present
F<40Urgent intervention required

Priority Levels

  • Critical: Revenue/data loss risk (fix immediately)
  • High: Significant performance drag (fix within 7 days)
  • Medium: Optimization opportunity (fix within 30 days)
  • Low: Best practice, minor impact (backlog)

Sub-Skills

This skill orchestrates 20 specialized sub-skills:

  1. ads-start: Guided first-run wizard — context capture, per-platform OAuth/MCP walkthroughs with verification, optional Zernio + Meta Developers signup, profile persistence to ~/.claude-ads/profile.json
  2. ads-audit: Full multi-platform audit with parallel delegation across Meta / Google / TikTok
  3. ads-next: Continuous coach — ranks Quick Wins from recent audits + history, detects regressions, optionally walks user through fixing #1
  4. ads-conciencia: Campaign awareness — dated business-outcome check-ins (real conversations, qualified, closed, revenue, junk) cross-referenced with platform metrics; writes conciencia-de-campana.md
  5. ads-google: Google Ads deep analysis (Search, PMax, YouTube video campaigns — they share the Google Ads API)
  6. ads-meta: Meta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook
  7. ads-tiktok: TikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max)
  8. ads-creative: Cross-platform creative quality audit
  9. ads-landing: Landing page quality for ad campaigns
  10. ads-budget: Budget allocation and bidding strategy
  11. ads-plan: Strategic ad planning with industry templates (8 templates after v2.3.0 scope-down)
  12. ads-competitor: Competitor ad intelligence
  13. ads-dna: Brand DNA extraction from website URL
  14. ads-create: Campaign concepts, copy decks, creative briefs
  15. ads-generate: AI image generation with pluggable providers
  16. ads-photoshoot: Product photography in 5 professional styles
  17. ads-update: Refresh per-platform references with last 30 days of changes
  18. ads-math: PPC financial calculator (CPA, ROAS, break-even, LTV:CAC, MER)
  19. ads-test: A/B test design (hypothesis, sample size, statistical significance)
  20. ads-publish: Publish creatives to 14+ social networks via Zernio (first 2 accounts free)

Plus /ads report for PDF deliverable generation (implemented in scripts/generate_report.py, no SKILL.md).

Subagents

For parallel analysis during full audits — one deep specialist per platform:

  • audit-google: Google Ads 80-check audit (G01-G74, G-PM*, G-AI*, G-DG*, G-CTV*, G-WS*, G-KW*, G-CT*, G-AD*)
  • audit-meta: Meta Ads 50-check audit (M01-M40, M-AN*, M-AT*, M-CR*, M-ST*, M-IA*, M-TH*) — MCP-wired
  • audit-tiktok: TikTok Ads 28-check audit (T01-T25, T-SR*) — consolidates the former audit-creative/tracking/budget/compliance for TikTok into one deep-specialist agent

Creative pipeline agents (unchanged):

  • creative-strategist: Campaign concepts from brand profile + audit results (Opus, maxTurns: 25)
  • visual-designer: Image generation with brand injection via generate_image.py (Sonnet, maxTurns: 30)
  • copy-writer: Headlines, CTAs, primary text within platform limits (Sonnet, maxTurns: 20)
  • format-adapter: Asset dimension validation and spec compliance reporting (Haiku, maxTurns: 15)

Maintained by tododeia.com — Instagram @soyenriquerocha

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.