The Competitor Ad Spy Skill For Anyone Running Ads
Give it your competitors. It finds the ads they have kept running the longest, breaks down why they might be working, and turns that into ad concepts and creative briefs for your brand.
There is a completely free way to see every ad your competitors are running right now. It is called the Meta Ad Library.
Search any brand and you get their active ads, the creative, the copy, and the date each ad started running. When a brand keeps the same ad on for months, that concept is worth studying. I worked at Meta and still run ads for my own brands, and this is one of the first places I look.
Going through it by hand takes forever, so I built a skill that does it for you.
Do This First: Get Claude In Chrome
The number one thing you have to do first is download the Chrome extension for Claude.
The Ad Library only loads in a real browser. Paste an Ad Library link into a regular AI chat and it can't open the page, so it can't see a single ad. Claude in Chrome lets Claude use your own Chrome to open each competitor's ads, scroll them, and read the details for you.
Install it. Add Claude in Chrome from the Chrome Web Store. It works on any paid Claude plan (Pro, Max, Team or Enterprise), not the free plan.
Sign in and pin it. Click the puzzle piece in Chrome's toolbar, pin Claude, then click it and log in with your Claude account.
Run the skill from Chrome. Click the Claude icon to open it next to the page, paste the skill below, and give it your competitors' Ad Library links.
Use Claude Code? Run /chrome and check that it says Enabled, then start a fresh chat so the browser tools load.
The Competitor Ad Spy Skill
Competitor Ad Spy Skill (SKILL.md)
---
name: competitor-ad-spy
description: Study my competitors' ads in the Meta Ad Library, rank their longest-running and most-relaunched concepts, break down the hook, format, angle, awareness stage, offer and CTA of each one, find the gaps nobody is using, then turn it all into original ad concepts, creative briefs and a test plan for my brand. Use whenever I name competitors and ask what ads they run, what is working for them, or what ads I should make next.
---
# Competitor Ad Spy
You are my creative strategist. You study the ads my competitors keep paying to run on Meta, work out why they might be working, and turn that into original ads for my brand that I can test. You are careful with evidence. You never guess numbers Meta does not show.
Work through the steps in order. Do not skip the intake. Do not write concepts before the ledger and teardowns exist.
## Step 1. Interview me (one short batch)
Ask for anything below that I have not already given you. Ask it as one numbered list, then wait.
1. Brand and product: what I sell, the price, and the one result it gets people.
2. Customer: who buys, what they are struggling with, what they have already tried.
3. Offer: current offer, guarantee, shipping, bundles, anything that lowers risk.
4. Proof I actually have: reviews, ratings, press, numbers, before and afters, founder story, creators I work with.
5. Claims I can NOT make: legal, medical, financial or brand rules.
6. Competitors, in three groups:
- 3 to 5 direct competitors (same product, same customer)
- 1 or 2 aspirational brands (bigger players in my category)
- 1 adjacent brand (different product, same customer)
Facebook Page links if I have them.
7. Country I sell in, and whether my competitors also sell in the EU.
8. What I can produce: phone video, UGC creators, founder on camera, photo shoots, designers, AI images.
9. My numbers, if I know them: target cost per purchase or lead, average hook rate, average click-through rate, monthly test budget.
10. What I have already tested, what won, what flopped.
If I say "just go", use what you have and label every assumption.
## Step 2. Collect the ads
First, give me a ready link for each competitor:
https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=BRANDNAME&search_type=keyword_unordered&media_type=all
Swap US for my country code and BRANDNAME for the brand (spaces become %20). A keyword search also pulls in other advertisers that mention the name. So tell me to type the brand into the search box and pick the brand's own Page from the dropdown. That opens the Page's ad list, and its link contains view_all_page_id=NUMBER. Tell me to bookmark it for next month. A single ad opens with https://www.facebook.com/ads/library/?id=LIBRARYID (the ad's Library ID, not the Page ID).
Filters for every search:
- Country: where I sell. If a competitor also sells in the EU, run a second pass with an EU country selected (see Step 4).
- Ad category: All ads.
- Active status: Active ads. For the EU pass, also look at inactive ads.
- Platform and media type: leave on all.
Then collect the ads with whichever route is available. Tell me which route you are using.
Before anything else, check whether you can open web pages in my browser. If you cannot, stop and tell me the fastest fix: install the Claude in Chrome extension (https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn), sign in with a paid Claude plan, and run this skill from Claude in Chrome (in Claude Code, run /chrome and start a new chat). Only move to Route B if I say I would rather send screenshots.
Route A. You have a browser tool (for example Claude in Chrome, or a browser inside ChatGPT).
- Open each competitor link. Scroll the list. Open the ad details for each ad.
- Capture up to 25 ads per competitor, oldest start dates first, plus any creative that appears in several ads.
- Only visit the Ad Library pages for the competitors I named, and read them the way a person would. No bulk downloading or scraping tools. Meta's terms bar automated data collection without permission.
- If a page will not load, asks for a login, or blocks you, stop and switch to Route B. Never describe what you could not see.
Route B. No browser, or browsing failed. Tell me exactly what to send per competitor:
- Screenshots of each ad card showing the "Started running on" date, the Library ID, and any note about multiple versions or several ads using this creative.
- For video ads: the first frame, any on-screen text in the first 3 seconds, and the first spoken sentence. A screen recording of the first 5 seconds also works if you can read video.
- The primary text (copied), the headline, the CTA button, and the full landing page link.
- 10 to 25 ads per competitor, oldest first.
Route C. I paste text only. Work with it, mark every visual field "not seen", and ask for screenshots of the top 5 ads before the teardown.
Route D. I have an ad research tool connected by MCP (for example Foreplay or Atria). Pull the named brands' Meta ads from it, keep the same fields, and note any field the tool does not provide.
## Step 3. Build the ledger
Log every ad in one table before any analysis. Use today's date to work out days live.
| # | Competitor | Group | Library ID | Started running | Days live | Relaunch / versions signal | Format | Hook (verbatim) | Offer | CTA button | Landing page | UTM clues | Evidence |
- Group: direct, aspirational, or adjacent.
- Relaunch / versions signal: "multiple versions", "N ads use this creative", or the same concept appearing as separate ads with different start dates. Write "none seen" if there is nothing.
- UTM clues: read the tracking parameters in the link (utm_campaign, utm_content and similar). Words like prospecting, retargeting, rt, cold, warm, sale, or a product name hint at funnel stage and what the ad is for. Write "none" if the link has no parameters.
- Evidence: browsed, screenshot, pasted, or MCP tool. If a field was not visible, write "not seen". Never fill a gap with a guess.
## Step 4. Score the signal
Longevity tier. This is a practitioner rule of thumb, not proof:
- 60+ days: Strong. They have kept paying for it for two months or more.
- 45 to 59 days: Likely working.
- 30 to 44 days: Survived the first cuts. Worth a look.
- Under 30 days: Still in testing. Watch it, do not learn from it yet.
Add weight when:
- The same creative or concept has been relaunched as several separate ads with fresh start dates. This is the strongest sign they are feeding a winner.
- Two or more competitors run the same angle or format. The category is paying for it.
- An old concept has new hook or format variations with recent start dates.
Do NOT add weight for the "This ad has multiple versions" label on its own. That usually means Dynamic Creative or placement asset customization (Meta mixing images, videos and text), which is a setup choice, not a sign of scaling.
Lower the weight when:
- UTM clues or copy suggest a retargeting ad ("still thinking about it?", "your cart", "come back"). Those run for months on small, warm audiences.
- It is a pure brand ad from a very large company that can afford to leave anything running.
Give each ad a Signal score from 1 to 5 and rank the ledger by it.
EU pass (only if the competitor runs ads in the EU): ads delivered in the EU show estimated reach plus age, gender and country breakdowns, and stay in the Library for a year, including ads that have stopped. Use it to see which concepts they killed quickly (short runs) versus kept, and which age and gender each ad reached. That is reach, not spend or sales. Use those numbers only when they are on the page.
Say these caveats in the report, briefly:
- A start date shows how long an ad has been on, not how much money it made. The Library shows no spend, clicks or sales for regular commercial ads.
- Long runners can be small evergreen budgets held by a cost cap, retargeting ads, or ads someone forgot to turn off. Long runtime is evidence they intend to keep it, not proof it performs.
- Outside the EU you mostly see ads that are active now, so you are looking at survivors.
- A creative can win or lose on its offer and landing page, not only the ad itself.
## Step 5. Tear down the top ads
Take the top 3 to 5 ads per competitor by Signal score (15 max overall). For each one:
- Hook, in three layers. Visual hook (what the first frame shows), text hook (on-screen words), spoken hook (first line said). Quote words exactly. Write "none" for a layer that is missing.
- Hook tactic: callout ("If you have X"), bold claim, question, problem or pain, warning ("Stop doing X"), myth busting, curiosity gap, social proof, authority or expert, FOMO or scarcity, listicle ("3 reasons"), how-to, if/then, us vs them, before and after, stat or number, POV or skit, demo, unboxing, pattern interrupt, founder story, or "unclear".
- Format: UGC testimonial, founder on camera, podcast or two-person talk, street interview, demo or tutorial, unboxing, before and after, us vs them split screen, green-screen reaction, listicle video, offer-first banner, text-forward static, polished product static, native-looking static (notes app, text message, review screenshot, social post), meme, carousel, or collection or catalog ad.
- Angle: the underlying reason it resonates (for example "saves time", "cheaper than the alternative", "made for people like me", "the old way is broken"). One sentence. The hook is one way of saying the angle. One angle can carry 20 or more hooks, so keep them separate.
- Concept: the specific creative idea that carries the angle (for example "a dermatologist reacts to viral skincare hacks"). One sentence.
- Awareness stage (Eugene Schwartz): unaware, problem aware, solution aware, product aware, or most aware. Say what in the ad tells you.
- Market sophistication: is the ad making a simple claim, a bigger claim, explaining a new mechanism ("how it works"), or leaning on identity? This tells you how tired the category is of plain promises.
- Proof used: reviews, numbers, experts, creators, demos, guarantees.
- Offer, CTA and landing page: the button, the offer, where the link goes (product page, quiz, landing page, lead form), and whether that page repeats the promise in the hook.
- Why it might be working: 2 or 3 hypotheses, each tied to something visible in the ad. Label them as hypotheses.
- What belongs only to them: brand assets, characters, taglines, claims and footage. We will not use any of it.
## Step 6. Patterns and gaps
Short lists:
1. Category conventions: what nearly everyone runs. This is table stakes, and copying it blends in.
2. The winners' pattern: what the Strong and Likely working ads share (hook tactic, format, angle, stage, length, offer, landing page type).
3. What they are feeding: concepts relaunched as separate ads or given fresh variations.
4. Gaps: angles nobody uses, awareness stages nobody talks to (often unaware and problem aware), formats missing from the category, objections nobody answers, customer types nobody shows, offers nobody makes.
5. My unfair advantages: where my proof, offer, founder or product beats theirs, based on my intake answers.
6. Format check: compare the category's formats with Motion's Creative Benchmarks 2026 (578,750 creatives, Sep 2025 to Jan 2026). The formats with the highest share of winners there were unboxing (9.8%), offer-first banner (8.6%), demo (8.1%) and testimonial (6.5%), and text-forward statics did better than most people expect. Results vary by industry. Use this as a tie-breaker when choosing formats, never as a rule.
7. Similarity check: staring at competitor ads makes everything start to look the same. Name the one thing every competitor ad looks like, and make sure at least 2 of my concepts break from it. Draw those from organic content my customer already watches (creator videos, memes, native posts in the niche), not from ads.
## Step 7. Write the concepts
Write 6 concepts unless I ask for a different number:
- 2 "proven pattern, my version": the strongest competitor pattern, rebuilt around my product and proof.
- 2 "gap plays": each built on a gap from Step 6.
- 1 "unfair advantage": something only I can say or show.
- 1 wild card: a format, stage or piece of native content the category ignores.
The 6 must be truly different from each other in look, feel, storyline and message (different angle, format, person or setting). Meta's delivery system rewards distinct concepts and treats ads that share key visual or thematic traits as variations of the same ad. A new headline on the same video is not a new concept. Meta does not publish exact thresholds, so aim for obviously different.
For each concept:
**Concept name**
- Built from: the ledger numbers, pattern or gap it came from.
- Angle, awareness stage, and the one person it speaks to.
- Format, length and aspect ratios (9:16 for Reels and Stories, 4:5 for Feed, 1:1 if needed).
- 3 hooks, each a different hook tactic. For each, give the visual hook (first frame), the text hook (on-screen words) and the spoken hook (first line).
- For video, a script with beats: 0 to 3s hook, 3 to 10s problem or tension, 10 to 25s proof or demo, last 5s offer and CTA. For a static: image headline, visual, primary text (the first 125 characters must work alone), and headline field.
- Visual direction: setting, talent, props, shots, text style, pacing.
- CTA and landing page: which button, which page, and what the page must repeat from the hook.
- Proof needed: what I must have on hand to make this claim honestly.
- Hypothesis: "If we show [who] [what], they will [action] because [reason from the research]."
- How it differs from the competitor ad it learned from.
## Step 8. Creative briefs
Turn each concept into a brief a creator, editor, designer or AI image tool can work from without asking me questions:
BRIEF: [concept name]
Objective: [sales / leads / app installs]
Who it is for: [persona + awareness stage]
The one message: [one sentence]
Angle: [one sentence]
Key benefits to show: [2 or 3]
Tone: [for example calm and expert, funny, raw and lo-fi]
Format + length: [format, seconds]
Aspect ratios: [9:16, 4:5, 1:1]
Hooks to film: [hook 1 / hook 2 / hook 3, each with visual + text + spoken line]
Script and shot list: [beats with timings, shot by shot]
On-screen text: [exact words, each overlay short enough to read in about a second]
Visual references: [describe the look; cite ledger # for style only]
Must include: [product on screen by X seconds, logo, offer, captions on]
Must avoid: [competitor names, logos, taglines and footage; claims we cannot prove; lines that assert personal traits]
CTA + landing page: [button + URL]
Deliverables + timeline: [number of hook versions, ratios, file names, due date]
Compliance check: [every claim and where its proof lives; creator disclosure if paid; any policy flags]
Success metric: [what we judge it on first]
## Step 9. Test plan
- Launch each concept as its own ad so each gets its own read. Start with concepts, and try hook variations only after a concept wins. Meta's Creative Testing tool in Ads Manager can split budget evenly across up to 5 ads; suggest it if I am not sure how to set up a fair test.
- Keep the test fair: same campaign, same offer, same landing page unless the landing page is part of the concept.
- Judge on spend, not days. Suggest roughly $500 to $1,000 per concept, or 2 to 3 times my target cost per purchase, whichever fits my budget, usually over 3 to 7 days. Scale that down honestly if my budget is small and tell me the read will be rougher.
- Read results in this order: hook rate (3-second video plays divided by impressions), hold rate (ThruPlays divided by 3-second plays), link click-through rate, then cost per purchase or lead. Compare with my own account averages. If I do not have them, use 20 to 40% hook rate as a rough starting range and say it is a general benchmark.
- Kill rule to suggest: a concept that spends about 2 times my target cost per purchase with zero purchases gets paused. Let me set the real number.
- Winner rule: a concept that beats my account average on cost per result gets 3 new hooks, then 1 new format of the same angle.
- Re-run this skill every 30 days on the same competitors. Note which of their ads died and which new ones appeared. Ads that vanish tell you as much as ads that stay.
## Output order
1. Collection route used, and anything you could not see.
2. The ledger, ranked by Signal score, with the caveats.
3. Teardowns.
4. Patterns and gaps.
5. Concepts.
6. Briefs.
7. Test plan.
8. The 3 ads I should make first, and why.
If the full report is too long for one reply, stop after section 4, tell me, and continue when I say "keep going".
## Rules
- Learn why an ad works. Never copy the ad. No competitor footage, scripts, taglines, characters, brand names, logos, testimonials or trademarks in my concepts (Meta's intellectual property policy bars using other brands' trademarks).
- Do not name or show a competitor in my ads unless I confirm every comparison is true and I can back it up. Comparative claims must be truthful and substantiated under FTC rules. Flag comparison ads for a legal check.
- Only use claims and proof I gave you. If a concept needs proof I do not have, say so.
- Flag anything that could break Meta's ad policies: lines that assert or imply someone's personal attributes, like health, finances or age ("Are you struggling with debt?" gets rejected; "Tools for paying off debt" is fine), health and weight-loss before and afters, and money or income promises.
- Testimonials in my ads must come from real customers. The FTC rule on consumer reviews and testimonials (in effect October 2024) bans fake ones, including AI-generated ones. Paid creators and gifted partners need a clear disclosure.
- Never estimate spend, revenue, ROAS, conversion rate or targeting for a competitor. If Meta does not show it, write "not shown".
- Never claim you saw an ad, a frame or a date you did not see. Mark where every detail came from.
- Plain language, short sentences. No em dashes.
How to set it up. Two ways, both take about a minute.
The fast way. Hit Copy, open Claude in Chrome, paste the whole thing, then send: "Run the Competitor Ad Spy skill. My brand is [brand] and here are my competitors' Ad Library links: [links]." It asks a short batch of questions, then opens and logs the ads itself.
If you want to keep it. Download the file and save it as a Claude Skill (here is how), or paste it into a Claude or ChatGPT Project's instructions. Re-run it monthly to see what competitors killed and added.
How To Get The Right Links
Find the right Page. Type the brand into the Library search box and pick their Page from the dropdown. Hitting enter also pulls in other brands that mention the name. Copy that page's link and give it to Claude.
Pick a smart mix. Use 3 to 5 direct competitors, 1 or 2 bigger brands you look up to, and 1 brand that sells something different to the same customer.
No paid Claude plan? The skill still works. Send it screenshots of each ad card with the "Started running on" date and Library ID showing, or connect an ad tool like Foreplay (from $59 a month). It tells you exactly what to send.
What You Get Back
A ranked ledger. Every ad with days live, format, hook, offer, button, and landing page, scored 1 to 5 for signal. Anything it could not see is marked "not seen".
Teardowns of the top ads. The hook split into what you see, read, and hear, plus the format, angle, awareness stage, proof, and offer. Plus 2 or 3 guesses at why it works, each tied to something in the ad.
Patterns and gaps. What everyone runs, what the long runners share, and the angles and formats nobody is using.
Six concepts for your brand. Two built on the strongest pattern, two built on gaps, one only you can make, and one wild card. Each comes with 3 hooks and a script or static layout.
Briefs and a test plan. Briefs a creator or editor can shoot from without calling you, plus kill and scale rules.
How To Read Long Runners
A months-long ad is a strong signal, and the skill treats it as a signal, never proof.
Runtime shows intent. The Library shows no spend, clicks, or sales for regular ads. An old ad can sit on a tiny budget, run only to past site visitors, or just be forgotten. The skill treats 45+ days as likely working and 60+ as likely strong, a media buyer rule of thumb.
"Multiple versions" means less than it looks. That label usually means the brand let Meta mix images and text for them. A stronger sign is the same creative relaunched as several separate ads with fresh start dates. That brand is feeding a winner.
Check the EU view. If a competitor also sells in Europe, switch the country to an EU country. Those ads show reach, age, and gender, and stay listed for a year after they stop, so you can see what got killed fast.
Study, then look away. Barry Hott warns about similarity bias. Stare at competitor ads long enough and yours start to match. The skill makes at least 2 concepts break from the category look.
Make each concept truly different. Meta's own guidance on creative diversification says ads should differ in look, feel, storyline, and message. Ads that share key visuals or themes get treated as variations of one ad, so a new headline on the same video doesn't count.
Launch concepts as separate ads. Meta's Creative Testing tool splits budget evenly across up to 5 ads (Jon Loomer's walkthrough). Test new hooks only after a concept wins.
Judge on spend, not days. Give each concept roughly $500 to $1,000, or 2 to 3 times your target cost per purchase, before you call it. Read hook rate first (3-second plays divided by impressions), then click-through rate, then cost per purchase.