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 19 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
| Command |
What it does |
/ads start |
First-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 next |
Continuous 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 audit |
Full multi-platform audit with parallel subagent delegation (3 agents: Meta, Google, TikTok) |
/ads google |
Google Ads deep analysis (Search, PMax, includes YouTube video campaigns) |
/ads meta |
Meta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook |
/ads tiktok |
TikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max) |
/ads creative |
Cross-platform creative quality audit |
/ads landing |
Landing page quality assessment for ad campaigns |
/ads budget |
Budget allocation and bidding strategy review |
/ads plan <business-type> |
Strategic ad plan with industry templates |
/ads competitor |
Competitor ad intelligence analysis |
/ads math |
PPC financial calculator (CPA, ROAS, break-even, budget forecasting) |
/ads test |
A/B test design (hypothesis, significance, duration, sample size) |
/ads report |
PDF audit report generation for client deliverables |
/ads dna <url> |
Extract brand DNA from website, outputs brand-profile.json |
/ads create |
Generate campaign concepts + copy briefs, outputs campaign-brief.md |
/ads generate |
Generate AI ad images from brief, outputs to ad-assets/ |
/ads photoshoot |
Product 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 publish |
Publish 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.
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):
- 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.)
- Monthly ad spend: Total budget and per-platform breakdown (approximate is fine)
- Primary goal: Sales / Revenue · Leads / Demos · App Installs · Calls · Brand
- 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:
- 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).
- Collect account data (exports, screenshots, or pasted metrics — for connected platforms use the saved tier in
connections.<p>.tier)
- Detect business type and identify active platforms (from
context.active_platforms if available)
- 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
- 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.
- Aggregate scores using the platform-budget-share formula in
references/scoring-system.md and generate the unified Ads Health Score (0-100)
- Create prioritized action plan from the
quick_wins and critical_issues arrays of each JSON
- Persist to history — for each new audit JSON:
python3 scripts/profile.py save-audit <platform>-audit-results.json. This feeds /ads next regression detection.
- 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):
/ads dna <url> → brand-profile.json in current directory
/ads create → reads profile + optional audit results → campaign-brief.md
/ads generate → reads brief + profile → ad-assets/ directory
/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/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
| Grade |
Score |
Action Required |
| A |
90-100 |
Minor optimizations only |
| B |
75-89 |
Some improvement opportunities |
| C |
60-74 |
Notable issues need attention |
| D |
40-59 |
Significant problems present |
| F |
<40 |
Urgent 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 19 specialized sub-skills:
- 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
- ads-audit: Full multi-platform audit with parallel delegation across Meta / Google / TikTok
- ads-next: Continuous coach — ranks Quick Wins from recent audits + history, detects regressions, optionally walks user through fixing #1
- ads-google: Google Ads deep analysis (Search, PMax, YouTube video campaigns — they share the Google Ads API)
- ads-meta: Meta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook
- ads-tiktok: TikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max)
- ads-creative: Cross-platform creative quality audit
- ads-landing: Landing page quality for ad campaigns
- ads-budget: Budget allocation and bidding strategy
- ads-plan: Strategic ad planning with industry templates (8 templates after v2.3.0 scope-down)
- ads-competitor: Competitor ad intelligence
- ads-dna: Brand DNA extraction from website URL
- ads-create: Campaign concepts, copy decks, creative briefs
- ads-generate: AI image generation with pluggable providers
- ads-photoshoot: Product photography in 5 professional styles
- ads-update: Refresh per-platform references with last 30 days of changes
- ads-math: PPC financial calculator (CPA, ROAS, break-even, LTV:CAC, MER)
- ads-test: A/B test design (hypothesis, sample size, statistical significance)
- 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
1---2name: ads3description: 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.4license: MIT5---67# Ads: Free-first Paid Advertising Audit & Optimization89Focused ad account analysis on the 3 base platforms where most ad spend10lives: **Meta, Google, TikTok**. Orchestrates 19 specialized sub-skills and117 agents (3 audit + 4 creative). First-run users should type **`/ads start`**12— a guided wizard that captures context, walks them through OAuth setup13step-by-step, and persists everything to `~/.claude-ads/profile.json` so no14future command ever re-asks.1516## Quick Reference1718| Command | What it does |19|---------|-------------|20| `/ads start` | **First-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`. |21| `/ads next` | **Continuous 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. |22| `/ads audit` | Full multi-platform audit with parallel subagent delegation (3 agents: Meta, Google, TikTok) |23| `/ads google` | Google Ads deep analysis (Search, PMax, includes YouTube video campaigns) |24| `/ads meta` | Meta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook |25| `/ads tiktok` | TikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max) |26| `/ads creative` | Cross-platform creative quality audit |27| `/ads landing` | Landing page quality assessment for ad campaigns |28| `/ads budget` | Budget allocation and bidding strategy review |29| `/ads plan <business-type>` | Strategic ad plan with industry templates |30| `/ads competitor` | Competitor ad intelligence analysis |31| `/ads math` | PPC financial calculator (CPA, ROAS, break-even, budget forecasting) |32| `/ads test` | A/B test design (hypothesis, significance, duration, sample size) |33| `/ads report` | PDF audit report generation for client deliverables |34| `/ads dna <url>` | Extract brand DNA from website, outputs `brand-profile.json` |35| `/ads create` | Generate campaign concepts + copy briefs, outputs `campaign-brief.md` |36| `/ads generate` | Generate AI ad images from brief, outputs to `ad-assets/` |37| `/ads photoshoot` | Product photography in 5 styles (Studio, Floating, Ingredient, In Use, Lifestyle) |38| `/ads update <platform\|all>` | Refresh per-platform references with last 30 days of changes (COSTLY: ~50–150k tokens/platform; gates on confirmation) |39| `/ads publish` | Publish generated creatives to 14+ social networks via Zernio (first 2 accounts free; see `skills/ads-publish/SKILL.md`) |4041## First-run behavior4243When the user invokes any `/ads` command **other than** `/ads start`,44`/ads math`, or `/ads test`, FIRST run:4546```bash47python3 scripts/profile.py get48```4950- Exit code `2` (profile missing) → gently surface a one-line tip:51 > *Tip: run `/ads start` first — it saves ~30 sec per future command. Proceed inline instead? (Y/N)*52 Honor `N` (proceed) by falling back to the inline Context Intake below.53- Exit code `0` (profile present) → parse the JSON and use the saved54 `context.industry`, `context.monthly_spend_usd`, `context.primary_goal`,55 `context.active_platforms` directly. Do NOT re-ask. Only re-ask if a field56 is `null`/empty.5758## Context Intake (fallback — only when profile is missing AND user declined `/ads start`)5960Without context, benchmarks will be generic and recommendations may be wrong61for the user's situation.6263Ask these questions upfront (combine into one message):64651. **Industry / Business type**: Which best describes you?66 E-commerce · Local Service · Real Estate · Healthcare · Finance · Agency · Other67 (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.)682. **Monthly ad spend**: Total budget and per-platform breakdown (approximate is fine)693. **Primary goal**: Sales / Revenue · Leads / Demos · App Installs · Calls · Brand704. **Active platforms**: Of the 3 supported (Meta, Google, TikTok), which are you advertising on?7172If the user provides data upfront (e.g. "audit my Google Ads, I spend $5k/mo on ecommerce"),73extract context from that and proceed without re-asking.7475After the inline intake, offer: *"Want me to save this to your profile so I76never re-ask? (runs `/ads start` quickly with your answers prefilled)."*7778Use the provided context to:79- Select the correct industry benchmarks from `references/benchmarks.md`80- Apply budget-appropriate recommendations (e.g. Smart Bidding requires 15+ conv/month)81- Calibrate severity scoring (a $500/mo account has different priorities than $50k/mo)8283## Orchestration Logic8485When the user invokes `/ads audit`, delegate to subagents in parallel:861. **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).872. Collect account data (exports, screenshots, or pasted metrics — for connected platforms use the saved tier in `connections.<p>.tier`)883. Detect business type and identify active platforms (from `context.active_platforms` if available)894. 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`905. **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.916. Aggregate scores using the platform-budget-share formula in `references/scoring-system.md` and generate the unified Ads Health Score (0-100)927. Create prioritized action plan from the `quick_wins` and `critical_issues` arrays of each JSON938. **Persist to history** — for each new audit JSON: `python3 scripts/profile.py save-audit <platform>-audit-results.json`. This feeds `/ads next` regression detection.949. **Suggest the next step** — point the user at `/ads next` for ranked Quick Wins.9596For individual commands (`/ads google`, `/ads meta`, etc.), load the relevant97sub-skill directly. Still load profile / collect context first if not already98provided.99100For `/ads update <platform|all>`, route to `skills/ads-update/SKILL.md`. The update101skill enforces a mandatory cost-confirmation gate before fetching — do NOT bypass102it. See `references/update-cost-warning.md` for the rationale.103104## Creative Workflow105106Sequential pipeline (each step is independently runnable):1071. `/ads dna <url>` → `brand-profile.json` in current directory1082. `/ads create` → reads profile + optional audit results → `campaign-brief.md`1093. `/ads generate` → reads brief + profile → `ad-assets/` directory1104. `/ads photoshoot` → standalone or reads profile for style injection111112Requires `GOOGLE_API_KEY` (Gemini default) or `ADS_IMAGE_PROVIDER` + matching key.113If API key is missing, `/ads generate` and `/ads photoshoot` display setup114instructions and exit; they never fail silently.115116## Industry Detection117118Detect business type from ad account signals:119- **SaaS**: trial_start/demo_request events, pricing page targeting, long attribution windows120- **E-commerce**: purchase events, product catalog/feed, Shopping/PMax campaigns121- **Local Service**: call extensions, location targeting, store visits, directions events122- **B2B Enterprise**: LinkedIn Ads active, ABM lists, high CPA tolerance ($50+), long sales cycle123- **Info Products**: webinar/course funnels, lead gen forms, low-ticket offers124- **Mobile App**: app install campaigns, in-app events, deep linking125- **Real Estate**: listing feeds, property-specific landing pages, geo-heavy targeting126- **Healthcare**: HIPAA compliance flags, healthcare-specific ad policies127- **Finance**: Special Ad Categories declared, financial products compliance128- **Agency**: multiple client accounts, white-label reporting needs129130## Quality Gates131132Hard rules (never violate these):133- Never recommend Broad Match without Smart Bidding (Google)134- 3x Kill Rule: flag any ad group/campaign with CPA >3x target for pause135- Budget sufficiency: Meta ≥5x CPA per ad set, TikTok ≥50x CPA per ad group136- Learning phase: never recommend edits during active learning phase137- Compliance: always check Special Ad Categories for housing/employment/credit/finance138- Creative: never run silent video ads on TikTok (sound-on platform)139- Attribution: default to 7-day click / 1-day view (Meta), data-driven (Google)140- Andromeda creative diversity: Flag Meta accounts with <10 genuinely distinct creatives141- Privacy infrastructure gate: Always verify tracking stack (Consent Mode V2, CAPI, Events API, AdAttributionKit) before making optimization recommendations142- 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 PDF143144## Reference Files145146Load these on-demand as needed; do NOT load all at startup.147148**Path resolution:** All references are installed at `~/.claude/skills/ads/references/`.149When sub-skills or agents reference `ads/references/*.md`, resolve to150`~/.claude/skills/ads/references/*.md`.151152- `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.153- `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.154- `references/profile-schema.json`: Schema for `~/.claude-ads/profile.json` — the persistent user context written by `/ads start` and read by every command.155- `references/audit-history-schema.json`: Schema for `~/.claude-ads/history/index.json` — the audit log `/ads next` reads for regression detection.156- `references/setup-meta.md` / `setup-google.md` / `setup-tiktok.md`: Step-by-step OAuth + MCP + manual connection walkthroughs loaded by `/ads start` Phase C.157- `references/setup-zernio.md` / `setup-meta-developers.md`: Account-creation walkthroughs for optional integrations.158- `references/scoring-system.md`: Weighted scoring algorithm and grading thresholds159- `references/benchmarks.md`: Industry benchmarks by platform (CPC, CTR, CVR, ROAS)160- `references/bidding-strategies.md`: Bidding decision trees per platform161- `references/budget-allocation.md`: Platform selection matrix, scaling rules, MER162- `references/platform-specs.md`: Creative specifications across all platforms163- `references/conversion-tracking.md`: Pixel, CAPI, EMQ, ttclid implementation164- `references/compliance.md`: Regulatory requirements, ad policies, privacy165- `references/google-audit.md`: 80-check Google Ads audit checklist (includes YouTube video campaigns)166- `references/meta-audit.md`: 50-check Meta Ads audit checklist167- `references/tiktok-audit.md`: 28-check TikTok Ads audit checklist168- `references/brand-dna-template.md`: Brand DNA schema and extraction guide169- `references/image-providers.md`: Provider config (Gemini/OpenAI/Stability/Replicate)170- `references/google-creative-specs.md`: PMax/RSA/YouTube generation-ready specs171- `references/meta-creative-specs.md`: Feed/Reels/Stories specs + safe zones172- `references/tiktok-creative-specs.md`: 9:16 only + safe zone overlay173- `references/gaql-notes.md`: GAQL field compatibility, deduplication patterns, filter scope best practices174- `references/voice-to-style.md`: Brand voice axis to visual attribute mapping for image generation175- `references/copy-frameworks.md`: 6 ad copy frameworks (AIDA, PAS, BAB, 4P, FAB, Star-Story-Solution)176- `references/mcp-integration.md`: Canonical MCP integration pattern + per-platform MCP server catalog177- `references/mcp-meta-integration.md`: Meta MCP check↔tool mapping (template for new MCP integrations)178179For platforms where MCP is not the preferred path, the audit agent reads180`<platform>-data.json` produced by `scripts/api/<platform>_fetch.py`.181These are pure-stdlib API adapters covering Meta, Google, and TikTok.182See `scripts/api/README.md` for the per-platform OAuth setup walkthrough.183184## Scoring Methodology185186### Ads Health Score (0-100)187188Per-platform score using weighted algorithm from `references/scoring-system.md`.189Cross-platform aggregate weighted by budget share:190191```192Aggregate = Sum(Platform_Score x Platform_Budget_Share)193```194195### Grading196197| Grade | Score | Action Required |198|-------|-------|-----------------|199| A | 90-100 | Minor optimizations only |200| B | 75-89 | Some improvement opportunities |201| C | 60-74 | Notable issues need attention |202| D | 40-59 | Significant problems present |203| F | <40 | Urgent intervention required |204205### Priority Levels206207- **Critical**: Revenue/data loss risk (fix immediately)208- **High**: Significant performance drag (fix within 7 days)209- **Medium**: Optimization opportunity (fix within 30 days)210- **Low**: Best practice, minor impact (backlog)211212## Sub-Skills213214This skill orchestrates 19 specialized sub-skills:2152161. **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`2172. **ads-audit**: Full multi-platform audit with parallel delegation across Meta / Google / TikTok2183. **ads-next**: Continuous coach — ranks Quick Wins from recent audits + history, detects regressions, optionally walks user through fixing #12194. **ads-google**: Google Ads deep analysis (Search, PMax, YouTube video campaigns — they share the Google Ads API)2205. **ads-meta**: Meta Ads deep analysis (FB, IG, Advantage+) — MCP-wired to claude.ai Facebook2216. **ads-tiktok**: TikTok Ads deep analysis (Creative, Shop, Smart+, Symphony, GMV Max)2227. **ads-creative**: Cross-platform creative quality audit2238. **ads-landing**: Landing page quality for ad campaigns2249. **ads-budget**: Budget allocation and bidding strategy22510. **ads-plan**: Strategic ad planning with industry templates (8 templates after v2.3.0 scope-down)22611. **ads-competitor**: Competitor ad intelligence22712. **ads-dna**: Brand DNA extraction from website URL22813. **ads-create**: Campaign concepts, copy decks, creative briefs22914. **ads-generate**: AI image generation with pluggable providers23015. **ads-photoshoot**: Product photography in 5 professional styles23116. **ads-update**: Refresh per-platform references with last 30 days of changes23217. **ads-math**: PPC financial calculator (CPA, ROAS, break-even, LTV:CAC, MER)23318. **ads-test**: A/B test design (hypothesis, sample size, statistical significance)23419. **ads-publish**: Publish creatives to 14+ social networks via Zernio (first 2 accounts free)235236Plus `/ads report` for PDF deliverable generation (implemented in `scripts/generate_report.py`, no SKILL.md).237238## Subagents239240For parallel analysis during full audits — one deep specialist per platform:241- `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*)242- `audit-meta`: Meta Ads 50-check audit (M01-M40, M-AN*, M-AT*, M-CR*, M-ST*, M-IA*, M-TH*) — MCP-wired243- `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 agent244245Creative pipeline agents (unchanged):246- `creative-strategist`: Campaign concepts from brand profile + audit results (Opus, maxTurns: 25)247- `visual-designer`: Image generation with brand injection via generate_image.py (Sonnet, maxTurns: 30)248- `copy-writer`: Headlines, CTAs, primary text within platform limits (Sonnet, maxTurns: 20)249- `format-adapter`: Asset dimension validation and spec compliance reporting (Haiku, maxTurns: 15)250251---252253Maintained by [tododeia.com](https://tododeia.com) — Instagram [@soyenriquerocha](https://instagram.com/soyenriquerocha)