Creative Audit
Categorize all active ads by format, concept, and angle. Cross-reference with performance data to identify creative gaps and build a testing roadmap. Complements creative-fatigue (which focuses on lifecycle) by focusing on creative diversity and mix.
Account Context
Read ${CLAUDE_PLUGIN_ROOT}/profile/account-profile.md at the start of every run.
If it exists:
- Use known account IDs.
- Apply KPI targets for performance benchmarking.
- Note active creative tests — highlight them in the matrix.
- Check watch list for creative-related items from prior sessions.
If it doesn't exist, fall back to discovery and suggest running
platform-setup.
Classification Dimensions
Format
| Format |
Description |
Key Metric |
| Static Image |
Single image ad |
CTR, CPA |
| Video (Short) |
<15 seconds |
Hook Rate, ThruPlay Rate |
| Video (Long) |
15-60 seconds |
Hold Rate, ThruPlay Rate |
| Carousel |
Multi-card swipeable |
Card CTR, CPA |
| Collection |
Instant Experience catalog |
Browse time, CPA |
| Dynamic Product Ad (DPA) |
Auto-generated from catalog |
ROAS, CPA |
| Instant Experience |
Full-screen mobile |
Browse time, CTR |
Concept
| Concept |
Description |
| Testimonial |
Customer quote, review, or case study |
| UGC (User-Generated Content) |
Authentic, non-polished content |
| Product Demo |
Feature walkthrough or how-to |
| Lifestyle |
Product in context, aspirational |
| Pain Point |
Problem-focused, agitation |
| Social Proof |
Numbers, awards, press mentions |
| Offer/Promo |
Discount, free trial, limited time |
| Educational |
Teaching, tips, industry knowledge |
| Behind-the-Scenes |
Company culture, process |
| Comparison |
vs. competitor or alternative |
Angle
| Angle |
Description |
| Benefit-led |
"You'll get X" |
| Pain-led |
"Tired of X?" |
| Social proof |
"10,000 customers..." |
| Urgency |
"Limited time", "Last chance" |
| Curiosity |
"The secret to...", "Why X works" |
| Authority |
"Experts recommend...", "Award-winning" |
Workflow
Phase 1: Pull creative data
- Use
mcp__meta-ads__list_ads to get all active ads across campaigns.
- Use
mcp__meta-ads__list_creatives to get creative asset details.
- Use
mcp__meta-ads__preview_ad for ads where format/concept is ambiguous.
- Use
mcp__meta-ads__get_creative_performance for performance metrics.
- Use
mcp__meta-ads__analyze_account_creatives for account-level creative health.
Parallelization: If the account has more than 5 active ad sets, consider spawning the creative-analyst subagent (see agents/creative-analyst.md) for parallel analysis.
Phase 2: Categorize each ad
For each active ad:
- Identify Format from ad metadata (image, video, carousel, etc.).
- Classify Concept from creative content (may require
preview_ad for context).
- Classify Angle from primary text and headline.
- Record performance metrics alongside classification.
Phase 3: Build creative matrix
Create a Format x Concept matrix showing:
- Count of active ads in each cell.
- Average performance (CTR, CPA) per cell.
- Highlight empty cells as gaps.
- Highlight high-performing cells as winning combinations.
Phase 4: Gap analysis
Identify missing creative combinations:
- Formats never tested (e.g., no video, no carousel).
- Concepts never tested (e.g., no UGC, no testimonial).
- Angles never tested (e.g., no pain-led, no curiosity).
- Winning format + losing concept combinations (format works, need new concepts).
Phase 5: Testing roadmap
Prioritize gaps by:
- Format gaps with strong cross-industry benchmarks (e.g., video typically 20-30% lower CPA than static).
- Concept gaps where competitors are active (if competitor-research data available).
- Angle variety — low-risk tests to diversify messaging.
Output Format
## Creative Audit - [Date]
### Account: [Name] (act_XXXXXXXXX)
### Active Creative Summary
| Metric | Count |
|--------|------:|
| Total Active Ads | |
| Unique Formats | |
| Unique Concepts | |
| Avg Ads per Ad Set | |
### Creative Matrix: Format x Concept
| | Testimonial | UGC | Product Demo | Lifestyle | Pain Point | Social Proof | Offer | Educational |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| Static Image | | | | | | | | |
| Video (Short) | | | | | | | | |
| Video (Long) | | | | | | | | |
| Carousel | | | | | | | | |
| DPA | | | | | | | | |
*Cell = count of active ads. Green = above-avg CPA. Red = below-avg CPA. Empty = gap.*
### Performance Heatmap: Avg CPA by Format x Concept
| | Testimonial | UGC | Product Demo | Lifestyle | Pain Point | Social Proof | Offer |
|---|---:|---:|---:|---:|---:|---:|---:|
| Static Image | $ | $ | $ | $ | $ | $ | $ |
| Video (Short) | $ | $ | $ | $ | $ | $ | $ |
| Carousel | $ | $ | $ | $ | $ | $ | $ |
### Top Performing Combinations
| Rank | Format | Concept | Angle | Avg CPA | Avg CTR | Active Ads | 30d Spend |
|:-----|--------|---------|-------|--------:|--------:|-----------:|----------:|
| 1 | | | | | | | |
### Creative Gaps (Missing or Undertested)
| Gap | Type | Why Test | Priority | Benchmark CPA |
|-----|------|----------|:---------|:--------------|
| No video ads | Format | Video typically 20-30% lower CPA | HIGH | |
| No UGC | Concept | Fastest-growing format on Meta | HIGH | |
| No testimonials | Concept | Highest trust signal | MEDIUM | |
| Single angle across all ads | Angle | Message fatigue risk | MEDIUM | |
### Testing Roadmap
| Priority | Test | Format | Concept | Angle | Budget | Duration | Success Metric |
|:---------|------|--------|---------|-------|-------:|----------|:---------------|
| 1 | | | | | $ | 7-14d | CPA < $X |
| 2 | | | | | $ | 7-14d | CPA < $X |
| 3 | | | | | $ | 7-14d | CTR > X% |
### Implementation
For each test:
- Meta Ads Manager > Campaign "[Name]" > Ad Set "[Name]" > Ads > Create Ad
- Use existing ad set targeting — isolate creative as the variable.
- Run for minimum 7 days or 50 conversions before evaluating.
Guardrails
- Read-only: This skill produces analysis only. Testing roadmap actions include UI paths.
- Classification limits: AI classification of concept/angle from ad preview is approximate. Flag confidence level when ambiguous.
- Minimum data: Require 7+ days and $50+ spend per ad for performance comparisons. Newer ads go into "Insufficient Data" bucket.
- Cross-platform context: If user runs ads on Google/Bing too, note that creative learnings may transfer (video hooks, messaging angles) but format performance is platform-specific.
Profile Maintenance
After completing analysis, if ${CLAUDE_PLUGIN_ROOT}/profile/account-profile.md exists:
- Note any creative gaps identified in Watch List.
- If user commits to testing roadmap items, add to Active Tests.
- Update "Last updated" date.
Present proposed profile changes to the user before writing.
References
references/benchmarks.md — 2026 Meta benchmarks by format and objective
references/ui-paths.md — Meta Ads Manager UI paths for creating ads
1---2name: creative-audit3description: This skill should be used when the user asks to "audit my creatives", "creative mix analysis", "what ad formats am I missing", "creative gaps", "creative diversity check", "ad format breakdown", "creative matrix", "creative testing roadmap", "what types of ads should I test", "am I running enough video", "I keep running the same ads", "what creative concepts work", "creative strategy review", "what ads should I make next", or mentions creative categorization, format analysis, concept mapping, creative gap identification, or creative mix optimization for Meta Ads.4---56# Creative Audit78Categorize all active ads by format, concept, and angle. Cross-reference with performance data to identify creative gaps and build a testing roadmap. Complements `creative-fatigue` (which focuses on lifecycle) by focusing on creative diversity and mix.910## Account Context1112Read `${CLAUDE_PLUGIN_ROOT}/profile/account-profile.md` at the start of every run.13If it exists:14- Use known account IDs.15- Apply KPI targets for performance benchmarking.16- Note active creative tests — highlight them in the matrix.17- Check watch list for creative-related items from prior sessions.18If it doesn't exist, fall back to discovery and suggest running `platform-setup`.1920## Classification Dimensions2122### Format23| Format | Description | Key Metric |24|--------|-------------|-----------|25| Static Image | Single image ad | CTR, CPA |26| Video (Short) | <15 seconds | Hook Rate, ThruPlay Rate |27| Video (Long) | 15-60 seconds | Hold Rate, ThruPlay Rate |28| Carousel | Multi-card swipeable | Card CTR, CPA |29| Collection | Instant Experience catalog | Browse time, CPA |30| Dynamic Product Ad (DPA) | Auto-generated from catalog | ROAS, CPA |31| Instant Experience | Full-screen mobile | Browse time, CTR |3233### Concept34| Concept | Description |35|---------|-------------|36| Testimonial | Customer quote, review, or case study |37| UGC (User-Generated Content) | Authentic, non-polished content |38| Product Demo | Feature walkthrough or how-to |39| Lifestyle | Product in context, aspirational |40| Pain Point | Problem-focused, agitation |41| Social Proof | Numbers, awards, press mentions |42| Offer/Promo | Discount, free trial, limited time |43| Educational | Teaching, tips, industry knowledge |44| Behind-the-Scenes | Company culture, process |45| Comparison | vs. competitor or alternative |4647### Angle48| Angle | Description |49|-------|-------------|50| Benefit-led | "You'll get X" |51| Pain-led | "Tired of X?" |52| Social proof | "10,000 customers..." |53| Urgency | "Limited time", "Last chance" |54| Curiosity | "The secret to...", "Why X works" |55| Authority | "Experts recommend...", "Award-winning" |5657## Workflow5859### Phase 1: Pull creative data60611. Use `mcp__meta-ads__list_ads` to get all active ads across campaigns.622. Use `mcp__meta-ads__list_creatives` to get creative asset details.633. Use `mcp__meta-ads__preview_ad` for ads where format/concept is ambiguous.644. Use `mcp__meta-ads__get_creative_performance` for performance metrics.655. Use `mcp__meta-ads__analyze_account_creatives` for account-level creative health.6667**Parallelization:** If the account has more than 5 active ad sets, consider spawning the `creative-analyst` subagent (see `agents/creative-analyst.md`) for parallel analysis.6869### Phase 2: Categorize each ad7071For each active ad:721. Identify **Format** from ad metadata (image, video, carousel, etc.).732. Classify **Concept** from creative content (may require `preview_ad` for context).743. Classify **Angle** from primary text and headline.754. Record performance metrics alongside classification.7677### Phase 3: Build creative matrix7879Create a Format x Concept matrix showing:80- Count of active ads in each cell.81- Average performance (CTR, CPA) per cell.82- Highlight empty cells as gaps.83- Highlight high-performing cells as winning combinations.8485### Phase 4: Gap analysis8687Identify missing creative combinations:88- Formats never tested (e.g., no video, no carousel).89- Concepts never tested (e.g., no UGC, no testimonial).90- Angles never tested (e.g., no pain-led, no curiosity).91- Winning format + losing concept combinations (format works, need new concepts).9293### Phase 5: Testing roadmap9495Prioritize gaps by:961. **Format gaps** with strong cross-industry benchmarks (e.g., video typically 20-30% lower CPA than static).972. **Concept gaps** where competitors are active (if competitor-research data available).983. **Angle variety** — low-risk tests to diversify messaging.99100## Output Format101102```markdown103## Creative Audit - [Date]104105### Account: [Name] (act_XXXXXXXXX)106107### Active Creative Summary108| Metric | Count |109|--------|------:|110| Total Active Ads | |111| Unique Formats | |112| Unique Concepts | |113| Avg Ads per Ad Set | |114115### Creative Matrix: Format x Concept116| | Testimonial | UGC | Product Demo | Lifestyle | Pain Point | Social Proof | Offer | Educational |117|---|---:|---:|---:|---:|---:|---:|---:|---:|118| Static Image | | | | | | | | |119| Video (Short) | | | | | | | | |120| Video (Long) | | | | | | | | |121| Carousel | | | | | | | | |122| DPA | | | | | | | | |123124*Cell = count of active ads. Green = above-avg CPA. Red = below-avg CPA. Empty = gap.*125126### Performance Heatmap: Avg CPA by Format x Concept127| | Testimonial | UGC | Product Demo | Lifestyle | Pain Point | Social Proof | Offer |128|---|---:|---:|---:|---:|---:|---:|---:|129| Static Image | $ | $ | $ | $ | $ | $ | $ |130| Video (Short) | $ | $ | $ | $ | $ | $ | $ |131| Carousel | $ | $ | $ | $ | $ | $ | $ |132133### Top Performing Combinations134| Rank | Format | Concept | Angle | Avg CPA | Avg CTR | Active Ads | 30d Spend |135|:-----|--------|---------|-------|--------:|--------:|-----------:|----------:|136| 1 | | | | | | | |137138### Creative Gaps (Missing or Undertested)139| Gap | Type | Why Test | Priority | Benchmark CPA |140|-----|------|----------|:---------|:--------------|141| No video ads | Format | Video typically 20-30% lower CPA | HIGH | |142| No UGC | Concept | Fastest-growing format on Meta | HIGH | |143| No testimonials | Concept | Highest trust signal | MEDIUM | |144| Single angle across all ads | Angle | Message fatigue risk | MEDIUM | |145146### Testing Roadmap147| Priority | Test | Format | Concept | Angle | Budget | Duration | Success Metric |148|:---------|------|--------|---------|-------|-------:|----------|:---------------|149| 1 | | | | | $ | 7-14d | CPA < $X |150| 2 | | | | | $ | 7-14d | CPA < $X |151| 3 | | | | | $ | 7-14d | CTR > X% |152153### Implementation154For each test:155- Meta Ads Manager > Campaign "[Name]" > Ad Set "[Name]" > Ads > Create Ad156- Use existing ad set targeting — isolate creative as the variable.157- Run for minimum 7 days or 50 conversions before evaluating.158```159160## Guardrails161162- **Read-only:** This skill produces analysis only. Testing roadmap actions include UI paths.163- **Classification limits:** AI classification of concept/angle from ad preview is approximate. Flag confidence level when ambiguous.164- **Minimum data:** Require 7+ days and $50+ spend per ad for performance comparisons. Newer ads go into "Insufficient Data" bucket.165- **Cross-platform context:** If user runs ads on Google/Bing too, note that creative learnings may transfer (video hooks, messaging angles) but format performance is platform-specific.166167## Profile Maintenance168169After completing analysis, if `${CLAUDE_PLUGIN_ROOT}/profile/account-profile.md` exists:1701. Note any creative gaps identified in Watch List.1712. If user commits to testing roadmap items, add to Active Tests.1723. Update "Last updated" date.173Present proposed profile changes to the user before writing.174175## References176177- `references/benchmarks.md` — 2026 Meta benchmarks by format and objective178- `references/ui-paths.md` — Meta Ads Manager UI paths for creating ads