meta-ads-advertiser
The ads one Facebook page runs, as the Meta Ad Library shows them, one row per ad: dates, platforms, text, link, button, media, cards; spend and reach for political ads. page is the page id, its Ad Library or Facebook URL, a company name (Tolteck) or web domain (tolteck.com); a name or domain picks the page (1-2 more fetches); the warnings say which, or that none matched. country (ALL or two letters) and active_status (active or all), left empty, take an Ad Library URL's values, else ALL and active. No login. 2-8 s; refused: a residential exit, then a browser (20-45 s).
Recipes are not open yet.
What this recipe returned on its last run. No key needed to look.
Fields
25 columns on every row. null means the site does not state it.| field | type | meaning |
|---|---|---|
| ad_archive_id | string | The Ad Library's id of the ad (digits, as a string). |
| ad_url | string | The ad's own page in the Meta Ad Library. |
| page_id | string | The id of the Facebook page that runs the ad (digits, as a string). |
| page_name | string | The name of the Facebook page that runs the ad. |
| page_url | string | The Facebook address of the page that runs the ad. |
| page_likes | integer | How many likes the page that runs the ad has; null when the Library does not show it. |
| is_active | boolean | True while the ad runs, false when it has stopped. |
| start_date | string | The 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_date | The day a stopped ad ended, ISO 8601 UTC; null while the ad runs. | |
| platforms | string[] | Where the ad runs, lower case: facebook, instagram, messenger, whatsapp, threads, audience_network. |
| display_format | string | The 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. |
| title | string | The ad's headline; for a catalog ad, whose own headline is a template, the first card's headline. |
| body | string | The ad's main text (at most 5000 characters); for a catalog ad with a template text, the first card's text. |
| link_url | string | Where a click on the ad goes; for a catalog ad, the first card's link. |
| link_caption | string | The short text under the link, usually its domain (nike.com). |
| cta | string | The button text (Shop now, Learn more, Install now). |
| cta_type | string | Meta's code for the button (SHOP_NOW, LEARN_MORE, INSTALL_MOBILE_APP). |
| images | string[] | The ad's image URLs, its cards' images included, at most 20 (Facebook's image links expire after some days). |
| videos | any[] | The ad's video file URLs (HD when there is one), its cards' videos included, at most 20 (the links expire after some days). |
| cards | object[] | 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_ads | How many ads use this same image or video and text (the Library shows them as one); null when the Library gives no count. | |
| impressions | The impressions range the Library shows (>1M, 10K-15K); only for political and issue ads, and some ads seen in the EU; else null. | |
| spend | The amount spent as the range the Library shows (>$1M, $100 - $199), in currency; only for political and issue ads, else null. | |
| currency | The currency of spend (USD, EUR); null when there is no spend. | |
| paid_for_by | Who paid for the ad, as its disclaimer says; only for political and issue ads, else null. |
null means the site does not state it.
currency; only for political and issue ads, else null.spend (USD, EUR); null when there is no spend.How it behaves
Cost. 3-7 units, +1-2 by name/domain; max 14. 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-advertiser with your key and page and country and active_status. You get rows with the 25 fields above. The recipe is tested against the live site every 6 hours.
3-7 units, +1-2 by name/domain; max 14. A failed run costs 0. The same input within 30 min costs 0.
Yes. Sign up with Google, GitHub or email for a free key with 1,000 credits every month. No credit card.
The health check runs every 6 hours against the live site. A failing recipe shows as failing on this page until we fix it.
Extra fields, higher volume, or a private copy with a freshness SLA. We build it on Enterprise.
Request a changeMore for lead generation
All 8 recipes →One company's Crunchbase profile as one row: description, website, headquarters, categories, employee range, founders, Crunchbase rank, the…
The places Google Maps lists for a search, in Google's order, one row per place: name, place id and cid, category, address, map point…
One LinkedIn company page as one row: name, tagline, industry, size, headquarters, website, founded, followers, About (first 500…
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.