Facebook Ad Library Scraper: Ads by Keyword or Page ID avatar

Facebook Ad Library Scraper: Ads by Keyword or Page ID

Pricing

from $1.50 / 1,000 ad scrapeds

Go to Apify Store
Facebook Ad Library Scraper: Ads by Keyword or Page ID

Facebook Ad Library Scraper: Ads by Keyword or Page ID

Scrape the public Facebook Ad Library by keyword or page: advertiser, ad copy, media, CTA, start date and platforms. No login required.

Pricing

from $1.50 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

Bruno

Bruno

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Share

Facebook Ad Library Scraper — Ads by Keyword or Page ID

Pull ads from Meta's public Facebook Ad Library with no login and no Facebook account. Search by advertiser/keyword or by numeric Page ID, pick a country, and get structured ad rows you can analyse or export.

What it returns (one row per ad)

  • ad_archive_id, ad_id, collation_id, ad_library_url, is_active
  • entity_type, categories, gated_type, contains_sensitive_content, contains_digital_created_media
  • advertiser: page_id, page_name, page_url, page_profile_url, profile picture, page_categories, page_like_count, page_is_deleted, linked instagram account
  • ad_copy: body, title, caption, link description, extra_texts
  • cta: button text, type, destination_url (landing page), caption
  • media: image URLs, video URLs (+ preview), carousel cards, extra_images/extra_videos/extra_links, image_count/video_count, display format
  • start_date, end_date, created_date, total_active_time_seconds
  • publisher_platforms (Facebook, Instagram, Audience Network, Messenger, Threads), targeted_or_reached_countries, political_countries
  • total_active_variations — number of creative variations in the ad collation
  • political / issue / EU-transparency ads (political object): currency, raw spend/impressions, byline, impressions_range, spend_range, eu_total_reach, demographics (reach split by_age_gender and by_region), beneficiary_payers — populated when Meta discloses them
  • query and sourceUrl — which search produced the ad

Use cases

  • Competitor ad research — see what a brand is running right now and where it sends traffic.
  • Creative inspiration — collect ad copy, hooks and CTAs in your niche.
  • Ad longevity analysis — compare start_date/end_date to spot ads that keep running.
  • Landing-page discovery from cta.destination_url.

Example input

{
"searchTerms": ["nike"],
"pageIds": ["15087023444"],
"country": "US",
"adType": "all",
"activeStatus": "active",
"mediaType": "all",
"searchType": "keyword_unordered",
"maxItems": 30
}

Search filters

  • searchTerms (keyword) and/or pageIds (exact advertiser) — at least one.
  • country — ISO-2 code (US, BR, GB, DE, ...) or ALL.
  • adType — all or political (political & issue ads expose extra transparency data).
  • activeStatus — active, inactive or all.
  • mediaType — all, image, meme, image_and_meme, video or none (text-only).
  • searchType — keyword_unordered (broad) or keyword_exact_phrase (exact phrase).

Example output (real run, trimmed)

{
"ad_archive_id": "2082518615715836",
"ad_library_url": "https://www.facebook.com/ads/library/?id=2082518615715836",
"is_active": true,
"advertiser": { "page_id": "15087023444", "page_name": "Nike", "page_url": "https://www.facebook.com/15087023444" },
"ad_copy": { "body": "..." },
"cta": { "text": "Shop now", "destination_url": "https://..." },
"start_date": "2026-06-29T07:00:00.000Z",
"publisher_platforms": ["FACEBOOK", "INSTAGRAM"]
}

Why choose this Actor

  • Pay only for results — pay-per-event pricing, no monthly rental and no minimum charge.
  • No login and no official API key needed — it reads the public Ad Library only.
  • Structured output — clean JSON rows you can export to CSV, Excel or push into your pipeline via the Apify API, webhooks or integrations.
  • Honest by design — if a field is not available it is returned as null/missing and failed inputs return an explicit error; nothing is invented.
  • Maintained — report any issue on the Issues tab and it gets looked at quickly.

Limitations (honest notes)

  • Results are what the public Ad Library shows logged-out; exact spend/impressions are only available for political & issue ads, not for commercial ads.
  • A residential proxy is used by default because datacenter IPs are blocked or return empty results; it runs a headless browser, so runs take longer than HTTP-only actors.
  • maxItems is the total across all search terms and page IDs. Some fields (e.g. total_active_variations) can be null.
  • A keyword search matches advertisers/ad text broadly — results are not limited to the brand you typed (e.g. "nike" also returned a reseller's ad); use pageIds for one exact advertiser.

⭐ Enjoying this Actor?

If it saved you time, please leave an honest review on the Store — it genuinely helps us keep it fast, accurate and well-maintained. Found something that misbehaved or want a new feature? Open an Issue and we'll jump on it quickly.