How to see competitors ads on six ad libraries
Where Meta, Google, TikTok, LinkedIn, Pinterest and X publish their ads, what each library hides, and how to pull one brand's ads with two API calls.
The AdLib team · · 8 min read
How to see competitors ads, in one sentence: open the public ad library of each platform they advertise on and search for the brand. There are six of these libraries that matter, they all work differently, and each one hides something. This guide walks through all six with one brand, nike.com, as we saw it in our index on 26 Oct 2026, and then shows the same research as two API calls.
We spend our days crawling these libraries, so most of what follows comes from things that broke on us.
How to see competitors ads: the short version
Every major ad platform now runs a public library, and none of them requires a login. The catch is that each one names the advertiser differently, filters differently and forgets different things.
| Library | URL | Search by | Region | Run dates |
|---|---|---|---|---|
| Meta Ad Library | facebook.com/ads/library | keyword, page, ad id | global | yes |
| Google Ads Transparency Center | adstransparency.google.com | advertiser, domain | global | yes |
| TikTok Ad Library | library.tiktok.com | keyword, advertiser | 33 regions in EU/EEA, UK, CH, TR | yes |
| LinkedIn Ad Library | linkedin.com/ad-library | keyword, company | global | only on some ads |
| Pinterest Ads Repository | ads.pinterest.com/ads-repository | advertiser | 30 countries, one at a time | yes, lagging |
| X Ads Repository | ads.twitter.com/ads-repository | handle only | EU/EEA | no |
For Nike, those six searches land on six differently named advertisers: a Facebook page called "Nike", two Google advertisers called "Nike Retail BV" and "Nike, Inc.", "NIKE Retail B.V." on TikTok, LinkedIn company 2029, a Pinterest advertiser called "Nike" and the X account 415859364. Finding those is half the work.
Meta Ad Library: the Facebook ad library for competitor research
The Meta Ad Library covers Facebook, Instagram, Messenger, Threads and the Audience Network in one search. Type the brand, pick the page from the suggestions, set a country and switch the status to "all" so you also get ads that have ended.
For Nike in Germany we found 30 ads in our index, all ended by 26 Oct 2026. They ran on facebook, instagram, audience_network, messenger and threads. Each ad shows a start date and, once it stops, an end date, both to the day.
Limits we ran into:
- There is no domain filter. Meta pages have no website field, so searching "nike.com" is a keyword search, and you have to check the landing URLs yourself.
- Searching an ad id as a keyword finds only some active ads. An inactive Nike ad returned zero hits that way for all countries, Germany and the UK. Opening it by its direct link (
facebook.com/ads/library/?id=...) worked. - The date filter means "delivery overlapped this range", not "started in this range".
- Spend and impressions are shown only for ads about social issues, elections or politics. For a sneaker ad you get creative, dates, placements and, for ads shown in the EU, reach and targeting on the detail view.
Google Ads Transparency Center
The Google Ads Transparency Center lets you search by advertiser name or by domain, which makes it the easiest place to start if all you have is a website. Search "nike.com" and you get the advertisers whose ads point there.
That is also where the first surprise sits: big brands advertise through several legal entities. For nike.com we saw "Nike Retail BV" (23 creatives in our index, all shown within a day of our capture, mostly search and shopping text ads) and "Nike, Inc." (25 creatives, 23 of them ended). You need both to see the full picture.
Limits:
- No keyword search in ad text for commercial ads. That field only works for political ads.
- No active or inactive status. You get first and last shown dates and have to judge from those.
- Search ads often use keyword insertion, so the "copy" you see is a template like "Entdecke {Keyword:Nike schuhe} online auf Nike.com".
- When we filtered by an old date range (January 2024), the search came back empty, so do not count on browsing by old dates.
TikTok Ad Library
The TikTok Ad Library only holds ads delivered in 33 regions: the EU/EEA, the UK, Switzerland and Turkey. If your competitor only advertises on TikTok in the US, you will not find them here.
Search by advertiser name (fuzzy) or put a phrase in quotes to search ad text. For nike.com the right advertiser was "NIKE Retail B.V.", with 12 ads in our index, first shown between 15 and 20 Oct 2026. "Nike, Inc." also exists on TikTok but its ad we checked linked to youtube.com, a hint that you should check landing URLs before trusting a name.
Limits: no domain search, no ad id search in the search box, the default date window is about the last month, and you cannot combine a keyword with an advertiser in one search. Video URLs in the library are signed and expire within hours, so a link you saved yesterday may already be dead.
LinkedIn Ad Library
The LinkedIn Ad Library is global and is the only place to see B2B campaigns. Search by keyword or company name; the name search is fuzzy and also matches partners and personal profiles with a similar name.
Two things make it harder for research. First, search only goes back about a year. Second, run dates appear only on the detail page, and only for some ads: older ads and ads that were apparently not served in the EU show no dates at all. In our index, 481 of 487 LinkedIn ads have no run dates. LinkedIn also has no status filter and no format filter.
Pinterest Ads Repository
The Pinterest Ads Repository covers 30 countries: the EU-27, Norway, Turkey and Brazil. You must pick exactly one country per search, and the date range has to be under 30 days.
Ask for a longer range and you get an empty list without an error, which looks exactly like "this brand has no ads". There is no keyword search, and the end dates trail reality: in our capture on 26 Oct 2026, the newest Pinterest end date was 15 Oct. Nike resolves cleanly here, to a verified "Nike" advertiser.
X Ads Repository
The X Ads Repository covers the EU/EEA and can only be searched by advertiser handle. There is no keyword search, no ad id lookup and no status or date of first and last showing.
It is also the least reliable library right now. In our tests on 26 Oct 2026, every advertiser that actually had ads (Nike included) got a 503 "Over capacity" response after about five seconds, in a normal browser too. We mark X as beta for that reason. For nike.com our only link to X is a name match on account 415859364, with a score of 0.75.
How to see ads a company is running in one API call
Doing the above by hand means six tabs, six spellings of the brand and repeating it every time you want fresh data. With AdLib you start from the domain instead:
curl -H "X-API-Key: $ADLIB_API_KEY" \
"https://api.adlibapi.com/v1/advertisers/resolve?domain=nike.com"That one call returned these advertisers for nike.com:
| Platform | Advertiser | Id | Score |
|---|---|---|---|
| Meta | Nike | meta:15087023444 | 1.0 (11 of 12 sampled ads link to nike.com) |
| Nike Retail BV | google:AR18378488041124659201 | 0.97 | |
| Nike, Inc. | google:AR16735076323512287233 | 0.97 | |
| TikTok | NIKE Retail B.V. | tiktok:6876453864464188162 | 0.97 |
| Nike (company 2029) | linkedin:2029 | 1.0 | |
| Nike | pinterest:Nike | 1.0 | |
| X | Nike | x:415859364 | 0.75 (name only) |
The score is our confidence that the account belongs to the domain. A 1.0 on Meta means we checked the page's own ads and found them linking to nike.com; a 0.75 on X means the name matches and nothing more. How the matching works per platform is in finding advertiser ids from a domain.
Then pull the ads with the ids you trust:
curl -H "X-API-Key: $ADLIB_API_KEY" \
"https://api.adlibapi.com/v1/search?advertiser=meta:15087023444&country=US&status=all"Every result comes back in the same shape whatever the platform: first_shown and last_shown, creatives with text, headline, CTA and landing URL, countries and placements. A resolve costs 10 credits (0 if nothing is found), and a live search page costs at most 5 credits per platform (10 on Google, 15 on LinkedIn), however many ads it returns. Cached results under 24 hours old are free. The numbers are on pricing, and what each platform returns is on platforms.
What to look for in competitor ad research
Once you have the ads, four things tell you most of what a competitor is doing.
Run length
An ad that keeps running is an ad someone keeps paying for. Nike's German Meta ads ran from 8 days to 86 days. The 8-day one was a Black Friday ad ("Lock in up to 50% off Nike. Valid until 2 Dec 9am CET"), the 86-day one was "Get the gear that's up for it all", from 30 Mar to 24 Jun 2026. Length is a useful signal with real traps, which we cover in ad run length as a performance signal.
Copy variants
Count how many ads share the same text. Nike's line "Get the gear that's up for it all. Any time. Anywhere." appears across many variants, which tells you it is the message they keep coming back to while they test images around it. Our derived.variant_count field gives you that count per ad.
Countries and languages
Look at where an ad was delivered and what language it is in. One of Nike's ads in Romanian ran to users in Germany from 27 Feb to 1 May 2026. Whether that was a targeting choice or a mistake, you would not see it without checking.
New launches
Count ads started per month. Nike's German Meta starts from October 2025 to October 2026 were 2, 5, 0, 3, 1, 5, 2, 3, 0, 5, 0, 4, 0: bursts, then quiet months. If you want to know the week a competitor launches something, a watchlist (POST /v1/watchlists) sends you a signed webhook when new ads appear, ads stop or ads change.
Doing it by hand or with an API
For a one-off look at one brand, the libraries are fine and free. Open the six URLs above, accept that some will be empty for your market, and take screenshots, because creatives and video links expire.
It stops working once you track several competitors, need ended ads with their media later, or want the data in a spreadsheet or a model. That is the case we built AdLib for: growth and product teams can start on the page for companies, engineers on the developer page. If you work in Claude, the MCP server runs the same calls from a chat, and if you live in Clay or n8n, there is a guide for that too.
Pick one competitor, resolve its domain, and look at which of its ads ran the longest. That is usually the fastest way to learn something.
Questions people ask
- Can I see the ads a competitor is running on Facebook?
- Yes. The Meta Ad Library at facebook.com/ads/library is public and needs no login. Search the brand's page, set the country and choose "all" ads to include ones that have ended.
- Can I see a competitor's Google ads?
- Yes, in the Google Ads Transparency Center at adstransparency.google.com. You can search by advertiser name or by domain, but not by words in the ad text for commercial ads.
- Do TikTok, Pinterest and X show ads from the US?
- No. As of October 2026 their public ad repositories cover European markets: TikTok 33 regions in the EU/EEA, UK, Switzerland and Turkey, Pinterest 30 countries, and X the EU/EEA.
- Is it legal to look at competitors' ads?
- Ad libraries are public by design, and in the EU the Digital Services Act requires large platforms to keep one. Looking at them is what they are for. This is not legal advice for any specific use of the data.
- How do I find every ad account a company uses?
- Start from the company's domain. In AdLib, GET /v1/advertisers/resolve?domain=nike.com returns the matching advertiser ids on all six platforms with a confidence score for each.