Every brand spending money on Facebook ads wants to know what their competitors are running. What creatives are they testing? Which copy angles stick around for months? What markets are they targeting?
The Facebook Ad Library exists for transparency — but manually searching it is painful. You can't export data, can't track changes over time, and can't compare across dozens of competitors at once.
Meanwhile, enterprise ad intelligence tools like Pathmatics or AdBeat charge $500–$2,000/month for this data.
There's a better way.
The Problem With Manual Ad Research
If you've ever tried competitive ad research manually, you know the drill:
- Search one advertiser at a time in Facebook's Ad Library
- No export — you're copying and pasting into spreadsheets
- No historical tracking — ads disappear when they stop running
- No filtering at scale — can't search by spend level, creative type, or date range across multiple advertisers
For agencies managing 10+ clients, this turns into hours of manual work every week. For brands in competitive markets (ecommerce, SaaS, finance), it means flying blind while competitors iterate faster.
Automating Competitive Ad Intelligence
The Facebook Ads Library Scraper on Apify extracts structured data from Facebook's Ad Library — advertiser names, ad creatives, copy, start dates, platform targeting, and more.
Here's what you can pull in a single run:
- Ad creative details: images, videos, carousel cards
- Ad copy: primary text, headlines, descriptions
- Status and dates: when ads started running, whether they're active
- Advertiser info: page name, page ID, disclaimer info
- Platform targeting: Facebook, Instagram, Messenger, Audience Network
Python Example
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run_input = {
"searchQuery": "shopify",
"countryCode": "US",
"adType": "ALL",
"maxResults": 500
}
run = client.actor("cryptosignals/facebook-ads-library-scraper").call(
run_input=run_input
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Advertiser: {item.get('advertiserName')}")
print(f"Ad text: {item.get('adText', '')[:100]}...")
print(f"Started: {item.get('startDate')}")
print("---")
This returns structured JSON you can pipe into dashboards, spreadsheets, or your own analytics tools.
Four Use Cases That Save Real Time
1. Competitive Intelligence for Brands
Track what your top 5-10 competitors are running. Set up weekly extractions and compare: What new creatives appeared? Which ads have been running for 3+ months (indicating they're profitable)? What messaging angles are they testing?
2. Ad Creative Inspiration for Agencies
Stop the "let me check the Ad Library" manual process. Pull thousands of ads in your client's niche, filter by longest-running (most profitable), and build a swipe file that's actually data-driven.
3. Brand Safety Monitoring
Track unauthorized use of your brand name in ads. Extract all ads mentioning your brand or product name and flag anything that looks like impersonation or trademark misuse.
4. Market Entry Research
Entering a new market? Pull every active ad in that category for a specific country. Understand who the players are, what angles work, and where the gaps exist — before you spend a dollar on creative.
What It Costs
| Method | Cost | Time |
|---|---|---|
| Manual Ad Library research | Free but 4-6 hours/week | Ongoing |
| Pathmatics / AdBeat | $500-$2,000/month | Minimal |
| Facebook Ads Library Scraper | ~$0.005/result | Minutes |
Pull 1,000 competitor ads for about $5. Run it weekly for a month and you've spent $20 total — less than a single hour of analyst time.
Getting Started
- Create a free Apify account
- Open the Facebook Ads Library Scraper
- Enter your search query (competitor name, keyword, or category)
- Run it and download your data as JSON, CSV, or Excel
The actor handles pagination, rate limiting, and data structuring automatically. You focus on the insights, not the extraction.
Stop paying enterprise prices for competitive ad intelligence. Try the Facebook Ads Library Scraper on Apify — your first runs are free.
Top comments (0)