Meta Ads · Google Ads · TikTok Ads

Budget Reallocation by Efficiency

Compare campaigns by profit or ROAS/CPA, check stability and diminishing returns, and get a cautious proposal for shifting a share of spend.

Connect RoASr

Recommendations only: the prompt never changes your ad accounts.

How to run it

Three steps, about a minute.

  1. Connect RoASr to Claude or ChatGPT

    Create an API key in RoASr and add the RoASr MCP server. Access is read-only: the prompt cannot change anything in your ad accounts.

  2. Paste the prompt

    Copy the text below into a new chat.

  3. Answer a few questions

    The prompt asks only what it cannot find itself, then reads your data and answers in a fixed format.

  4. Guides in the blog

What it asks

  • client
  • window — last 30 days
  • optimize for — profit when margin is set, otherwise ROAS or CPA
  • shift size — up to 10% of spend

Data it reads

  • roasr_load_skill
  • roasr_limits
  • roasr_list_clients
  • roasr_list_accounts
  • roasr_metrics_campaigns
  • roasr_metrics_daily

Method

  • roasr_frame
  • profit_math
  • meta_analysis
Full prompt

The prompt

Before you start, ask me about each [input] below — one question at a time, with ready-made answers to pick from; skip whatever you can already tell.

Find where [client: if not listed, call roasr_list_clients and let me pick] should move a share of ad spend: from campaigns that return less to campaigns that return more, without overstating the gain.

1. **Load the RoASr method.** Call roasr_load_skill('roasr_frame'), roasr_load_skill('profit_math') and roasr_load_skill('meta_analysis') and follow them exactly.
2. **Frame the data.** Call roasr_limits, roasr_list_clients and roasr_list_accounts: plan, niche, margin, KPI, account currencies, sync status and dataSince. Use [window: last 30 days (default) | last 14 days | last 60 days | custom]. If the window starts before dataSince, say so and narrow it. If currency.mixed is true, never sum money across accounts; shifts are proposed only within one account or one currency. Name any account whose sync is failed or never and leave it out.
3. **Choose the yardstick.** Optimize for [optimize for: profit when margin is set, otherwise ROAS or CPA (default) | ROAS | CPA | profit]. Profit is allowed only if the client has a margin set (revenue x margin - spend); otherwise say so and use ROAS or CPA. Decide ROAS versus CPA from the client's KPI and the conversion type, not from guesses.
4. **Rank the campaigns.** roasr_metrics_campaigns, campaign level, limit 200: spend, conversions, revenue, ROAS, CPA. Classify campaigns by objective and settings, not by name. Under a campaign budget (CBO or Advantage+), ad set numbers show allocation, not ranking: compare campaigns, never ad sets inside one campaign. Mark campaigns below the noise floor from the method (too few conversions or too little spend) as "not enough data" and keep them out of both sides of the shift.
5. **Test stability and returns.** For the top candidates on each side, roasr_metrics_daily with entityRef campaign:<id>: is the efficiency steady or one lucky week? Did efficiency fall on days when spend was higher (diminishing returns)? Is the recent week worse than the window average? A recipient whose results come from a spike or a spend cut is not a recipient.
6. **Size the shift.** Propose moving about [shift size: up to 10% of spend (default) | up to 20% | up to 30% | custom] from weak to strong campaigns, in steps small enough not to reset learning. Marginal return is lower than average return: haircut the expected gain and present it as an upper bound. Moves between platforms are lower confidence, because attribution differs between them; say so.

**Output:** open with one sentence — the main shift (from which campaigns to which, about how much) and your confidence (high / medium / low). Then a table: campaign · platform · spend · yardstick value · stability · verdict (donor / recipient / hold / not enough data) · suggested share of spend. Then 3–6 actions grouped High / Medium / Nice-to-have, each with the expected effect as an upper bound and what to check a week later.

**Output rules:**
- Recommendations only — never apply changes; RoASr tools are read-only.
- Say "we recommend moving about N% of spend", never "set a budget"; the decision is mine.
- Shifts stay within one account or one currency; never add money across currencies.
- reach and frequency are not additive across days; conversion buckets are not additive.
- If the client has no margin set, talk ROAS and CPA, not profit.
- Answer in the language of this prompt.