meta-ads-search

The ads the Meta Ad Library (Facebook, Instagram, Messenger) shows for a keyword search, one row per ad: advertiser page, dates, platforms, text, link, button, media, cards, and spend and impressions for political ads. query is the search text; country is ALL or two letters (US, GB, DE); active_status is active or all; limit up to 100. A view shows up to 30 ads; below limit, the recipe adds the search split by media type (4 more fetches, not in the Library's order). No login. 2-8 s; if Facebook refuses our address, a residential exit (3-10 s), then a browser: 20-45 s, up to 10 units.

stagedfacebook.comWASM module25 fields3-7 units; up to 10 if Facebook refusesfresh 30 min
‹ Recipes
…json
POST api.crawl4ai.com/recipes/…

$ crawl recipe

              
Live · your key · counts against your quota✓ 200 OK
# Hit Run - the rows render here as a table, with the cost

Fields

25 columns on every row. null means the site does not state it.
fieldtypemeaning
ad_archive_idstringThe Ad Library's id of the ad (digits, as a string).
ad_urlstringThe ad's own page in the Meta Ad Library.
page_idstringThe id of the Facebook page that runs the ad (digits, as a string).
page_namestringThe name of the Facebook page that runs the ad.
page_urlstringThe Facebook address of the page that runs the ad.
page_likesintegerHow many likes the page that runs the ad has; null when the Library does not show it.
is_activebooleanTrue while the ad runs, false when it has stopped.
start_datestringThe day the ad started running, ISO 8601 UTC (the Library counts days in Pacific time, so the hour is 07:00 or 08:00).
end_dateThe day a stopped ad ended, ISO 8601 UTC; null while the ad runs.
platformsstring[]Where the ad runs, lower case: facebook, instagram, messenger, whatsapp, threads, audience_network.
display_formatstringThe ad's format as the Library names it, lower case: image, video, carousel, dpa (a product catalog ad), dco (an ad Meta assembles from several texts and images), text; null when the Library gives none.
titlestringThe ad's headline; for a catalog ad, whose own headline is a template, the first card's headline.
bodystringThe ad's main text (at most 5000 characters); for a catalog ad with a template text, the first card's text.
link_urlstringWhere a click on the ad goes; for a catalog ad, the first card's link.
link_captionstringThe short text under the link, usually its domain (nike.com).
ctastringThe button text (Shop now, Learn more, Install now).
cta_typestringMeta's code for the button (SHOP_NOW, LEARN_MORE, INSTALL_MOBILE_APP).
imagesstring[]The ad's image URLs, its cards' images included, at most 20 (Facebook's image links expire after some days).
videosany[]The ad's video file URLs (HD when there is one), its cards' videos included, at most 20 (the links expire after some days).
cardsany[]The cards of a carousel or catalog ad, at most 20, each with title, body, link_url, cta, image and video; empty for a single-image or video ad.
same_creative_adsintegerHow many ads use this same image or video and text (the Library shows them as one); null when the Library gives no count.
impressionsThe impressions range the Library shows (>1M, 10K-15K); only for political and issue ads, and some ads seen in the EU; else null.
spendThe amount spent as the range the Library shows (>$1M, $100 - $199), in currency; only for political and issue ads, else null.
currencyThe currency of spend (USD, EUR); null when there is no spend.
paid_for_byWho paid for the ad, as its disclaimer says; only for political and issue ads, else null.

null means the site does not state it.

ad_archive_idstringThe Ad Library's id of the ad (digits, as a string).
ad_urlstringThe ad's own page in the Meta Ad Library.
page_idstringThe id of the Facebook page that runs the ad (digits, as a string).
page_namestringThe name of the Facebook page that runs the ad.
page_urlstringThe Facebook address of the page that runs the ad.
page_likesintegerHow many likes the page that runs the ad has; null when the Library does not show it.
is_activebooleanTrue while the ad runs, false when it has stopped.
start_datestringThe day the ad started running, ISO 8601 UTC (the Library counts days in Pacific time, so the hour is 07:00 or 08:00).
end_dateThe day a stopped ad ended, ISO 8601 UTC; null while the ad runs.
platformsstring[]Where the ad runs, lower case: facebook, instagram, messenger, whatsapp, threads, audience_network.
display_formatstringThe ad's format as the Library names it, lower case: image, video, carousel, dpa (a product catalog ad), dco (an ad Meta assembles from several texts and images), text; null when the Library gives none.
titlestringThe ad's headline; for a catalog ad, whose own headline is a template, the first card's headline.
bodystringThe ad's main text (at most 5000 characters); for a catalog ad with a template text, the first card's text.
link_urlstringWhere a click on the ad goes; for a catalog ad, the first card's link.
link_captionstringThe short text under the link, usually its domain (nike.com).
ctastringThe button text (Shop now, Learn more, Install now).
cta_typestringMeta's code for the button (SHOP_NOW, LEARN_MORE, INSTALL_MOBILE_APP).
imagesstring[]The ad's image URLs, its cards' images included, at most 20 (Facebook's image links expire after some days).
videosany[]The ad's video file URLs (HD when there is one), its cards' videos included, at most 20 (the links expire after some days).
cardsany[]The cards of a carousel or catalog ad, at most 20, each with title, body, link_url, cta, image and video; empty for a single-image or video ad.
same_creative_adsintegerHow many ads use this same image or video and text (the Library shows them as one); null when the Library gives no count.
impressionsThe impressions range the Library shows (>1M, 10K-15K); only for political and issue ads, and some ads seen in the EU; else null.
spendThe amount spent as the range the Library shows (>$1M, $100 - $199), in currency; only for political and issue ads, else null.
currencyThe currency of spend (USD, EUR); null when there is no spend.
paid_for_byWho paid for the ad, as its disclaimer says; only for political and issue ads, else null.

How it behaves

Cost. 3-7 units; up to 10 if Facebook refuses. A failed run costs 0.

Freshness 30 min. The same input within 30 min is served from cache at 0 units.

How it answers. Answers at once for one input; a large run goes as a job you poll.

Questions about this recipeQuestions

Short answers. The API reference has the long ones.

Call POST /recipes/meta-ads-search with your key and query and country and active_status. You get rows with the 25 fields above. The recipe is tested against the live site every 6 hours.

Need more from Meta Ad Library?

Extra fields, higher volume, or a private copy with a freshness SLA. We build it on Enterprise.

Request a change

For developers

Get a free API key and run your first crawl.

1,000 credits every month. No credit card. Your self-hosted setup keeps working.

For teams

Talk to us about volume, regions and an SLA.

A 30-minute call with the team that writes the crawler. DPA on request, invoice billing, your choice of US, EU or Singapore.