The best way to do Meta Ad Library competitor research is to combine Meta's free public Ad Library with a scraper that exports results to CSV or JSON. Manual browsing works for spot checks on 5–10 ads, but once you need to track hundreds of creatives across a dozen competitors weekly, you need automation. The Facebook Ad Library Scraper pulls live ads by page or keyword and returns structured data including creative URLs, ad copy, and landing pages.
Quick Answer
For Meta Ad Library competitor research, use Meta's official Ad Library (free, manual) for one-off checks, and a pay-per-use scraper like the Facebook Ad Library Scraper on Apify for bulk extraction. Paid SaaS tools like AdSpy, Sociavault, and Stevesie cost $99–$300/month flat, while pay-per-use scrapers typically run $1–$5 per 1,000 ads. The right choice depends on volume: under 500 ads/month, manual + a scraper beats SaaS by 5–10x on cost. Above that, evaluate based on filter depth and creative download support.
Why use the Meta Ad Library for competitor research?
Meta's Ad Library (launched 2019) is a public database of every ad currently running on Facebook, Instagram, Messenger, and Audience Network. It exists because of regulatory pressure around political ad transparency, but it covers all ad types — not just political ones — for the EU, and political/issue ads globally.
For marketers, this means you can see:
- Every ad a competitor is currently running
- When each ad started running (duration = signal of profitability)
- Multiple creative variants per campaign
- Targeting basics (country, sometimes demographics for political ads)
- Landing page URLs
The catch: the UI is built for human browsing. It paginates slowly, has no bulk export, and creative URLs expire. That's where scrapers come in.
What tools exist for Meta Ad Library scraping?
Here's how the main options compare in 2026:
| Tool | Pricing | Best for |
|---|---|---|
| Meta Ad Library (official) | Free | Manual spot checks, 1–20 ads |
| Facebook Ad Library Scraper (Apify) | Pay-per-use, ~$1–5/1k ads | Bulk extraction, one-off projects |
| AdSpy | $149/mo + $99 setup | Cross-network ad spying |
| Sociavault | $99–$299/mo | Tracked competitor dashboards |
| Stevesie API | $29–$99/mo | Developers building tools |
| BigSpy | $9–$249/mo | E-commerce dropshippers |
| PowerAdSpy | $59–$299/mo | Long-term creative archives |
The free Ad Library is the source of truth — every other tool is essentially scraping it and adding a UI, dashboards, or storage. Whether you pay for that wrapper depends on whether you want monthly tracking or a one-time pull.
How do I scrape the Meta Ad Library at scale?
There are three approaches:
1. Use Meta's official Ad Library API. Free, but limited to political and issue ads, requires Meta developer verification, and rate-limited to 200 calls/hour. Not viable for general commerce ad research.
2. Build your own scraper. Possible with Playwright or Puppeteer, but Meta uses heavy bot detection, dynamic class names, and CDN-signed URLs for creative media that expire in ~24 hours. Expect 2–4 weeks of dev time and ongoing maintenance.
3. Use a maintained scraper actor. The Facebook Ad Library Scraper on Apify handles the proxy rotation, rendering, and URL signing for you. Input is a list of page IDs or keywords; output is JSON/CSV with fields like:
ad_id,page_name,page_idad_creative_body(copy text)ad_creative_link_titles,ad_creative_link_captionsimages[],videos[](downloadable URLs)ad_delivery_start_time,ad_delivery_stop_timecta_type,link_url
A typical run for 10 competitor pages with ~50 active ads each completes in 3–5 minutes and costs under a dollar.
How do I find competitor Page IDs?
You need the Page ID (not the vanity URL) for cleanest results. Three ways:
- Direct from Ad Library URL. Search the competitor on adlibrary.facebook.com, click into their ads, and the URL contains
view_all_page_id=XXXXX. - From their Facebook Page. Go to the page → About → scroll to bottom → Page ID is listed.
- Via a lookup tool. findmyfbid.com or similar will resolve a vanity URL to an ID.
Once you have IDs, drop them into the scraper input as an array. You can also pass search keywords (e.g., "buy now pay later") to discover advertisers in a category you don't know yet.
What can I do with scraped competitor ad data?
Real workflows that pay off:
Creative trend analysis. Pull 90 days of ads from 15 competitors, group by ad_delivery_start_time, and identify which creative formats are getting the longest runs. Ads running 30+ days are usually profitable — those are the angles worth copying.
Hook library. Extract ad_creative_body across a category, then cluster the first 5 words of each ad to find proven opening hooks. A DTC skincare brand might find that 60% of long-running competitor ads start with a question.
Offer reverse-engineering. Parse link_url to land on competitor offer pages. Compare offer mechanics (free shipping thresholds, bundle pricing, subscribe-and-save discounts).
Visual creative pipeline. Download images[] and videos[] URLs into a Notion or Airtable board. Tag by hook type, offer, and run duration. Your designer now has a brief backed by data, not vibes.
Launch detection. Run the scraper weekly on a competitor set and diff results. New ad_id values = new campaigns launched. New page IDs in keyword searches = new competitors entering the market.
Is scraping the Meta Ad Library legal?
The Ad Library is public, government-mandated transparency data. Meta itself published its policy that the Ad Library data is intended to be accessible to "researchers, journalists, and the public." Scraping public data is generally legal in the US after hiQ Labs v. LinkedIn (2022), and the GDPR carve-out for journalistic/research purposes covers most EU use.
Practical guardrails:
- Don't scrape personally identifiable data of ad commenters or page admins
- Don't republish creative assets as your own (copyright still applies)
- Use the data for analysis and inspiration, not direct copying
- Respect rate limits — aggressive scraping is what triggers IP blocks and ToS escalation
The actor handles polite request pacing automatically.
How does pay-per-use compare to SaaS pricing?
Math on a realistic mid-size use case:
- 20 competitors tracked
- ~40 active ads per competitor average
- Refresh weekly = 800 ads × 4 weeks = 3,200 ad records/month
At ~$2 per 1,000 ads, that's $6.40/month on a pay-per-use scraper. The equivalent SaaS tool (Sociavault, AdSpy) runs $99–$299/month. You're paying SaaS for the dashboard and historical archive — if you don't need those, the savings are 15–40x.
The trade-off: with pay-per-use, you own the data pipeline. Push results into Google Sheets, BigQuery, or your own dashboard. With SaaS, you're locked into their UI and export limits.
What about Instagram and Messenger ads?
The Meta Ad Library covers Instagram, Messenger, and Audience Network ads — all under the same advertiser pages. When you scrape a Page's ads, the response includes a publisher_platforms field showing where each creative runs. About 70% of Meta advertisers in 2026 run cross-platform, so a single scrape captures the full footprint.
For Instagram-specific Reels ads, the creative format is included as a downloadable MP4 URL, same as Facebook video ads.
FAQ
Q: Can I see how much competitors are spending on Meta ads? For political and issue ads, yes — Meta discloses spend ranges. For commercial ads, no. You can infer relative spend by ad count, duration, and creative volume, but exact dollar figures aren't published anywhere.
Q: How fresh is the data from the Facebook Ad Library Scraper? The scraper pulls live data from Meta's Ad Library at request time, so it reflects ads active that day. Meta updates the library in near real-time as ads start and stop, with typical lag under an hour.
Q: Can I scrape historical ads that are no longer running? Only for political and issue ads, which Meta keeps in the library for 7 years. Commercial ads disappear from the public Ad Library shortly after the advertiser stops running them, so for archive purposes you need to scrape regularly and store results yourself.
Q: What's the difference between filtering by keyword vs. by page? Page filtering returns every ad from a specific advertiser — best for known competitors. Keyword filtering searches ad copy and returns ads from any advertiser matching the term — best for discovering new players in a category or tracking how a phrase is being used.
Q: Can the scraper download ad creative images and videos? Yes — the output includes signed CDN URLs for both images and video files. These URLs expire within 24 hours, so download assets immediately or pipe them into S3/Drive as part of your run. The scraper returns the URLs but does not host the media itself.