Meta Budget Optimizer logo

Meta Budget Optimizer

Organization
appeeky
meta-budget-optimizer

When the user wants to scale, pause, or reallocate Meta ad budget based on performance. Use when the user mentions "scale Meta ads", "increase Facebook budget", "pause underperforming Meta ads", "daily Meta optimization", or "budget rules for Facebook". For full diagnostics see meta-campaign-audit. For cross-channel moves see cross-channel-budget.

Overview

Publisherappeeky
Repositoryua-skills
Skill namemeta-budget-optimizer
Stars
73
Forks
5
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by appeeky on GitHub. Read the source before you install it.

Installation

Install the Meta Budget Optimizer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/appeeky/ua-skills/tree/main/skills/meta-budget-optimizer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/appeeky/ua-skills.git /tmp/ua-skills
mkdir -p .claude/skills
cp -r /tmp/ua-skills/skills/meta-budget-optimizer .claude/skills/meta-budget-optimizer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Meta Budget Optimizer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Meta Budget Optimizer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Meta Budget Optimizer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Meta Budget Optimizer

Daily and weekly budget allocation rules for Meta app campaigns. Apply after meta-campaign-setup launch and initial meta-campaign-audit at 48h.

Scale winners in small steps. Kill losers fast. Never let a bad ad eat 70% of spend unchecked.

Initial Assessment

  1. Read app-ads-context.md — target CPA, LTV, monthly cap
  2. Confirm active campaigns via meta_ads_list_campaigns
  3. Pull last 3 days ad-level insights before any change

Core Rules Engine

ConditionConfidenceAction
CPA < 0.8× target, 20+ convHigh+20% daily budget
CPA 0.8–1.2× targetMediumHold budget
CPA 1.2–1.5× target, 15+ convMediumHold; watch 48h
CPA > 1.5× target, 15+ convHigh−20% budget or pause weakest ad
Spend > 2× CPA, 0 convHighPause ad immediately
Frequency > 3.5, CTR down 25%+MediumNo scale — add creative first
Ad set CPA < target, budget capped noonHighRaise budget +20%
Campaign hits monthly cap—Reallocate from losers

Scale Increment Cap

Never increase > 20% per day on campaigns under $500/day — disrupts learning phase.

Current daily budgetMax single increase
$30–100+20% ($6–20)
$100–500+20%
$500++15–20% (test impact)
$2K++10–15% optional cost cap test

Daily Workflow

Step 1 — Pull Data

meta_ads_insights
  target_type: "ad_account"
  level: "ad"
  date_preset: "last_3d"
  fields: "spend,impressions,clicks,ctr,cpc,frequency,actions,cost_per_action_type"
  limit: 100

Or ad set scoped:

meta_ads_insights
  target_type: "adset"
  target_id: "<adset-id>"
  level: "ad"
  date_preset: "last_3d"
  fields: "spend,impressions,clicks,ctr,frequency,actions,cost_per_action_type"

Step 2 — Rank Ads by CPA

Sort ads with ≥ 5 conversions by CPA ascending. Ads with 0 conversions: check spend vs 2× CPA kill rule first.

TierDefinitionBudget share target
SCPA < 0.8× target50–70% of ad set spend
ACPA 0.8–1.0× target20–30%
BCPA 1.0–1.2× target10–20% hold
CCPA > 1.2× targetPause or min delivery
F0 conv, spend > 2× CPAPause

Step 3 — Apply Rules

Document each action before executing.

Step 4 — Execute Updates

Pause loser:

meta_ads_update_ad
  ad_id: "<ad-id>"
  status: "PAUSED"

Scale ad set:

meta_ads_update_adset
  adset_id: "<adset-id>"
  daily_budget_minor: 6000

Scale campaign (CBO only):

meta_ads_update_campaign
  campaign_id: "<campaign-id>"
  daily_budget_minor: 15000

Reduce budget:

meta_ads_update_adset
  adset_id: "<adset-id>"
  daily_budget_minor: 4000

Writes: 2 Appeeky API credits each.

Weekly Workflow

DayAction
MondayFull audit — meta-campaign-audit scorecard
Tue–ThuDaily optimizer (this skill)
FridayCreative fatigue check; plan refresh
WeekendLight check unless high spend

Weekly Reallocation

If running multiple ad sets:

  1. Sum spend-weighted CPA per ad set
  2. Shift 10–20% budget from worst quartile to best
  3. Do not move > 20% total budget in one day

Budget Cap Safety

Monthly Pacing

Monthly cap from app-ads-context: $10,000
Days remaining: 12
Spend to date: $7,200
Remaining: $2,800 → max $233/day

If current run rate exceeds cap, reduce budgets proportionally — don't wait for month-end.

Learning Phase Protection

SituationRule
Ad set < 50 conversions totalAvoid > 20% budget changes
New creative added same dayDon't scale budget same day
Geo expansion launchStart at test budget; don't scale 7d

Frequency Gate (no scale)

Before any scale action, check winner frequency:

meta_ads_insights
  target_type: "ad"
  target_id: "<winner-ad-id>"
  date_preset: "last_7d"
  fields: "frequency,ctr"
FrequencyScale?
< 2.5Yes if CPA good
2.5–3.5Scale cautiously (+10%)
> 3.5No scale — ad-creative-edit or new variant first

CBO vs ABO Strategy

ModeWhenOptimizer focus
ABO (ad set budget)Testing phasePer ad set rules
CBO (campaign budget)1+ proven ad setsCampaign-level cap; pause bad ad sets
HybridScale phaseCBO on winners campaign; ABO on tests

Testing: ABO — you control spend per test. Scaling: CBO — Meta shifts to winners within campaign.

Cross-Channel Rules

Pull comparison from cross-channel-performance:

ConditionAction
Meta CPA > TikTok CPA by 30%+Flag for cross-channel-budget
Meta ROAS best in portfolioProtect Meta share
Meta CPA rising 3 days straightCheck creative fatigue before cut
ASA brand cheap, Meta broad expensiveNormal — different intent

Do not slash Meta purely on CPA if LTV by channel differs — use campaign-profitability.

Decision Log Template

markdown
# Meta Budget Optimizer — [Date]

**Target CPA:** $20  |  **Period:** last_3d

## Actions Taken

| Entity | Before | After | Reason |
|--------|--------|-------|--------|
| Ad set US-iOS | $50/day | $60/day | CPA $14, 22 conv |
| Ad D - Transform | ACTIVE | PAUSED | $45 spend, 0 conv |
| Ad C - Premium | ACTIVE | ACTIVE | Hold — CPA $19, 8 conv |

## Ad Rankings

| Ad | Spend | Conv | CPA | Tier | Action |
|----|-------|------|-----|------|--------|
| B - UGC | $120 | 18 | $6.67 | S | Benefiting from scale |
| A - Problem | $95 | 12 | $7.92 | S | |
| C - Premium | $60 | 3 | $20.00 | B | Hold |
| D - Transform | $45 | 0 | — | F | Paused |

## Tomorrow
- [ ] Recheck C tier after 24h
- [ ] A′ creative on B if frequency > 3

## Monthly Pace
- Spend MTD: $X / $cap — on track / over

Scenario Playbook

Scenario: One ad dominates spend, good CPA

  • Action: Allow — Meta found winner. Ensure losers paused if CPA bad.
  • Optional: Duplicate winner to new ad set for incremental scale at 50+ conv.

Scenario: All ads mediocre CPA (1.2–1.5×)

  • Action: Hold budget. Run ad-creative-edit on best CTR ad.
  • Do not scale hoping it fixes itself.

Scenario: CPA spiked after scale

  • Action: Revert last budget increase. Check frequency and creative age.
  • Rule: If CPA > 1.3× target for 48h post-scale, roll back.

Scenario: Budget spent by 2pm daily

  • Action: +20% budget if CPA < target. If CPA bad, don't raise — delivery is telling you something.

Scenario: iOS reporting lag

  • Action: Use MMP CPA for decisions. Hold kills unless 2× CPA spend rule.

Benchmarks

MetricScale signalCut signal
CPA vs target< 0.8×> 1.5×
3-day CPA trendFlat or downUp 25%+
Frequency< 3> 3.5
Spend pacingEven deliveryFront-loaded junk
Winner conv count20+< 5 (hold)

Common Mistakes

MistakeFix
+50% budget dayMax +20%
Scaling with frequency 4Refresh creative first
Not pausing 0-conv ads2× CPA kill rule
Daily major restructuresOne change type per day
Ignoring monthly capPacing math weekly
CBO too earlyABO for tests first
Emotional creative loyaltyData tier system

Pre-Flight Checklist

- [ ] last_3d insights pulled
- [ ] Target CPA from app-ads-context.md
- [ ] Losers identified (F tier)
- [ ] Frequency checked on scale candidates
- [ ] Budget increase ≤ 20%
- [ ] Monthly pace checked
- [ ] Actions logged for user

Automation Cadence

Spend levelCheck frequency
< $50/day1× daily
$50–200/day2× daily (morning, evening)
$200+/day2× daily + weekly audit
$1K+/dayConsider rules + human review

Don't hover hourly — Meta delivery fluctuates intraday.

Related Skills

  • meta-campaign-audit — full diagnostic scorecard
  • meta-campaign-setup — structure reference
  • ad-creative-edit — fatigue refresh before scale
  • ad-creative-variants — new batch when all tiers weak
  • campaign-profitability — LTV-weighted decisions
  • cross-channel-budget — reallocate vs TikTok/ASA
  • cross-channel-performance — channel comparison data
  • app-ads-context — caps and targets

Frequently asked questions

What does the Meta Budget Optimizer AI skill do?

When the user wants to scale, pause, or reallocate Meta ad budget based on performance. Use when the user mentions "scale Meta ads", "increase Facebook budget", "pause underperforming Meta ads", "daily Meta optimization", or "budget rules for Facebook". For full diagnostics see meta-campaign-audit. For cross-channel moves see cross-channel-budget.

Why use Meta Budget Optimizer on TypingMind?

Because you install it once and use it with any model. Meta Budget Optimizer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Meta Budget Optimizer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/appeeky/ua-skills/tree/main/skills/meta-budget-optimizer. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Meta Budget Optimizer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Meta Budget Optimizer?

As many as you like. As long as a model supports skills, you can use Meta Budget Optimizer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Meta Budget Optimizer AI skill free?

It is published on GitHub by appeeky. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇