agentleFS
narayan-metaflownarayan-metaflow/metaflow-marketing-skills/skills/meta-ads-optimizer/SKILL.md

meta-ads-optimizer

Skill14 starsChanged 7 months agoMITView on GitHub

Optimize running Meta Ads campaigns — audience refinement, budget scaling, learning phase management, placement optimization, automation rules, and creative rotation coordination.

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 12 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Consolidation rule of thumb: If you have 5+ ad sets stuck in Learning Limited, consolidate to 2-3 larger ad sets with pooled budget.

    line 54
  2. Distinctive:

    Check placement-level performance monthly:

    line 128
  3. Distinctive:

    Start with notification-only rules before auto-actions

    line 158
  4. Distinctive:

    Always require minimum volume (100+ clicks, 10+ conversions) before rules trigger

    line 160
  5. Distinctive:

    When to ditch ASC: If ASC underperforms manual campaigns after 30 days with strong creative and tracking, the account may not have …

    line 175
  6. Distinctive:

    Use the meta-ads-creative-engine skill for systematic creative testing.

    line 238
  7. Distinctive:

    Add 6 new variants across formats: 2 static, 2 video (15-30 sec, 9:16 vertical), 2 UGC-style

    line 240
  8. Distinctive:

    Ensure new creative has strong 3-second hooks and captions (85% of Facebook videos watched without sound)

    line 241
  9. Distinctive:

    Day 3: Verify new creatives are spending and delivering

    line 252
  10. Distinctive:

    Day 7: Check frequency — should be dropping toward 3-4 range as new creatives absorb impressions

    line 253
  11. Distinctive:

    Rollback: If ROAS continues declining after creative refresh, the problem is deeper (tracking issue, offer/product problem, market shift).

    line 256
  12. Very specific:

    Offline Conversions API discontinued May 2025: If troubleshooting offline tracking, migrate to standard CAPI with action_source: …

    line 267
  13. Distinctive:

    Instant Experience change (June 2025): No longer counts as a landing page view.

    line 269

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Process

  1. Diagnose — Identify the specific performance issue (rising CPA, declining ROAS, learning phase stuck, placement inefficiency, etc.)
  2. Check tracking first — Most Meta performance issues trace back to signal quality. Verify CAPI, EMQ, event deduplication before optimizing bids/audiences
  3. Analyze root cause — Use the Diagnostic Decision Tree
  4. Select optimization lever — Match problem to framework
  5. Implement changes — Respect learning phase (don't touch ad sets <7 days old or with recent edits)
  6. Monitor for 5-7 days minimum — Meta needs time to stabilize after changes
  7. Iterate — Small, incremental adjustments

Diagnostic Decision Tree

SymptomMost Likely CauseStart Here
ROAS declining over 2-4 weeksCreative fatigue (most common)Creative Rotation → use meta-ads-creative-engine skill
CPA rising, frequency >4Confirmed creative fatigueCreative Rotation
CPA rising, frequency normalCPM inflation or competitionBudget/Bid Optimization → review CPM trend
Ad sets stuck in Learning LimitedToo many small ad sets OR weak signalsLearning Phase Management
Delivery dropping suddenlyCheck disapprovals, Special Ad Category flags, payment issuesAccount Health Check
Conversions dropped but clicks stableTracking issue — Pixel/CAPI problemUse meta-ads-tracking-setup skill
ASC underperformingWeak tracking, insufficient creative, or ratio wrongASC Optimization
Great CPA but can't scaleAudience saturation or budget jumps too aggressiveScaling Playbook
Retargeting CPA worse than prospectingAudience too small (<1K) or fatiguedAudience Refinement

Learning Phase Management

Meta's most critical optimization principle: keep ad sets OUT of learning phase as much as possible. Meta research: advertisers with <20% of spend in learning see up to 68% lower CPA.

Learning Phase Rules

RuleDetail
Duration5-7 days minimum (50 events needed to exit)
What resets learningBudget change >20%, audience change, creative swap, bid/optimization change, attribution window change
What doesn't resetAdding new ads (without removing old), small budget changes (<20%), pausing within ad set
Goal<20% of total spend in learning phase
Event volume needed50+ conversions/week per ad set to exit learning optimally. 25+ minimum for stability

Fixing "Learning Limited" Status

CauseFix
Budget too low for optimization eventIncrease budget OR optimize for higher-funnel event (e.g., switch Purchase → AddToCart if <25 purchases/week)
Audience too narrowExpand audience (broader lookalikes, remove restrictive filters)
Too many ad sets competingConsolidate ad sets with overlapping audiences
Weak Pixel/CAPI signalsFix tracking first — use meta-ads-tracking-setup skill
Creative failing to attract conversionsTest new creative (use meta-ads-creative-engine skill)

Consolidation rule of thumb: If you have 5+ ad sets stuck in Learning Limited, consolidate to 2-3 larger ad sets with pooled budget. The algorithm prefers fewer, larger ad sets with sufficient event volume.

Audience Optimization

Audience Refresh Triggers

TriggerAction
Frequency >4 at creative level for 7+ daysAudience fatigue — expand audience or refresh creative
CPA rising with stable creativeAudience saturation — expand lookalikes or add broader audience
Retargeting audience <1,000 usersToo small — expand recency window or consolidate with cold
CRM list >60 days oldRefresh customer match list
Custom audience not growingCheck event pixel firing; audiences capture from creation date forward

Expansion Tactics

Current StateExpansion Move
1% lookalike saturatedTest 2-3% lookalike
3% lookalike saturatedTest 5-10% or broad targeting
Narrow interest targetingRemove interests, test Advantage+ audience
Country-specific lookalikeExpand to new countries with localized creative

2025 best practice: Accounts with strong Pixel + CAPI signals typically find that broader audiences outperform narrower ones. The algorithm does the targeting work — your job is providing creative that converts.

Exclusion Maintenance

Post-March 2025: Detailed targeting exclusions removed. Use customer list exclusions instead.

ExclusionApply ToRefresh Cadence
Past purchasers (all time)Prospecting campaignsMonthly
Recent purchasers (30 days)Retargeting campaignsMonthly
Active subscribersProspectingMonthly
Engaged leads in pipelineProspectingWeekly

Budget Scaling Playbook

Vertical Scaling (increase budget on winners)

ActionRule
Budget increase20% maximum per change
FrequencyNo more than once per 3 days
RequirementAd set in Active status (not Learning), CPA at or below target for 3+ consecutive days
MonitorWatch for efficiency decay after each increase
If efficiency dropsHold for 7 days before next increase, or roll back

Why 20%? Larger jumps can reset the learning phase or destabilize delivery by shifting the algorithm's pacing too quickly.

Horizontal Scaling (duplicate or expand)

ActionWhen
Duplicate winning ad set with new audienceCurrent ad set saturated (rising frequency)
Launch new lookalike tier (1% → 2% → 5%)Need new audience pool
Launch in new geographiesValidated product-market fit in existing markets
Add new creative variantsFatigue detected (frequency >4)

CPM Context (Critical 2025 Factor)

Meta's average ad price rose 9% in 2025 (Meta Q1 2025 earnings). When diagnosing rising CPA, always check if CPM inflation is a contributing factor — it may be partial cause of efficiency decline, not creative or audience failure.

Placement Optimization

Advantage+ Placements (Default)

Let Meta distribute across all eligible placements. Recommended default unless:

  • You have creative only in certain specs (e.g., only 1:1 square — missing 4:5 Feed and 9:16 Reels)
  • You have strict brand safety requirements
  • You've verified via placement breakdown that specific placements consistently underperform

Manual Placement Review

Check placement-level performance monthly:

PlacementWatch ForFix
Facebook FeedStrong baseline — primary performanceEnsure 4:5 vertical creative
Instagram FeedStrong for younger audiencesEnsure 4:5 vertical creative
Instagram StoriesEphemeral, high engagement9:16 full vertical, captions mandatory
ReelsFastest-growing, mobile-first9:16, attention-grabbing hooks
Audience NetworkClicks but low quality?Exclude if conversion quality poor
MessengerSpecific use casesOnly include with messaging objective
Right ColumnLower CTR but cheap CPMInclude for remarketing

Decision rule: Exclude a placement if its CPA is >2x account average for 30+ days with sufficient volume (100+ clicks).

Automation Rules

Set up rules in Meta Ads Manager OR use third-party tools (Birch — formerly Revealbot, Madgicx).

Core Automation Rules

RuleTriggerAction
Pause underperformersCPA > 2x target for 3 days AND 100+ clicksPause ad
Budget scale winnersCPA < 70% of target for 3 days AND in Active statusIncrease budget 15%
Frequency controlFrequency > 5 at creative levelPause creative (or notify)
Low-quality placement exclusionPlacement CPA > 3x account avg for 7 daysExclude placement
Budget reallocationAd set A CPA < B CPA by 30%+Shift 20% of B's budget to A
Creative refresh alertCTR drops 20% below 7-day averageNotify team to add new creative

Best practices:

  • Start with notification-only rules before auto-actions
  • Set conservative thresholds first — tighten over time
  • Always require minimum volume (100+ clicks, 10+ conversions) before rules trigger
  • Exclude learning phase ad sets from optimization rules

ASC Optimization

Advantage+ Shopping Campaigns have limited manual levers. Optimize these:

LeverHow
Creative quality and volumeAdd new creatives weekly. Maintain 15-30 active creatives (max 150 per campaign)
Customer ratio (new vs existing)Test 70/30, 80/20, 90/10 splits based on your actual new customer acquisition needs
Catalog qualityKeep product feed fresh and complete — ASC uses catalog for dynamic product ads
Budget sufficiencyNeed 100+ conversions/week for ASC to work well. If volume insufficient, switch to manual campaigns
Pixel + CAPI strengthASC relies entirely on signal quality. EMQ below 6.0 = ASC underperforms

When to ditch ASC: If ASC underperforms manual campaigns after 30 days with strong creative and tracking, the account may not have sufficient conversion volume or signal quality for ASC to work. Fall back to manual 3-campaign structure (Prospecting + Retargeting + Testing).

Output Format

## Meta Ads Optimization Plan

### Current Performance Summary
| Metric | Current | Target | Gap |
|--------|---------|--------|-----|
| CPA | $[X] | $[X] | [gap] |
| ROAS | [X]x | [X]x | [gap] |
| Frequency | [X] | <4 | [status] |
| Learning phase spend % | [X]% | <20% | [status] |

### Root Cause Diagnosis
[Specific reason for the issue, tied to the Diagnostic Decision Tree]

### Optimization Actions (ICE-prioritized)
| Priority | Action | Lever | ICE Score | Timeline |
|----------|--------|-------|-----------|----------|
| 1 | [action] | [audience/budget/placement/automation] | [score] | [when] |

### Automation Rules to Add
[Specific rules with thresholds]

### Monitoring Plan
- Check [metric] after [X] days (minimum 5-7 for learning phase)
- Success criteria: [specific]
- Rollback plan: [if it doesn't work]

Example

Input: "I run an ecommerce store on Meta. Spending $12K/month. ROAS was 4.5x last month, now 2.8x. Frequency on my top ad set is 5.2. Using ASC. What should I do?"

Output:

Meta Ads Optimization Plan

Current Performance Summary

MetricCurrentTargetGap
ROAS2.8x4.5x-38%
Frequency5.2<4.0+30% over threshold
CPA(implied rising)HistoricalNeeds calculation
Learning phase spend %Unknown<20%Needs check

Root Cause Diagnosis

Creative fatigue is the primary driver. Frequency at 5.2 is well past Meta's fatigue threshold (>4). Meta's own research: 45% conversion rate drop at 4+ exposures. Your ROAS decline (-38%) is consistent with severe fatigue.

Secondary factor: Meta's average CPM rose 9% in 2025, contributing some background cost pressure.

Optimization Actions

PriorityActionLeverICE ScoreTimeline
1Refresh ASC creative: add 6-10 new creative variants, pause highest-frequency creativesCreative10×9×8 = 720Day 1-3
2Verify CAPI + EMQ (ASC depends on signal quality)Tracking9×8×8 = 576Day 1
3Check customer ratio setting — if 50/50, test 80/20 (new/existing) to push more acquisitionASC config7×7×9 = 441Day 2
4Add fatigue automation rule: pause creatives at frequency 5+Automation7×8×8 = 448Week 1
5Mix formats — if ASC is heavy on static images, add video/Reels-native contentCreative7×7×6 = 294Week 1-2

Creative Refresh Plan

Use the meta-ads-creative-engine skill for systematic creative testing. Immediate priorities:

  1. Pause 3 highest-frequency creatives today
  2. Add 6 new variants across formats: 2 static, 2 video (15-30 sec, 9:16 vertical), 2 UGC-style
  3. Ensure new creative has strong 3-second hooks and captions (85% of Facebook videos watched without sound)
  4. Maintain 15-30 active creatives in ASC (max ceiling is 150)

Automation Rules to Add

RuleThresholdAction
Fatigue pauseCreative frequency > 5.0 AND 7+ days activePause creative
Low performerAd CPA > 2x campaign avg AND 100+ clicksPause
Creative refresh alert3+ ads at frequency > 4Notify team

Monitoring Plan

  • Day 3: Verify new creatives are spending and delivering
  • Day 7: Check frequency — should be dropping toward 3-4 range as new creatives absorb impressions
  • Day 14: ROAS should start recovering toward 3.5-4.0x range as fatigue clears
  • Success criteria: ROAS above 3.8x within 21 days, frequency stable below 4.0
  • Rollback: If ROAS continues declining after creative refresh, the problem is deeper (tracking issue, offer/product problem, market shift). Use meta-ads-audit skill for full diagnostic.

Guidelines

  • Don't optimize during learning phase. 5-7 days minimum. Changes reset learning. The only exceptions are clear tracking failures (stop the bleeding) or disapprovals.
  • Don't change budgets by more than 20% at once. Even on winners, larger jumps destabilize Smart Bidding pacing.
  • Don't ignore creative frequency. It's the #1 leading indicator of Meta performance decline. Measure at the CREATIVE level, not ad or ad set level.
  • Don't over-segment ad sets. 2025 algorithm prefers consolidated ad sets with 50+ conversions/week. Combine warm and cold audiences. Let the algorithm sort.
  • Don't run rules without volume minimums. Rules triggering on 5 clicks will false-positive constantly. Require 100+ clicks and 10+ conversions minimum.
  • Don't skip tracking checks when performance drops. A "performance issue" is often a tracking issue. Verify Pixel fires, CAPI fires, EMQ is stable before touching campaigns.
  • Don't forget CPM context. Meta's avg CPM +9% in 2025. Some rising-CPA cases are partial CPM inflation, not creative/audience failure.
  • Offline Conversions API discontinued May 2025. If troubleshooting offline tracking, migrate to standard CAPI with action_source: physical_store or system_generated.
  • Attribution API change (October 2025): 7d_view and 28d_view windows removed from Insights API. If reports pull these, update reporting.
  • Instant Experience change (June 2025): No longer counts as a landing page view. Don't build funnel metrics assuming it does.
  • Cross-references: For tracking issues, use the meta-ads-tracking-setup skill. For creative testing and fatigue management, use the meta-ads-creative-engine skill. For full account diagnostic, use the meta-ads-audit skill. For Google Ads optimization, use the google-ads-optimizer skill. For cross-channel budget allocation, use the ad-spend-allocator skill.
  • Confidence: Automation rule thresholds are starting points — calibrate to your account's volume and variance. ASC's ~12% CPA reduction vs manual is a Meta benchmark; results vary significantly by account.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.