# Ads Meta

> Meta Ads deep analysis covering Facebook and Instagram advertising. Evaluates 50 checks across Pixel/CAPI health, creative diversity and fatigue, account structure, and audience targeting. Includes Advantage+ assessment. Use when user says Meta Ads, Facebook Ads, Instagram Ads, Advantage+, or Meta campaign.

- Skill: `hainrixz/ads-meta` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hainrixz/ads-meta`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hainrixz/ads-meta/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: Hainrixz (https://skillmd.com/u/hainrixz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hainrixz/ads-meta

---


# Meta 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` (format `act_<digits>`) and the claude.ai Facebook MCP is connected, call the Meta MCP tools listed in `ads/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 health
  - `mcp__claude_ai_Facebook__ads_insights_performance_trend` → M28 (creative fatigue)
  - `mcp__claude_ai_Facebook__ads_insights_industry_benchmark` → live benchmarks (override `benchmarks.md` when present)
- **Capa 2 — Direct API** (also free; OAuth setup once): if a `meta-data.json` file is present in the cwd, read it as the data source. The user generates it ahead of audit time with:
  ```bash
  export META_ACCESS_TOKEN='...'
  python3 scripts/api/meta_fetch.py --account-id act_<id> -o meta-data.json
  ```
  Full setup in `scripts/api/README.md`. Set `data_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.md` for 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 signal
- `ph` (phone): second highest match signal
- `fn`, `ln` (first/last name): improves match accuracy
- `ct`, `st`, `zp` (city, state, zip): geographic matching
- `external_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

