Meta Ads
Weekly Competitor Watch
Every week, for a list of competitor brands: new creatives, long-runners, ads that disappeared (a likely retired winner) and shifts in offers and angles. Baseline first, then only changes.
Recommendations only: the prompt never changes your ad accounts.
How to run it
Three steps, about a minute.
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.
Paste the prompt
Copy the text below into a new chat.
Answer a few questions
The prompt asks only what it cannot find itself, then reads your data and answers in a fixed format.
- Guides in the blog
What it asks
- client
- brands
- schedule — every Monday 9:00
- new means — 7 days
Data it reads
- roasr_load_skill
- roasr_limits
- roasr_list_clients
- roasr_list_accounts
- roasr_spy_search
- roasr_spy_tag_leaderboard
Method
- roasr_frame
- creative_intel
- report_format
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.
Watch these competitors for [client: if not listed, call roasr_list_clients and let me pick]: [brands: competitor page names, comma-separated, up to 5]. Run it [schedule: every Monday 9:00 (default) | every Friday 9:00 | first day of the month | custom]. Count a creative as new if it appeared in the last [new means: 7 days (default) | 14 days | since the previous report].
1. **Load the RoASr method.** Call roasr_load_skill('roasr_frame'), roasr_load_skill('creative_intel') and roasr_load_skill('report_format') and follow them exactly.
2. **Frame the data.** Call roasr_limits, roasr_list_clients and roasr_list_accounts: plan (check that competitor intel is included and how many competitors it allows), niche, tone, account currencies and sync status. If currency.mixed is true, never sum money across accounts.
3. **Find the previous report.** If I pasted last week's report or it is in this conversation, take its list of ad_archive_ids, hooks and top tags as the previous state. If not, this is the first run: record a baseline and stop at step 5.
4. **Pull each brand.** For each brand call roasr_spy_search with brand set to the page name and limit 50. A brand that returns nothing is reported as "nothing found" and not guessed at.
5. **Baseline (first run).** Per brand: how many ads, the top 5 by days_live (hook, format, angle), the main offer type. Then roasr_spy_tag_leaderboard with limit 20 for the niche. Tell me to paste this report next time so the changes can be computed.
6. **Compare (later runs).** Per brand:
- New: ads that are in the results now but not in the previous state, or whose days_live is within the "new" window.
- Long-runners: ads that kept running and passed 30, 60 or 90 days. Mark them "likely a winner".
- Gone: ads from the previous state that are no longer in the results. The search returns a capped list, so before saying an ad is gone, check it was not just pushed out of the list: if the list was full, repeat the search with limit 100. A gone ad that ran a long time is a likely retired winner, or a creative that was replaced. Say "likely", it is not confirmed.
- Shift: changes in the offer type, in the main angle or in the format mix, backed by counts.
7. **Market tags.** roasr_spy_tag_leaderboard with limit 20: tags that moved up or down since the previous report.
8. **So what.** For each material change, one line on what it means for the client and a test or reaction to consider. Never copy competitor wording. The Ad Library shows no spend or results: no claims about their budget, CPA or ROAS.
**Delta discipline:** the first run records the baseline. Later runs report only what changed since the previous report: new ads, new long-runners, gone ads, shifts. Skip brands with no change. If nothing material changed for any brand, reply exactly: Nothing important has changed since the previous run. — and stop. Never pad the report.
**Output:** one headline sentence with the most important competitor move and its evidence. Then a table: brand · change type (new / long-runner / gone / shift) · what · evidence · likely meaning. Then 2–5 actions for the client grouped High / Medium / Nice-to-have, each with the expected effect.
**Output rules:**
- Recommendations only — never apply changes; RoASr tools are read-only.
- Say "likely" for everything inferred from days_live or from an ad going missing.
- Never copy competitor wording or assets.
- Answer in the language of this prompt.