Ad creative research with an API: mine the ad libraries
Ad creative research pulls competitors' ads from the public ad libraries each week, transcribes the video ads, and tags each one by hook, angle and format, using how long an ad has run as a rough sign of a winner. Tracking 20 competitors weekly on Meta, Google, LinkedIn and TikTok costs about 3,300 credits a month on ScrapeIO, or about 1,626 credits ($3.06) if Google runs monthly.
Ad creative research turns competitors' public ads into a swipe file your team can learn from: which hooks they test, which angles they keep, which formats they put money behind. The ad libraries show the ads. An API lets you collect them every week, keep the history, and add transcripts so you can search what the ads say.
Who does this and why
- Performance creative teams look for hooks and formats to test next.
- Media buyers watch when competitors scale or pause campaigns.
- Strategists and founders learn a market's messaging before they write their own.
What each ad library covers, and its limits by region, is in ad library APIs compared, with platform detail in Meta Ad Library API, Google Ads Transparency Center, LinkedIn Ad Library and TikTok ad library research. This page is about the research method on top.
The data you need
| Step | Platform | Endpoint | Credits |
|---|---|---|---|
| 1. Find the advertiser | Meta | Meta company search | 1 |
| 1. Find the advertiser | Google advertiser search | 1 | |
| 2. List their ads | Meta | Meta company ads | 1 per page |
| 2. List their ads | Google company ads | 25 | |
| 2. List their ads | LinkedIn, TikTok | LinkedIn ads search, TikTok ad library search | 1 |
| 3. Ad detail | Meta, Google, LinkedIn, TikTok | Meta ad, Google ad, LinkedIn ad, TikTok ad | 1 |
| 4. What the video says | Meta | Meta ad transcript | 1 |
| 5. Search by theme | Meta | Meta ad search | 1 per page |
| 6. Organic comparison | TikTok, Instagram | TikTok top search, Instagram reels search | 1 |
Worked example: 20 competitors, weekly
- Meta: 3 pages of active ads per competitor: 20 x 3 = 60 credits.
- Google: 1 call per competitor at 25 credits: 20 x 25 = 500 credits.
- LinkedIn and TikTok: 1 call each per competitor: 40 credits.
- Detail on about 100 new ads a week: 100 credits.
- Transcripts on about 60 new video ads: 60 credits.
That is 760 credits a week, about 3,300 credits a month (4.33 weeks), or about $6.20 on the $47 pack. Google is two thirds of the bill. Run Google monthly instead of weekly and the month drops to about 1,626 credits (260 a week x 4.33 + 500), or about $3.06. Check that monthly is often enough for your market by comparing two weekly pulls first.
Code: pull active Meta ads for a company
curl -G "https://scrapeio.com/v1/facebook/adLibrary/company/ads" \
--data-urlencode "companyName=Acme Coffee" \
-d country=US -d status=ACTIVE -d media_type=VIDEO \
-H "x-api-key: YOUR_KEY"
curl -G "https://scrapeio.com/v1/facebook/adLibrary/search/ads" \
--data-urlencode "query=cold brew" \
-d search_type=keyword_exact_phrase -d country=US -d status=ACTIVE \
-H "x-api-key: YOUR_KEY"
The first call lists one advertiser's live video ads. The second finds every advertiser using an exact phrase, which is how you discover competitors you did not know about. Page through with the cursor the response returns.
The analysis: tag, then count
Give every ad four tags. Keep the lists short so two people would tag the same ad the same way.
- Hook (first 3 seconds or first line): question, bold claim, problem shown, social proof, offer, demo.
- Angle: price, speed, quality, health, identity, fear of missing out.
- Format: talking head, UGC style, product demo, static image, carousel, meme.
- Offer: none, discount, free trial, bundle, free shipping.
Then compute:
- Longevity = today - the ad's start date. An ad that has run for 60 days is probably paying for itself, because advertisers usually turn losers off. Treat it as a hint, not proof: brand campaigns and forgotten ads also run long.
- Angle share = ads using an angle / all active ads for that competitor. A rising share means they found something that works.
- Refresh rate = new ads per week. A jump often means a launch or a new agency.
- Variant count = ads that share one transcript or headline. Many variants of one script means it is a winner being scaled.
Pitfalls
- Duplicates. One creative can appear as dozens of ads with different targeting. Group by a hash of the transcript or main text before counting.
- Coverage differs by region and platform. What a library shows depends on the country and the ad type. Read the platform posts linked above before comparing counts across libraries.
- No spend data for most ads. Do not rank competitors by budget from ad counts alone.
- Copying. Learn the pattern, not the ad. Lifting a competitor's script or footage is a fast route to a takedown.
Run it from an AI agent
The ad-library-research skill gives Claude Code or Cursor this workflow. With the MCP server connected:
List Acme Coffee's active video ads in the US on Meta.
Transcribe the 15 that have run longest, tag each by hook,
angle and format, and tell me which angle has the most variants.
Then compare with the top organic TikToks for "cold brew".
The agent calls facebook_adlibrary_company_ads, then the transcript tool, then tiktok_search_top. Ask it to show the ad ids it used, so you can open each one.
Doing it with ScrapeIO
Meta, Google, LinkedIn and TikTok ad libraries are on one key, next to the organic endpoints you need for comparison. Most calls are 1 credit; Google company ads is 25, so schedule it less often.
100 free credits, no card. Credits never expire.
Get API key