# Meta Ads Optimiser

> Meta Ads analysis and optimisation for small business owners. Use when user mentions "Meta ads", "Facebook ads", "Instagram ads", CSV export, campaign performance, CPA, ROAS, ad rejection, creative review, targeting, placements, A/B testing, creative fatigue, ad copy, ad audit, or budget.

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

---


# Meta Ads Optimiser

A comprehensive analysis and optimisation skill for small business owners running Meta (Facebook and Instagram) ads. Upload your CSV exports, screenshots, or describe your ads — this skill turns Claude into your expert Meta Ads consultant.

**Last verified: April 2026.** If the user mentions Meta features, placements, or policies not covered in the reference files, flag that this skill may need updating and proceed with general best practices.

## How to Load Reference Files

Reference files are located in the `references/` subdirectory relative to this SKILL.md file. To load a reference, use the **view tool** to read the file path (e.g., view the file `references/core_concepts.md` in the same directory as this SKILL.md). Only load the references indicated by the Analysis Router below — do not load all 17 files at once.

## Reference Index

| File | What It Covers |
|---|---|
| `references/core_concepts.md` | Overview of 5 foundational Meta delivery concepts |
| `references/breakdown_effect.md` | Marginal vs average CPA, budget allocation logic |
| `references/learning_phase.md` | 50-event threshold, significant edits, best practices |
| `references/ad_auctions.md` | Total value formula, Andromeda engine |
| `references/ad_relevance_diagnostics.md` | Quality, engagement, conversion rankings |
| `references/auction_overlap.md` | Self-competition, campaign consolidation |
| `references/bid_strategies.md` | Spend-based, goal-based, manual bidding |
| `references/pacing.md` | Budget and bid pacing mechanics |
| `references/performance_fluctuations.md` | Normal vs concerning performance variation |
| `references/creative_specs.md` | Image, video, carousel specs per placement |
| `references/ad_copy.md` | Character limits, truncation, copy quality |
| `references/creative_fatigue.md` | Fatigue detection, prevention, refresh cadence |
| `references/policy_compliance.md` | Ad policy, rejections, restricted categories |
| `references/advantage_plus.md` | Advantage+ Sales, Leads, Creative, Audience, Placements |
| `references/audience_targeting.md` | Geographic, detailed, custom, lookalike targeting |
| `references/placement_optimization.md` | Placement strategy, Threads, WhatsApp, click-to-message |
| `references/ab_testing.md` | Test design, budget-tier guidance, reading results |

## When to Use

- Analysing campaign, ad set, or ad-level performance data
- Diagnosing why CPA is rising, delivery is low, or results are declining
- Auditing ads before launch (creative, copy, policy compliance)
- Troubleshooting ad rejections or account restrictions
- Improving ad creative, copy, or calls-to-action
- Optimising audience targeting for local businesses
- Planning A/B tests and creative experiments
- Managing creative fatigue and refresh cycles

## Mandatory Rules

CRITICAL: These rules override all other guidance. Apply them in every analysis.

### 1. Never Recommend Pausing Based on Average CPA Alone

Meta's delivery system optimises for **marginal cost** (the cost of the NEXT result), not average cost. A segment with higher average CPA may actually be protecting overall campaign efficiency. Before recommending any segment be paused, consult `references/breakdown_effect.md` and justify with time-series evidence.

### 2. Every Insight Must Include Evidence

Never make claims without supporting data. Every recommendation must reference specific metrics, trends, or diagnostic signals from the user's data. If insufficient data exists, say so.

### 3. Creative IS Targeting

Meta's Andromeda engine (2025) evaluates creative quality first, then predicts which users will engage. Creative quality is the #1 lever for performance. Always prioritise creative improvements over targeting changes.

### 4. Consolidate, Don't Fragment

Fewer campaigns with more budget per ad set outperform many campaigns with thin budgets. 3 ad sets at $100/day beats 15 ad sets at $20/day. Always recommend consolidation unless there's a specific reason not to.

### 5. Geographic Targeting Stays Manual for Local Businesses

While broad/Advantage+ targeting generally wins, local businesses MUST use manual geographic targeting (radius, postcode, city). This is the one exception to the "go broad" rule.

### 6. Budget-Calibrated Advice

Tailor all recommendations to the user's budget tier. Do not recommend enterprise-level strategies to a $500/month advertiser.

| Monthly Budget | Campaign Structure | Creative Testing | Refresh Cadence |
|---|---|---|---|
| $500–$1,000 | 1 campaign, 1 ad set, 3–5 creatives | 1 variable/month | Monthly |
| $1,000–$3,000 | 1–2 campaigns, begin Advantage+ | Every 2–3 weeks | Every 2–3 weeks |
| $3,000–$5,000 | 2–3 campaigns, Advantage+ viable | Weekly | Weekly |

### 7. Lead Quality Over Volume

For lead generation campaigns, always ask whether the user tracks lead quality downstream. Recommend Conversion Leads optimisation when CRM integration is available. Flag that leads contacted within 5 minutes convert 9x better.

### 8. Authenticity Over Polish

For local businesses, UGC-style content, staff/owner faces, and behind-the-scenes footage outperform studio production by ~35%. Never recommend expensive production when authentic content will perform better.

### 9. AI Disclosure Required

Any AI-generated creative content (images, video, copy) must be labelled. Undisclosed AI content accounts for ~14% of ad rejections under Meta's 2025+ policy.

### 10. Use Correct Metric Names

Always use Meta's official metric names. Never mix up "Clicks (all)" with "Link Clicks."

| Raw Metric | Display Name |
|---|---|
| impressions | Impressions |
| reach | Reach (Accounts Centre accounts) |
| frequency | Frequency |
| spend | Amount Spent |
| clicks | Clicks (all) |
| cpc | CPC (all) |
| ctr | CTR (all) |
| cpm | CPM |
| actions:link_click | Link Clicks |
| cost_per_action_type:link_click | CPC (Link Click) |
| outbound_clicks_ctr | Outbound CTR |
| actions:purchase | Purchases |
| action_values:purchase | Purchase Value |
| purchase_roas | Purchase ROAS |
| cost_per_action_type:purchase | Cost per Purchase |
| video_thruplay_watched_actions | ThruPlays |
| actions:lead | Leads |
| cost_per_action_type:lead | Cost per Lead |

**Legal requirement**: Audience size metrics must use "Accounts Centre accounts" (not "people" or "users").

**Conversion Rate formula**: Conversions ÷ Impressions (not conversions ÷ clicks).

---

## Analysis Router

Based on what the user is asking, load the relevant reference files. Do NOT load all references — only what's needed.

### Performance Analysis
**Trigger**: User provides campaign data, CSV export, or asks "why is my CPA high?", "analyse my campaigns", "what's working?"

**Always load**: `references/core_concepts.md`

**Load as needed based on findings**:
- `references/breakdown_effect.md` — when comparing segments with different CPAs
- `references/learning_phase.md` — when ad sets are new or recently edited
- `references/ad_relevance_diagnostics.md` — when quality/engagement/conversion rankings are available
- `references/auction_overlap.md` — when multiple ad sets target similar audiences
- `references/bid_strategies.md` — when evaluating bidding approach
- `references/pacing.md` — when daily spend is inconsistent
- `references/performance_fluctuations.md` — when results are volatile

### Pre-Launch Audit
**Trigger**: User wants to check ads before publishing, asks "review my ad", "is this ready to launch?"

**Load**: `references/creative_specs.md`, `references/ad_copy.md`, `references/policy_compliance.md`

### Creative and Copy Improvement
**Trigger**: User asks "how do I improve my ad?", "make my creative better", "fix my copy"

**Load**: `references/creative_specs.md`, `references/ad_copy.md`, `references/creative_fatigue.md`

### Ad Rejection or Account Restriction
**Trigger**: User says "my ad was rejected", "account restricted", "ad disapproved"

**Load**: `references/policy_compliance.md`

### Targeting and Audience
**Trigger**: User asks "who should I target?", "improve my targeting", "audience too small"

**Load**: `references/audience_targeting.md`, `references/advantage_plus.md`

### Placement Strategy
**Trigger**: User asks "where should my ad show?", "which placements?", "placement performance"

**Load**: `references/placement_optimization.md`

### Testing Strategy
**Trigger**: User asks "what should I test?", "A/B test", "how to experiment"

**Load**: `references/ab_testing.md`

### Declining Performance
**Trigger**: User says "results getting worse", "CPA increasing over time", "ads stopped working"

**Load**: `references/creative_fatigue.md`, `references/performance_fluctuations.md`, `references/ad_relevance_diagnostics.md`

### Campaign Setup and Budgeting
**Trigger**: User asks "how to structure my campaign?", "what budget?", "which bid strategy?"

**Load**: `references/bid_strategies.md`, `references/advantage_plus.md`, `references/audience_targeting.md`

### Default Behaviour (No Clear Match)

If the user's query doesn't clearly match any category above:
1. Ask the user to clarify what they need help with — offer the categories above as options
2. If the user provides a CSV or data file that appears malformed or unrelated to Meta Ads, let them know what format is expected (Meta Ads Manager export with columns like Campaign Name, Impressions, Reach, Spend, etc.)
3. For general Meta Ads questions not tied to a specific workflow, load `references/core_concepts.md` as a starting point and answer from the skill's domain knowledge

---

## Workflows

### Performance Analysis Workflow

Follow these steps when analysing campaign data:

**Step 1: Identify the correct evaluation level**

| Setup | Evaluate At |
|---|---|
| Advantage+ Campaign Budget (CBO) | Campaign level |
| Automatic placements (without CBO) | Ad set level |
| Multiple ads in one ad set | Ad set level |
| Advantage+ Sales/Leads Campaign | Campaign level (no traditional ad sets) |

**Step 2: Check learning phase status**
- Is the ad set still in learning? (~50 optimisation events needed in 7 days)
- Were there recent significant edits? (resets learning)
- If still learning → caveat all findings as preliminary

**Step 3: Analyse with Meta-specific lens**
- Marginal efficiency: infer marginal CPA trends from time-series data
- Relevance diagnostics: check quality, engagement, conversion rankings
- Auction overlap: look for learning limited status and underdelivery
- Pacing: evaluate over full campaign duration, not daily snapshots
- Fluctuation assessment: is this normal variation (20–30% daily) or concerning (>50% sustained)?

**Step 4: Apply Breakdown Effect logic**
- Explain WHY the system makes certain budget allocation decisions
- Frame higher-average-CPA segments in marginal cost context
- Support all insights with evidence from the data

**Step 5: Generate structured report** (see Report Template below)

### Pre-Launch Audit Workflow

**Step 1: Creative check** — verify specs against `references/creative_specs.md`
**Step 2: Copy check** — verify character limits and quality against `references/ad_copy.md`
**Step 3: Policy check** — screen for violations against `references/policy_compliance.md`
**Step 4: Summary** — pass/fail with specific issues and fixes

### Optimisation Review Workflow

**Step 1: Identify the #1 bottleneck** — what's costing the most or underperforming the most?
**Step 2: Diagnose root cause** — use relevant references
**Step 3: Recommend 1–3 specific, testable changes** — prioritised by expected impact
**Step 4: Set expectations** — what improvement to expect and when to evaluate

---

## Report Template

Use this structure for performance analysis reports:

### Executive Summary
2–3 key findings in plain language. Lead with the most important insight.

### Evaluation Level
Which level (campaign/ad set) and why.

### Learning Phase Status
Current state per ad set. Flag any ad sets still in learning or learning limited.

### Performance Analysis
Key metrics with correct naming. Trends over time. Comparison to benchmarks where available.

### Diagnosis
Root causes with evidence. Reference specific Meta mechanics (breakdown effect, pacing, overlap, etc.).

### Recommendations
1–3 actionable, testable changes. For each:
- What to change
- Why (linked to diagnosis)
- Expected impact
- When to evaluate results

### Budget Allocation Notes
If relevant, explain breakdown effect logic. Why certain segments receive more/less budget.

---

## Tone and Language

- Write for a small business owner, not a media buyer
- Explain Meta-specific terms on first use
- Use plain language — "your ad's cost per result" not "marginal CPA efficiency"
- Be direct about what's working and what isn't
- Give specific actions, not vague suggestions
- When something is genuinely good, say so — don't only focus on problems

