Ad library tools
Ads running in the platforms' public ad libraries, by keyword, brand or advertiser.
See what your competitors are advertising. These tools read the public ad libraries of Meta, TikTok, LinkedIn and Google, by keyword, brand or advertiser. Each call costs what the data provider charges for it, usually 1 credit.
To take one competitor's ads apart, start with ads_get_advertiser_ads. On Google, find the advertiser with ads_search_advertisers first. Then use ads_get_ad to read an ad's offer, where it sends people and, where the library publishes it, who it was aimed at and reached.
For a guide comparing ad library MCP servers, see The best ad library MCP servers for competitor research.
| Tool | What it does | Cost |
|---|---|---|
ads_search_ads | Search ads | From 1 credit |
ads_search_advertisers | Find advertisers | From 1 credit |
ads_get_advertiser_ads | Get an advertiser's ads | From 1 credit |
ads_get_ad | Get an ad | From 1 credit |
Search ads
ads_search_adsAds running on a platform's public library, by keyword or brand.
"what ads is this category running", finding the angles and offers competitors are paying for.
- One advertiser's whole set, use
ads_get_advertiser_ads. - Google, whose library is keyed by advertiser: use
ads_search_advertisersfirst. - Organic posts, use the platform's own search tool.
A list. Each row has one ad each: advertiser, headline, body, format, first_shown, last_shown, active, versions (near-identical copies Meta groups, a sign the advertiser scaled it), impressions, spend, countries, placements, targeting[], cta, destination_url, media_url. Impressions and spend are the ranges the library publishes, so they are text.
1 credit per page. Cached 24 hours.
Parameters
| Parameter | Default and notes |
|---|---|
platform | Required. One of facebook, tiktok, linkedin. Which library to search. Google is keyed by advertiser: use ads_search_advertisers. |
query | Required. A keyword, a product or a brand name. |
country | Two-letter country code. Default every country the library holds. Not on tiktok, whose library takes no country. |
active_only | Default false. Only ads the library still marks as running. Facebook only. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"platform": "facebook",
"query": "creatine gummies",
"active_only": true
}Find advertisers
ads_search_advertisersThe advertisers matching a brand name in Google's ad library, with their ids.
Before ads_get_advertiser_ads on Google, because that library is keyed by advertiser id and one brand has one entry per region.
- The ads themselves, use
ads_get_advertiser_adswith the id this returns. - The other libraries, which search their ads directly with
ads_search_ads.
A list. Each row has platform, id, name, region, ads_estimate, website.
1 credit. Cached 7 days.
Parameters
| Parameter | Default and notes |
|---|---|
platform | Required. Only Google keys its library by advertiser; the others search their ads. |
query | Required. A brand or company name. |
region | Two-letter country code. One brand has one entry per region. |
It also takes the common parameters max_credits and dry_run.
{
"platform": "google",
"query": "lululemon",
"region": "US"
}Get an advertiser's ads
ads_get_advertiser_adsEvery ad one advertiser is running, from a platform's public library.
A competitor teardown: what they are running, since when, and with what offer.
- A keyword sweep across advertisers, use
ads_search_ads. - One creative in full, use
ads_get_ad.
A list. Each row has one ad each: advertiser, headline, body, format, first_shown, last_shown, active, versions (near-identical copies Meta groups, a sign the advertiser scaled it), impressions, spend, countries, placements, targeting[], cta, destination_url, media_url. Impressions and spend are the ranges the library publishes, so they are text.
1 credit per page, or 25 on google with details. Cached 24 hours.
Parameters
| Parameter | Default and notes |
|---|---|
platform | Required. One of facebook, tiktok, linkedin, google. Which library to read. |
advertiser | Required. A page id or name on facebook, an advertiser name on tiktok, a company name or id on linkedin, a domain or advertiser id on google. |
country | Two-letter country code. Default every country the library holds. Not on tiktok, whose library takes no country. |
active_only | Default false. Only ads the library still marks as running. Facebook only. |
details | Default false. Google only: also fetch each creative's text. Costs 25 credits instead of 1. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"platform": "google",
"advertiser": "lululemon.com"
}Get an ad
ads_get_adOne ad from a platform's public library, with its creative text, where it sends people, and who it was aimed at and reached.
Reading the offer and the call to action behind an ad you found in a list.
- A set of ads, use
ads_search_adsorads_get_advertiser_ads. - What is said in an ad video, use the platform's transcript tool.
One record with advertiser, headline, body, format, first_shown, last_shown, active, versions (near-identical copies Meta groups, a sign the advertiser scaled it), impressions, spend, countries, placements, targeting[], cta, destination_url, media_url, plus variations[] (carousel cards on facebook, text variants on google), reach, reach_by_country[], reach_by_age_gender[] and payers[] (payer, beneficiary). Impressions and spend are the ranges the library publishes, so they are text. Reach, its age split and payers come from Meta's EU and UK disclosure, so only facebook ads that ran there have them. On google, first_shown falls back to the earliest region's date and is null when the library dates neither; the ads_get_advertiser_ads row for the same ad carries it.
1 credit. Cached 7 days.
Parameters
| Parameter | Default and notes |
|---|---|
platform | Required. One of facebook, tiktok, linkedin, google. Which library the ad is in. |
id | Required. An ad id on facebook and tiktok, the ad URL on linkedin and google. |
It also takes the common parameters max_credits and dry_run.
{
"platform": "facebook",
"id": "1185617869915074"
}