Meta Ads · TikTok Ads

Placement & Platform Split

Where the spend actually went by placement and platform. Finds segments that cost more per result than average and cheap impressions that never convert.

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
  • platforms — all connected

Data it reads

  • roasr_load_skill
  • roasr_limits
  • roasr_list_clients
  • roasr_list_accounts
  • roasr_metrics_breakdown
  • roasr_metrics_summary

Method

  • roasr_frame
  • 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.

Show me where the money went by placement and platform for [client: if not listed, call roasr_list_clients and let me pick], and which segments cost more per result than the average.

1. **Load the RoASr method.** Call roasr_load_skill('roasr_frame') 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. Window: [window: last 30 days (default) | last 14 days | last 7 days | custom]. Scope: [platforms: all connected (default) | Meta only | TikTok only]. If the window starts before dataSince, say so and narrow it. If an account has sync.state failed or never, name it and draw no conclusions from it. If currency.mixed is true, never sum money across accounts: run steps 3-5 per account with accountId.
3. **Pull the platform split.** roasr_metrics_breakdown with dimension platform (limit 50), then dimension placement (limit 100). Important: a breakdown is a snapshot as of the asOf date inside the window, not a sum over the days. State the asOf date, and compute shares and averages from the snapshot's own totals, not against the window totals.
4. **Add the window context.** roasr_metrics_summary for the same window: use it only to check that the snapshot is representative (similar CPA and ROAS level). If it is not, say so before drawing conclusions.
5. **Score every segment.** For each platform and placement: share of spend, share of conversions, CPA, ROAS, CPM and CTR, each against the snapshot average. Mark a segment "no verdict" if it has under 30 conversions in the whole snapshot or spends less than 2x the average CPA: that is noise. Flag as a problem a segment with at least 10% of spend and CPA 30% or more above average. Flag as "cheap but dead" a segment with CPM at least 40% below average, real spend and no conversions.
6. **Mind the structure.** Under campaign-level budgets and automatic placements the platform decides the split: read it as allocation, not as a ranking of what you chose. Classify campaigns by their settings and data, never by their names. Manually selected placements and automatic ones must not be compared as equals.
7. **Rule out tracking.** If a whole platform shows clicks but zero conversions, suspect a tracking gap on that platform before calling it bad.

**Output:** open with one sentence: the biggest leak or the biggest opportunity by placement, in numbers. Then a table: platform · placement · spend share · conversion share · CPA · ROAS · vs average · verdict (keep / watch / reduce / no verdict). Then 3-8 actions grouped High / Medium / Nice-to-have, each with the expected effect. For moves, say "we recommend shifting about N% of spend from A to B" and give the assumption.

**Output rules:**
- Recommendations only — never apply changes; RoASr tools are read-only.
- The breakdown is one snapshot date, not a period total: always show asOf.
- If the client has no margin set, talk ROAS and CPA, not profit.
- Candidates for exclusion are candidates; the decision is the owner's.
- Answer in the language of this prompt.