From metaflow-marketing-skills
Audits a Meta Ads account across 75+ checkpoints: signals, structure, audiences, creatives, measurement. Produces ICE-prioritized fixes with health score.
How this skill is triggered — by the user, by Claude, or both
Slash command
/metaflow-marketing-skills:meta-ads-account-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. **Collect data** — Request or gather: Ads Manager export (90 days), Events Manager screenshots (Pixel + CAPI status, EMQ scores), creative performance breakdown, audience overlap reports, frequency data at creative level, and learning phase status per ad set
This is the foundation. Weak signals = weak delivery via Meta's Andromeda ranking system. Audit this first.
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Pixel active | Meta Pixel firing on all relevant pages | Missing or intermittent |
| CAPI active | Conversions API implemented alongside Pixel | Not configured — this is always Critical in 2025 |
| Event deduplication | Matching event_id between Pixel and CAPI | Not configured or double-counting visible |
| EMQ scores | Event Match Quality per event type | Below 6.0 (minimum acceptable). Target 8.0+ |
| Matching keys sent | Email, phone, fbc, fbp, IP, user agent | Missing high-impact keys (email, phone, fbc) |
| Conversion events | Correct events configured as optimization targets | Optimizing for micro-events (PageView) instead of macro-events (Purchase, Lead) |
| Event volume | Conversions per ad set per week | Below 25/week/ad set (stability minimum). Target 50+/week (optimal) |
| Conversion values | Dynamic values sent with Purchase events | Static or missing values for ecommerce |
| Offline tracking | CRM/offline events flowing through CAPI | Using discontinued Offline Conversions API (killed May 2025) — migrate to standard CAPI with action_source: system_generated or physical_store |
| Attribution windows | 7-day click / 1-day view default | Non-standard windows without clear rationale. Note: 7d_view and 28d_view removed from Insights API October 2025 |
| AEM configuration | Aggregated Event Measurement for iOS 14+ | Event priority not configured, or low-value events prioritized over high-value |
For detailed tracking fixes, use the meta-ads-tracking-setup skill.
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Objective alignment | Campaign objectives match business goals | Using Traffic objective when goal is Sales/Leads |
| Campaign consolidation | Budget concentrated in fewer, well-funded campaigns | Too many small-budget campaigns/ad sets (each needs 50+ conversions/week for optimal learning) |
| Campaign architecture | Clear structure: Prospecting, Retargeting, Testing | No separation between prospecting and retargeting |
| ASC usage (ecommerce) | Advantage+ Shopping Campaigns for ecommerce | Ecommerce account with 100+ conversions/week not testing ASC (typically reduces cost per purchase ~12%) |
| New vs existing split | ASC customer ratio configured intentionally | Default ratio without analysis of actual customer mix |
| Naming conventions | Consistent, parseable taxonomy across campaigns/ad sets/ads | Inconsistent naming making analysis impossible |
| Special Ad Category | Housing, employment, credit categories set where required | Missing Special Ad Category when advertising in regulated industries |
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Audience size (TOF) | Top-of-funnel audience reach | Below 200K for prospecting campaigns |
| Audience size (remarketing) | Retargeting pool size | Below 1,000 (too small for stable delivery) |
| Audience overlap | Overlap between ad sets in same campaign | Significant overlap causing self-competition |
| Exclusion strategy | Recent converters and existing customers excluded from prospecting | No exclusions — wasting budget showing ads to existing customers |
| Targeting exclusions change | Detailed targeting exclusions removed March 31, 2025 | Still trying to use interest-based exclusions. Modern approach: customer list exclusions, recent converter exclusions, lifecycle suppression |
| Custom audiences | Website visitors, CRM uploads, engagement audiences | No custom audiences built. CRM upload match rate benchmark: 40-70% |
| Lookalike seeds | Quality of lookalike source audiences | Low-quality seeds (all website visitors) instead of high-quality seeds (purchasers, high-value customers). Start 1%, test up to 5-10% |
| Advantage+ audience | Using algorithm-driven expansion with suggestions | Not testing Advantage+ audience on accounts with strong Pixel/CAPI data |
| Warm + cold mixing | 2025 best practice: combine in single ad sets | Hyper-segmented audiences in separate ad sets limiting algorithm learning |
| Engagement audiences | Proactively building video viewers, page engagers | No engagement audiences — these only capture data from creation date, not retroactively |
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Creative frequency | Frequency at the creative level (not ad or ad set level) | Frequency > 4 — Meta research: 45% conversion drop at 4 exposures |
| CTR trend | CTR trajectory over 7-day rolling average | CTR declining > 20% from 7-day average = fatigue signal |
| CPC trend | CPC movement correlated with CTR | Rising CPCs alongside declining CTR = confirmed fatigue |
| Creative volume | Number of active creative variants per ad set | Fewer than 4 variants (insufficient for rotation) or more than 150 in ASC (hitting ceiling) |
| Format diversity | Mix of static, video, carousel, Reels-native | Single format only — missing performance from other formats |
| Aspect ratios | 4:5 vertical for Feed/Stories/Reels, 1:1 fallback | Only landscape or only square creative |
| Video hooks | First 3 seconds engagement | No bold hooks, silent-unfriendly (85% of Facebook videos watched without sound) |
| Ad copy length | Primary text effectiveness | Primary text exceeding 125 characters (gets truncated) |
| Refresh cadence | How often new creative is introduced | Same creatives running 30+ days for prospecting (target refresh every 7-14 days) |
| Landing page experience | Post-click experience quality | Slow load (>3 sec), message mismatch, poor mobile UX |
For creative testing frameworks and fatigue management, use the meta-ads-creative-engine skill.
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Learning phase spend | % of total account spend in learning phase | Exceeds 20% of total spend. Meta: advertisers under 20% see up to 68% lower CPA |
| Ad set edits during learning | Significant changes within first 5-7 days | Edits resetting learning phase (budget changes >20%, audience changes, creative swaps, bid changes) |
| Event volume per ad set | Weekly conversion volume | Below 25/week — ad set may never exit learning |
| Ad set consolidation | Fewer, larger ad sets vs many small ones | Multiple ad sets with <25 conversions/week each — consolidate |
| Learning limited status | Ad sets stuck in "Learning Limited" | Prolonged Learning Limited = restructure needed (consolidate audiences, increase budget, broaden optimization event) |
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Budget allocation | Distribution across campaigns and ad sets | 60/30/10 benchmark: 60% best performers, 30% scaling tests, 10% experiments |
| Bid strategy | Highest Volume, Cost Cap, Bid Cap, ROAS Goal | Using Highest Volume without any guardrails when CPA/ROAS targets exist |
| Budget sufficiency | Enough budget for 50+ conversions/week/ad set | Budget too low for optimization event (switch to higher-funnel event or increase budget) |
| Pacing | Spend trajectory vs budget | Consistently underspending (audience too narrow) or front-loading (audience too broad or bid too high) |
| Cost distribution | Spend across ad sets within campaigns | One ad set consuming 90%+ of budget while others starve |
| Scaling method | How budget increases are applied | Increasing budget >20% at once (risks resetting learning) |
| CPM trends | Cost per 1000 impressions trajectory | Rising CPMs without corresponding performance improvement. Context: Meta avg ad price up 9% in 2025 (Q1 2025 earnings) |
| Checkpoint | What to Check | Flag If |
|---|---|---|
| Attribution window | 7d click / 1d view default | Non-standard without documented reason |
| API attribution change | 7d_view and 28d_view removed from Insights API October 2025 | Reporting still pulling deprecated windows |
| Cross-platform attribution | Consistent measurement across Google + Meta | Different windows making cross-channel comparison meaningless |
| Instant Experience | No longer counts as landing page view (June 2025) | Funnel metrics inflated by counting Instant Experience as landing page views |
| Incrementality testing | Conversion lift or geo-based lift tests | No incrementality measurement — relying solely on platform-reported ROAS |
| Section | Weight | Score |
|---|---|---|
| Signal Infrastructure | 25% | /10 |
| Account Structure | 10% | /10 |
| Audience Strategy | 15% | /10 |
| Creative Health | 20% | /10 |
| Learning Phase | 10% | /10 |
| Budget & Bid Efficiency | 15% | /10 |
| Measurement & Attribution | 5% | /10 |
| Weighted Total | /10 |
Interpretation: 8-10 = Healthy, 6-7.9 = Needs optimization, 4-5.9 = Significant issues, <4 = Critical.
## Meta Ads Account Audit
### Health Score: [X.X / 10] — [Healthy / Needs Optimization / Significant Issues / Critical]
### Critical Issues (fix immediately)
1. **[Issue]** — [What's wrong, specific data] — ICE: [I×C×E = score]
- Action: [Specific fix]
- Expected impact: [Estimated improvement]
### Optimization Opportunities (fix within 2 weeks)
1. **[Issue]** — [What's wrong, specific data] — ICE: [score]
- Action: [Specific fix]
- Expected impact: [Estimated improvement]
### Working Well (maintain)
- [What's working and why]
### Priority Action Plan (next 30 days)
| Priority | Action | ICE Score | Timeline | Owner |
|----------|--------|-----------|----------|-------|
| 1 | [Highest ICE action] | [score] | Week 1 | [who] |
### 2025 Platform Change Flags
- [ ] CAPI implemented (mandatory in 2025)
- [ ] Offline Conversions API migrated (discontinued May 2025)
- [ ] Detailed targeting exclusions replaced with suppression strategy (removed March 2025)
- [ ] Instant Experience funnel metric adjustment (June 2025)
- [ ] 7d_view/28d_view API reporting updated (removed October 2025)
- [ ] ASC evaluated for ecommerce
- [ ] CPM trend accounted for (Meta avg +9% in 2025)
Input: "I run a DTC skincare brand on Meta. Spending $8K/month across 6 campaigns. ROAS dropped from 4.2 to 2.1 over the last month. What's going on?"
Output:
Creative fatigue across all prospecting ad sets — Average creative frequency is 6.8 (threshold: >4). CTR dropped 34% over 30 days. Same 5 creatives running for 45+ days with no refresh. Meta research: 45% conversion drop at 4 exposures. — ICE: 10×9×7 = 630
No CAPI — Pixel only — Missing ~20-30% of conversion events. EMQ unavailable (no server events). Algorithm optimizing on incomplete data. — ICE: 9×9×8 = 648
6 campaigns with $8K/month = ~$44/day per campaign — Most ad sets getting <15 conversions/week. 4 of 6 campaigns stuck in Learning Limited. Meta: need 50+/week for optimal, 25+ minimum. — ICE: 9×8×6 = 432
No customer exclusions on prospecting — Existing customers seeing acquisition ads. Wasted spend + inflated ROAS (counting repeat purchases as new). — ICE: 7×8×9 = 504
All creatives are 1:1 square — Missing 4:5 vertical which outperforms 1:1 by ~15% in Feed (Billo data). No Reels-native content. — ICE: 6×7×6 = 252
No ASC campaign — DTC ecommerce brand with sufficient volume should test Advantage+ Shopping Campaigns. Typically reduces cost per purchase ~12% vs manual. — ICE: 7×6×5 = 210
| Priority | Action | ICE Score | Timeline | Owner |
|---|---|---|---|---|
| 1 | Implement CAPI | 648 | Week 1-2 | Dev + media buyer |
| 2 | Refresh all creatives (new variants + formats) | 630 | Week 1-2 | Creative + media buyer |
| 3 | Upload customer exclusion list | 504 | Day 1 | Media buyer |
| 4 | Consolidate 6 campaigns → 3 | 432 | Week 1 | Media buyer |
| 5 | Create 4:5 vertical creative variants | 252 | Week 2-3 | Creative team |
| 6 | Launch ASC test | 210 | Week 3-4 | Media buyer |
7d_view and 28d_view windows removed from Insights API October 2025. Flag any reporting that still references these.npx claudepluginhub narayan-metaflow/metaflow-marketing-skills --plugin metaflow-marketing-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.