Meta Ads Library Scraper (Pay per Event) avatar

Meta Ads Library Scraper (Pay per Event)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Meta Ads Library Scraper (Pay per Event)

Meta Ads Library Scraper (Pay per Event)

Scrape Meta Ad Library by keyword or Facebook page URL. Get ad text, CTA, headlines, platforms, languages, targeting, reach data, and delivery dates. Supports all countries, languages, and filters. Works with any Ad Library search URL. Lightning fast, structured JSON output.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Eimantas V

Eimantas V

Maintained by Community

Actor stats

1

Bookmarked

37

Total users

23

Monthly active users

10 days ago

Last modified

Share

Meta Ads Library Scraper

Apify Actor that scrapes the Meta Ad Library. Search by keyword, paste Facebook page URLs, or use Ad Library URLs with filters — get structured ad data back.

What data you get

  • Ad text — full ad copy (multiple creative variations if applicable)
  • CTA captions & headlines — call-to-action text and link preview titles
  • Publisher platforms — facebook, instagram, messenger, audience_network, threads
  • Languages — detected ad languages
  • Dates & status — creation date, delivery start/stop dates, active or inactive
  • Targeting — target ages, gender, locations (UK & EU ads)
  • Reach breakdown — age/country/gender reach data (UK & EU ads)
  • Impressions — impression count ranges (political/issue ads only)
  • Ad snapshot URL — direct link to view the ad in the Ad Library
  • Advertiser info — page name, page ID, page URL

Input

Search Queries / Keywords

Search across all ads by keyword. Keywords are matched against ad text, images, and CTA buttons.

Loop Earplugs
Nike running shoes
AG1 supplement

You can also paste full Ad Library URLs here — all filters from the URL are preserved:

https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=Loop+Earplugs
https://www.facebook.com/ads/library/?active_status=active&content_languages[0]=en&publisher_platforms[0]=instagram&publisher_platforms[1]=facebook&view_all_page_id=15087023444&media_type=image

Supported URL parameters: q, view_all_page_id, content_languages[N], publisher_platforms[N], media_type, active_status, country, search_type.

Page URLs (max 10)

Facebook page URLs to scrape all ads from. The page ID is automatically resolved from the page HTML.

https://www.facebook.com/nike
https://www.facebook.com/SHEIN/
https://www.facebook.com/profile.php?id=123456789

You can provide up to 10 page URLs (API limit for search_page_ids).

Filter parameters

ParameterTypeDefaultDescription
Max Resultsinteger50Maximum number of ads to return (across all inputs combined)
Only Total CountbooleanfalseReturn only the count of matching ads — no ad data fetched
Keyword Match TypeselectUnorderedKEYWORD_UNORDERED treats each word independently and finds ads containing all words in any order. KEYWORD_EXACT_PHRASE matches the exact phrase — separate multiple phrases with commas to match all of them
Delivery Date FromstringOnly return ads delivered after this date (inclusive). Format: YYYY-MM-DD
Delivery Date TostringOnly return ads delivered before this date (inclusive). Format: YYYY-MM-DD
Publisher Platformsmulti-select(all)Filter by platform: Facebook, Instagram, Audience Network, Messenger, WhatsApp, Oculus, Threads
Active StatusselectALLALL, ACTIVE, or INACTIVE. Overridden if already set in an Ad Library URL
Countriesmulti-selectUSCountries where ads were delivered. 250+ supported
Languagesmulti-select(all)Filter by language: English, Spanish, French, etc. (80+ languages)
Proxy ConfigurationobjectdisabledOptional proxy configuration

Example input

{
"searchQueries": [
"Loop Earplugs"
],
"pageUrls": [
"https://www.facebook.com/nike",
"https://www.facebook.com/SHEIN/"
],
"maxResults": 100,
"activeStatus": "ACTIVE",
"countries": ["US"],
"searchType": "KEYWORD_UNORDERED"
}

Output

Each ad is pushed as a separate item to the default dataset:

{
"adId": "1926905081295969",
"adArchiveId": "1926905081295969",
"adCreationTime": "2026-03-28",
"advertiserName": "AG1 by Athletic Greens",
"advertiserPageId": "130735813680498",
"advertiserPageUrl": "https://www.facebook.com/130735813680498",
"adText": "AG1 is the daily supplement trusted by thousands. One scoop covers your bases with 75 vitamins, minerals and whole food sourced nutrients.",
"ctaCaption": "drinkag1.com",
"headline": "AG1 Supplement by Athletic Greens",
"description": "Try AG1 and get a free Welcome Kit with your first order.",
"publisherPlatforms": [
"facebook",
"instagram",
"audience_network",
"messenger"
],
"languages": [
"en"
],
"startDate": "2026-03-29",
"endDate": "",
"isActive": true,
"impressions": null,
"snapshotUrl": "https://www.facebook.com/ads/library/?id=1926905081295969",
"ageCountryGenderReachBreakdown": [
{
"country": "US",
"age_gender_breakdowns": [
{
"age_range": "25-34",
"male": 1200,
"female": 980
},
{
"age_range": "35-44",
"male": 850,
"female": 720
}
]
}
],
"bylines": "",
"targetAges": ["25", "65"],
"targetGender": "All",
"targetLocations": [
{
"name": "United States",
"num_obfuscated": 0,
"type": "countries",
"excluded": false
}
],
"euTotalReach": null,
"beneficiaryPayers": null,
"scrapedAt": "2026-04-08T11:15:36.400Z"
}

Output fields

FieldTypeDescription
adIdstringUnique ad identifier (Library ID)
adArchiveIdstringSame as adId
adCreationTimestringDate the ad was created
advertiserNamestringName of the Facebook page running the ad
advertiserPageIdstringNumeric page ID
advertiserPageUrlstringLink to the advertiser's Facebook page
adTextstringFull ad creative body text (multiple variations joined with newlines)
ctaCaptionstringCTA link caption (e.g. domain name)
headlinestringLink preview headline
descriptionstringLink preview description
publisherPlatformsstring[]Platforms the ad runs on (facebook, instagram, messenger, audience_network, threads)
languagesstring[]Detected ad languages (ISO 639-1 codes)
startDatestringDelivery start date
endDatestringDelivery end date (empty if still active)
isActivebooleanWhether the ad is currently running
impressionsobject/nullImpression count range ({lowerBound, upperBound}). Only available for political/issue ads. Returns null for commercial ads
snapshotUrlstringLink to view the ad in the Ad Library
ageCountryGenderReachBreakdownarray/nullReach by age, country, and gender. Available for UK & EU ads and political ads in Brazil
targetAgesstring[]Targeted age range. Available for UK & EU ads
targetGenderstringTargeted gender (Women, Men, or All). Available for UK & EU ads
targetLocationsarray/nullTargeted locations with inclusion/exclusion. Available for UK & EU ads
bylinesstring"Paid for by" disclosure. Available for political/issue ads only
euTotalReachnumber/nullEstimated reach across the EU. Available for EU ads only
beneficiaryPayersarray/nullBeneficiary and payer info. Available for EU ads only
scrapedAtstringISO timestamp when the data was collected