Meta Ad Library collector avatar

Meta Ad Library collector

Pricing

$1.00 / 1,000 results

Go to Apify Store
Meta Ad Library collector

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

Data Dino

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

FieldTypeDefaultDescription
querystringsolar panelsKeyword or phrase to search; blank searches all matching ads.
countrystringUSTwo-letter ISO country code.
adTypeenumallall, political, housing, employment, or credit.
statusenumactiveactive, inactive, or all.
searchTypeenumkeywordkeyword, exact, or page.
sortByenumimpressionsimpressions or relevancy.
pageIdsarray[]Numeric Facebook page IDs to restrict results.
pageUrlstringemptyFacebook page URL or numeric page path.
pageNamestringemptyPage name to resolve through Meta typeahead.
maxResultsinteger20Maximum records; 0 means unlimited.
pageSizeinteger10Ads requested per page, from 1 to 30.
delaynumber2Base delay between paginated requests in seconds.
timeoutinteger30Per-request timeout in seconds.
includeRawbooleanfalseInclude the raw GraphQL payload under raw_data.
minImpressions, maxImpressionsintegernullOptional impression bounds.
minSpend, maxSpendintegernullOptional spend bounds in the ad's currency.
startDate, endDatestringemptyOptional ISO 8601 delivery-start bounds.
mediaTypeenumallall, image, video, meme, or none.
publisherPlatformsarray[]Platform filters such as facebook or instagram.
languagesarray[]Creative language filters.
hasVideo, hasImagebooleanfalseRequire 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"
}