Meta Ads · Google Ads
Ad Copy Variants from Competitor Angles
Finds competitor ads by keyword or brand, breaks down 3–5 with Vision and writes original ad text for Meta and Google RSA in your client's tone.
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
- search by — keyword
- keyword or brand
- platform — Meta
- tone — the client's tone from RoASr
Data it reads
- roasr_load_skill
- roasr_limits
- roasr_list_clients
- roasr_list_accounts
- roasr_spy_search
- roasr_vision_analyze
Method
- roasr_frame
- creative_intel
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.
Write ad copy variants for [client: if not listed, call roasr_list_clients and let me pick] using the angles competitors run longest. Search by [search by: keyword (default) | competitor brand | both]: [keyword or brand: the phrase or the page name to look for]. Output for [platform: Meta (default) | Google RSA | both]. Tone: [tone: the client's tone from RoASr (default) | friendly | expert | bold].
1. **Load the RoASr method.** Call roasr_load_skill('roasr_frame') and roasr_load_skill('creative_intel') 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), niche, margin, KPI, tone, account currencies and sync status. If currency.mixed is true, never sum money across accounts.
3. **Find the ads.** roasr_spy_search with the keyword as query and/or the brand as brand, limit 30. Rank by days_live and by how many variants share an angle. days_live is a proxy: say "likely a winner". If nothing comes back, say so, suggest a broader keyword or a different spelling of the brand, and stop; do not invent competitor ads.
4. **Break down 3–5.** Take the top 3–5 distinct angles and call roasr_vision_analyze with each ad_archive_id (adArchiveId). Note hook, angle, strengths and risks. If an ad has not been analysed yet, say that the analysis has to be started inside the RoASr app, and work from the hook and headline returned by the search for that one.
5. **Pick the angles.** Group the findings into 3–5 angles (pain, outcome, social proof, offer, comparison, objection handling). Drop angles the client cannot honestly back with its own context from roasr_list_clients.
6. **Write the copy.** Original wording only, in the client's tone. Never reuse a competitor's phrases, claims or trademarks, and never invent guarantees, prices or numbers the client context does not contain.
- Meta: for each angle, 2 primary texts (125 characters before the cut-off is the part people see, so lead with the hook), 3 headlines up to 40 characters, and a call to action.
- Google RSA: 15 headlines up to 30 characters and 4 descriptions up to 90 characters, spread over the angles; put the characters count next to each line and rewrite anything over the limit. Do not pin headlines unless needed.
7. **Mark what is risky.** Flag lines that make health, income or before/after claims and need a compliance check on the platform.
**Output:** one sentence naming the angle that appears to carry the market and the evidence. Then a table of the angles (angle · evidence · likely strength · risk). Then the copy grouped by platform and angle, with the character count per Google line. Finish with 3–5 actions grouped High / Medium / Nice-to-have, such as which pair of angles to test first.
**Output rules:**
- Recommendations only — never apply changes; RoASr tools are read-only.
- Never copy competitor wording; adapt the angle, not the words.
- Say "likely" for everything inferred from days_live; the Ad Library shows no spend or results.
- Google headlines max 30 characters, descriptions max 90; verify every line.
- Answer in the language of this prompt.