About ads-meta
A skill for auditing Meta ad accounts across tracking, creative, structure, and audience setup. It supports live MCP data, a prepared API data file, or manual exports, and produces scored findings and reports.
Key features
- 01Three-tier data collection
- 0250-check account audit
- 03Pixel and CAPI health review
- 04Creative fatigue checks
- 05Health score and reports
Use cases
- 01Reviewing Meta tracking and event quality
- 02Finding creative fatigue and format gaps
- 03Checking campaign structure and audience setup
MCP support
When the Facebook MCP is connected and an ad account ID is provided, the skill uses its tools for live quality, entity, catalog, performance, and benchmark data.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ hainrixz/ claude-ads --skill ads-metaAfter installing, type/ads-metain Claude Code to confirm it loaded.
Details
From the project READMEMeta Ads Deep Analysis
Andromeda AI Engine
Meta's Andromeda AI engine (Oct 2025) filters ads using 10,000x more complex models. Creative diversity is now the #1 performance lever. Ads with Similarity Score >60% get retrieval suppression. The algorithm clusters near-identical creatives and limits their delivery. 100 minor variations perform no better than 10. Prioritize genuinely distinct concepts, angles, and formats over volume of similar variants.
Data Collection (3-tier free-first)
- Capa 1 — MCP (preferred when available): if the user supplies an
ad_account_id(formatact_<digits>) and the claude.ai Facebook MCP is connected, call the Meta MCP tools listed inads/references/mcp-meta-integration.md. Most M01-M40 checks become live data lookups.mcp__claude_ai_Facebook__ads_get_dataset_quality→ M02-M04 (EMQ, CAPI, dedup)mcp__claude_ai_Facebook__ads_get_ad_entities→ M11-M40 (structure, learning phase, placements)mcp__claude_ai_Facebook__ads_catalog_get_diagnostics→ Advantage+ Shopping healthmcp__claude_ai_Facebook__ads_insights_performance_trend→ M28 (creative fatigue)mcp__claude_ai_Facebook__ads_insights_industry_benchmark→ live benchmarks (overridebenchmarks.mdwhen present)
- Capa 2 — Direct API (also free; OAuth setup once): if a
meta-data.jsonfile is present in the cwd, read it as the data source. The user generates it ahead of audit time with:
Full setup inexport META_ACCESS_TOKEN='...' python3 scripts/api/meta_fetch.py --account-id act_<id> -o meta-data.jsonscripts/api/README.md. Setdata_source: "direct_api"in the JSON output. - Capa 3 — Manual fallback (always works, no setup): Ads Manager CSV export + Events Manager screenshot + EMQ scores. Mark unevaluable checks
"result": "N/A"in the JSON output.
Then follow the standard 7-step audit process in ads/references/audit-methodology.md using meta-audit.md as the check list. Emit dual output (meta-audit-results.json against audit-output-schema.json, plus meta-audit-results.md).
What to Analyze
Pixel / CAPI Health (30% weight)
- Meta Pixel installed and firing on all pages
- Conversions API (CAPI) active (30-40% data loss without it post-iOS 14.5)
- Event deduplication configured (event_id matching, ≥90% dedup rate)
- Event Match Quality (EMQ) ≥8.0 for Purchase event
- All standard events configured (ViewContent, AddToCart, Purchase, Lead)
- Custom conversions created for non-standard events
- Aggregated Event Measurement (AEM) configured for iOS
- Domain verification completed
- Server-side events include customer_information parameters
- Pixel fires with correct currency and value parameters
Creative (30% weight)
- ≥3 creative formats active (image, video, carousel, collection)
- ≥5 creatives per ad set (Meta recommendation)
- Creative fatigue detection: CTR drop >20% over 14 days = FAIL
- Video creative: 15s max for Stories/Reels, 30s max for Feed
- UGC/testimonial creative tested
- Dynamic Creative Optimization (DCO) tested
- Ad copy: headline under 40 chars, primary text under 125 chars
- Creative refresh cadence: every 2-4 weeks for high-spend
Account Structure (20% weight)
- Campaign Budget Optimization (CBO) vs Ad Set Budget (ABO) intentional
- Campaign consolidation: 1-3 campaigns total recommended
- Learning phase health: <30% ad sets in "Learning Limited" (FAIL >50%)
- Budget per ad set: ≥5x target CPA (minimum for learning phase exit)
- Ad set audience overlap <30% (Audience Overlap tool)
- Campaign naming conventions consistent and descriptive
- Advantage+ Sales Campaigns active for e-commerce
- Simplified campaign structure: 1-3 campaigns total (fewer, larger ad sets preferred)
Audience & Targeting (20% weight)
- Prospecting frequency (7-day): <3.0 (WARNING 3-5, FAIL >5)
- Retargeting frequency (7-day): <8.0 (WARNING 8-12, FAIL >12)
- Custom Audiences: website visitors, customer lists, engagement
- Lookalike Audiences: multiple seed sizes tested (1%, 3%, 5%)
- Advantage+ Audience tested vs manual targeting
- Interest targeting: broad enough for algorithm optimization
- Exclusions: purchasers excluded from prospecting, overlap managed
- Location targeting reviewed for relevance
Advantage+ Assessment
If Advantage+ features are in use:
- Advantage+ Sales Campaigns: catalog connected, existing customer cap set
- Advantage+ Audience: performance vs manual audience compared
- Advantage+ Creative: enhancements enabled (text, brightness, music)
- Advantage+ Placements: enabled (let Meta optimize placement mix)
- Budget allocation: Advantage+ campaigns getting fair test budget
Special Ad Categories
If ads are in restricted categories:
- Special Ad Category declared before campaign creation
- Targeting restrictions verified (no ZIP, age 18-65+ only, no Lookalike)
- Creative compliance with category-specific policies
- Read
ads/references/compliance.mdfor full requirements
EMQ Optimization Guide
| EMQ Score | Status | Action |
|---|---|---|
| 8.0-10.0 | Excellent | Maintain current setup |
| 6.0-7.9 | Good | Add more customer_information parameters |
| 4.0-5.9 | Fair | Implement CAPI, improve data quality |
| <4.0 | Poor | Critical: CAPI + Enhanced Matching required |
Key parameters to maximize EMQ:
em(email): highest match rate signalph(phone): second highest match signalfn,ln(first/last name): improves match accuracyct,st,zp(city, state, zip): geographic matchingexternal_id: CRM/user ID for cross-device matching
Key Thresholds
| Metric | Pass | Warning | Fail |
|---|---|---|---|
| EMQ (Purchase) | ≥8.0 | 6.0-7.9 | <6.0 |
| Dedup rate | ≥90% | 70-90% | <70% |
| CTR | ≥1.0% | 0.5-1.0% | <0.5% |
| Creative formats | ≥3 | 2 | 1 |
| Creatives per ad set | ≥5 | 3-4 | <3 |
| Learning Limited | <30% | 30-50% | >50% |
| Budget per ad set | ≥5x CPA | 2-5x CPA | <2x CPA |
Output
Meta Ads Health Score
Meta Ads Health Score: XX/100 (Grade: X)
Pixel / CAPI Health: XX/100 ████████░░ (30%)
Creative: XX/100 ██████████ (30%)
Account Structure: XX/100 ███████░░░ (20%)
Audience: XX/100 █████░░░░░ (20%)
Deliverables
META-ADS-REPORT.md: Full 50-check findings with pass/warning/fail- EMQ improvement roadmap
- Creative fatigue alerts (any creative with CTR declining >20%)
- Quick Wins sorted by impact
- Advantage+ adoption recommendations
Threads Placement
Threads placement GA Jan 2026, 400M+ MAU. Lower CPMs than Feed/Stories. Currently ~0.04% of total spend. Emerging channel. Evaluate:
- Is Threads placement enabled in Advantage+ Placements?
- Monitor CPM and engagement vs other placements
- Early-mover advantage for brands with active Threads presence