Scrape facebook.com/ads/library by keyword or advertiser: ad copy, image and video URLs, landing page URL, start and end dates, and how many days each ad has run. Turn on EU transparency and every ad also carries its total EU reach with an age, gender and country breakdown.
Added: UK reach and audience on ads shown in the UK (uk_total_reach, uk_age_country_gender_reach,
uk_gender_audience, uk_age_audience, uk_location_audience), alongside the existing EU columns.
Needs includeDetails.
Added: the advertiser identity published with political and issue ads (advertiser_verified_info:
email, phone, website, address, committee id, treasurer, promoter) and advertiser_country_code.
Empty on ordinary commercial ads.
Added: branded_content_page_id, branded_content_page_name, branded_content_page_url for
partnership ads, and (with includeDetails) is_political_page plus the page's lifetime and weekly
spend by disclaimer.
Fixed: uk_total_reach is now filled for UK-shown ads that report a total.
No existing field changed.
0.1.62 — 2026-10-12
Improved: when Meta briefly refuses a connection while fetching an ad's details, the run now
asks again on a fresh connection before giving up on it, so more ads keep their details during
busy periods. Output fields are unchanged.
0.1.61 — 2026-10-11
Improved: runs on the smaller memory settings now keep their memory use within the run's
limit, so large runs at 256 MB no longer risk stalling near the limit. Output is unchanged.
0.1.60 — 2026-10-11
Fixed: the filter inputs (Started After / Started Before, media type, ad type, active status,
search type, platforms, languages) now also apply to Start URLs that do not set that filter
themselves. A filter written into the URL still wins.
Fixed: a date the run cannot read (in the date inputs or in a Start URL) now stops the run
with a clear message asking for YYYY-MM-DD, instead of silently searching without a date window.
Changed: Search Term(s) and Start URLs given together now both run. Links that are not Ad
Library links get a warning naming them, and the run stops if none of the Start URLs is valid.
Output fields are unchanged.
0.1.59 — 2026-10-11
Fixed: a search could occasionally fail at its very first page when Facebook briefly refused
the connection, even though the same search worked a moment later. The run now tries once
more on a fresh connection before giving up. Output fields are unchanged.
0.1.58 — 2026-10-10
Fixed: a start-date search that hit a brief connection problem at its first page could
still leave out some ads from the start of the window. The search now recovers and returns
every ad in the window. Output fields are unchanged.
0.1.57 — 2026-10-10
Fixed: searches with a start-date window could leave out some ads from the start of the
window while still reporting the search as complete. Every ad in the window is now
returned. Output fields are unchanged.
0.1.56 — 2026-10-10
Faster: searches with a start-date window (start_date[min] / start_date[max] in a
Library URL, or the date inputs) now ask Facebook for that window directly, so a run
reaches maxResults in far fewer result pages instead of paging past older ads. Which ads
are returned is unchanged. Output fields are unchanged.
0.1.55 — 2026-10-09
Fixed: an advertiser page whose ads Meta does not show publicly could end the run as
failed with "Could not read the results". The run now finishes normally and reports that
no ads are available. Output fields are unchanged.
0.1.54 — 2026-10-08
Fixed: keyword searches could stop well before maxResults (for example at 150 of 300)
even though more ads were available. They now continue to the limit you set. Output fields
are unchanged.
0.1.53 — 2026-10-07
Fixed: a brief connection failure while reading further result pages could end that search
early, so a run returned fewer ads than were available. The page is now read again on a
fresh connection and the search continues from where it was. Output fields are unchanged.
0.1.52 — 2026-10-07
Fixed: on runs covering several advertiser pages with includeDetails on, some ads could
be delivered without their detail fields and some pages could stop early. Detail is now
fetched reliably for every ad of the run. Output fields are unchanged.
0.1.50 — 2026-10-07
Fixed: a run that is stopped before it finishes, by you or because a usage limit was
reached, now closes cleanly and frees its saved-state reservation right away, so a restart
is no longer turned away. Output is unchanged.
0.1.48 — 2026-09-27
Fixed: when a run fails for a reason the actor can explain (an input it cannot use, or
results it could not read), the run's status now shows that explanation instead of a
generic "unexpected error, please try again later".
0.1.47 — 2026-09-27
Fixed: pasting a Facebook page link (for example facebook.com/yourpage) instead of an Ad
Library link ended the run with an internal error. It now stops with a clear message: open
the page's ads in the Facebook Ad Library and paste that link, or search by the page name.
0.1.0 — 2026-09-01
First release.
Keyword and advertiser-page search across Meta's Ad Library, for any country the library serves.
Full creative per ad: copy, headline, caption, call to action, images, video, carousel cards, landing page and landing domain.
Ad lifecycle: start date, end date, whether it is still running, and how many days it has been live.
Dynamic-creative ads have their {{token}} copy resolved from the rendered variant.
Optional EU transparency enrichment (includeDetails): total EU reach per ad, the age / gender / country breakdown of who saw it, the targeting the advertiser set, plus the advertiser's Instagram handle, follower count and page description.
Filters matching the Ad Library UI: ad status, ad category, media type, platform, language, keyword matching and start-date window.
Incremental mode: after the first run, deliver only ads that are new or changed.