Search Meta Ad Library
adsap_search_ad_librarySearch Meta's public Ad Library for ads (competitor research / ad transparency). Find the ads a competitor page is currently running, or ads matching a keyword, in given countries. Returns each ad's page, creative text, platforms, delivery dates, a public Ad Library permalink, and a pagination cursor. Read-only public data (not your own account's ads — use adsap_list_campaigns/adsap_get_insights for that). COVERAGE CEILING (Meta's rule, not ADSAP's): the public Ad Library API returns ordinary commercial ads ONLY where they reached the EU or UK. Ads that never reached the EU/UK are returned only when they are political or social-issue ads. So a US-only (or any non-EU/UK) commercial search returns zero results however it is phrased, and that empty result is NOT evidence the advertiser is inactive. Never promise non-EU/UK competitor research from this tool; point the user at the public Ad Library website for those markets.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Pagination cursor from a previous response's meta.paging_after, to fetch the next page. | |
| limit | No | Max ads to return per page. Default 25, max 50 (Meta's cap). | |
| ad_type | No | Category of ads. Default ALL (all commercial ads). Use POLITICAL_AND_ISSUE_ADS etc. for the special transparency categories. | |
| page_ids | No | Facebook Page IDs to restrict the search to (returns only ads run by these pages). Provide this and/or search_terms. | |
| countries | Yes | ISO-2 country codes the ads reached, e.g. ["FR"], ["GB","DE"]. Required by Meta (ad_reached_countries). For ordinary commercial ads, only EU/UK countries can return results (see the coverage ceiling in the tool description); non-EU/UK codes return zero unless ad_type is POLITICAL_AND_ISSUE_ADS. | |
| search_terms | No | Keyword/phrase to match in ad creative text. Provide this and/or page_ids. | |
| ad_account_id | Yes | Your ad account ID (act_xxx). Required — Meta only serves Ad Library results to callers with an active ad account; also anchors the workspace ownership check + Meta budget. | |
| ad_active_status | No | Filter by whether the ad is currently running. Default ACTIVE (what a competitor is running now). Use ALL to include stopped ads. |