Meta Ad Library collector
Pricing
$1.00 / 1,000 results
Meta Ad Library collector
Collect structured public ads from the Meta Ad Library by keyword, page, country, status, and ad category without requiring a Meta API key.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Data Dino
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Collect structured public advertisements from the Meta (Facebook) Ad Library for market research, creative monitoring, competitor analysis, and campaign discovery. Search by keyword, exact phrase, country, special ad category, or Facebook page without supplying a Meta API key.
Features
- Searches active, inactive, or all ads for a selected country.
- Resolves Facebook page URLs, page names, or numeric page IDs.
- Filters by ad category, delivery dates, media type, impressions, spend, language, and publisher platform.
- Returns page metadata, creative text and media URLs, delivery dates, impression and spend ranges, targeting signals, and collection timestamps.
- Optionally includes the raw GraphQL response for downstream analysis.
- Pushes one structured ad record per dataset item.
Meta's Ad Library endpoint is an internal web endpoint and may change or apply rate limits. Results represent information publicly exposed by Meta at collection time; unavailable fields remain null or empty.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | solar panels | Keyword or phrase to search; blank searches all matching ads. |
country | string | US | Two-letter ISO country code. |
adType | enum | all | all, political, housing, employment, or credit. |
status | enum | active | active, inactive, or all. |
searchType | enum | keyword | keyword, exact, or page. |
sortBy | enum | impressions | impressions or relevancy. |
pageIds | array | [] | Numeric Facebook page IDs to restrict results. |
pageUrl | string | empty | Facebook page URL or numeric page path. |
pageName | string | empty | Page name to resolve through Meta typeahead. |
maxResults | integer | 20 | Maximum records; 0 means unlimited. |
pageSize | integer | 10 | Ads requested per page, from 1 to 30. |
delay | number | 2 | Base delay between paginated requests in seconds. |
timeout | integer | 30 | Per-request timeout in seconds. |
includeRaw | boolean | false | Include the raw GraphQL payload under raw_data. |
minImpressions, maxImpressions | integer | null | Optional impression bounds. |
minSpend, maxSpend | integer | null | Optional spend bounds in the ad's currency. |
startDate, endDate | string | empty | Optional ISO 8601 delivery-start bounds. |
mediaType | enum | all | all, image, video, meme, or none. |
publisherPlatforms | array | [] | Platform filters such as facebook or instagram. |
languages | array | [] | Creative language filters. |
hasVideo, hasImage | boolean | false | Require detected video or image media. |
Example:
{"query": "solar panels","country": "US","status": "active","maxResults": 25,"mediaType": "video"}
Output
Each dataset item is an ad record. A typical item includes:
{"id": "1234567890","page": {"id": "987654321","name": "Example Brand","page_url": "https://www.facebook.com/example"},"is_active": true,"ad_status": "ACTIVE","creatives": [{"body": "Example ad copy","title": "Learn more","image_url": "https://example.invalid/image.jpg"}],"impressions": { "lower_bound": 1000, "upper_bound": 4999 },"publisher_platforms": ["facebook", "instagram"],"collection_source": "meta_ads_library"}