How to Monitor Competitor Ads on Meta, Google and TikTok
2026-09-08
Quick answer: Meta, Google and TikTok each publish a searchable library of the ads running on their platform, and all three are free and public. One prompt reads all three and returns a table with advertiser, creative, first seen date, landing page and a link back to the library entry. Describe your ideal customer. Searchbase finds them across Europe in one prompt, with the source on every cell.
Ad libraries exist because regulators asked for them. The Meta Ad Library covers every active ad on Facebook and Instagram, the Google Ads Transparency Center covers Search, Display and YouTube, and the TikTok Commercial Content Library covers ads served in the EU. That is an enormous amount of competitive intelligence sitting in public, and almost nobody uses it systematically, because using it by hand is miserable.
What the manual version actually costs you
Do it properly for one competitor and one platform. Open the library. Search the brand name. Get results that mix the parent company, three country pages and a lookalike account. Pick the right one. Scroll, because the results are an infinite feed with no export. Open each ad to see the creative and the destination URL. Note the start date. Copy all of it into a sheet by hand.
That is fifteen to twenty minutes for one competitor on one platform, if the brand is easy to find. Three platforms makes it forty-five minutes. Eight competitors makes it most of a day, and it is worthless a fortnight later because ads rotate. Teams either do it once and call it research, or they do not do it at all. Today teams use Foreplay to save creatives they liked, which solves the inspiration problem and not the coverage problem.
Step 1. Name the competitors and the market
Type the job as a sentence:
"Find the ads currently running on Meta, Google and TikTok for these Italian kitchen furniture brands: Scavolini, Veneta Cucine, Lube. For each ad give me the advertiser, the format, the ad text, the first seen date, the landing page and the link to the library entry."
If you do not have a competitor list yet, ask for the category instead:
"Which brands are advertising kitchen furniture on Meta in Italy right now?"
That second prompt is the one that surprises people. You are not looking up a company you already knew about. You are asking who is spending money in your category this month, which is the question a competitor list is meant to answer and usually cannot.
Step 2. Check the plan, especially the entity matching
The agent shows its plan first: search each library for the named brands, disambiguate the advertiser entities, open the matching results, read the ad detail pages, extract the fields, deduplicate.
Read the disambiguation step. Ad libraries are full of near matches: regional pages, retailer accounts running co-op ads, and outright impersonators. If you only want the brand's own account, say "only ads from the official brand pages, not from retailers". If the retailer ads matter to you, and for a furniture brand they usually do, say that instead and you get both with a column telling you which is which.
Step 3. Let it read the three libraries
Now the agent works. It queries each library, pages through the results rather than reading the first screen, opens the individual ad entries, and pulls the fields you asked for.
Three libraries with three different structures come back with the same columns, which is the actual labour being saved. Meta exposes a start date and a set of creatives per ad. Google's transparency records list format and date range. TikTok's EU library carries its own metadata. Normalising those by hand is the boring half of the job, and it happens here without you writing a mapping.
Step 4. Watch the table fill and narrow while it runs
Rows stream in as ads are confirmed. If the first fifteen rows are all one brand's remarketing creatives and you wanted acquisition, say so mid-run:
"Skip the ads whose landing page is a cart or checkout URL."
If the volume is too high, cap it: "just the ads first seen in the last 30 days". Recency is usually the right filter, because an ad that has been running for eight months is a signal about their evergreen offer while an ad from last week is a signal about their current campaign, and mixing them makes both harder to read.
Step 5. Follow the landing pages
The ad is half the story. The page it points at is the offer, and the offer is what you are really benchmarking:
"Open each landing page and add columns for the headline, the offer or discount if any, and whether there is a form."
That is a page read per row, so it is cheap, and it turns a creative list into a competitive positioning document. You can see who is discounting, who is gating with a form, and who is sending paid traffic to a homepage.
Step 6. Re-run it on a rhythm
Ads rotate weekly. Run the same prompt every Monday and diff the exports on the library link column. New rows are new creatives, and rows that vanish are ads that stopped. Two months of that is a picture of a competitor's testing cadence that no single snapshot gives you.
Export is JSON on every plan, CSV from Starter, the API from Pro and webhooks on Business, so a weekly pull can land straight in your own store on the higher plans.
What you get back
One ad per row, with the columns you asked for. The standard set is advertiser, creative or ad text, format, first seen date, landing page URL, and the link to the library entry itself.
Every cell carries a source link, so the library entry is one click away and you can show a sceptical colleague the ad rather than your spreadsheet. Every cell carries a freshness badge saying when it was collected, which matters more here than anywhere else, because "currently running" is a claim with a timestamp attached. And every cell records the extraction method.
Values that cannot be verified stay n/a. Spend, impressions and performance are the big ones. The libraries publish spend ranges only for political and issue ads in most markets, so for a furniture brand the spend column will be empty. It is empty because the number is not public, not because we failed to find it.
What it costs in credits
A page read costs about 1 credit and a social profile costs about 3. A Deep Research report costs 20 to 40.
A three-brand, three-platform run that reads library search pages plus perhaps 60 individual ad entries lands around 70 to 120 credits. Adding the landing page column adds roughly one credit per row. A category sweep, where the agent first has to discover who is advertising before reading their ads, is heavier, usually 150 to 300 credits depending on how crowded the category is.
Free gives you 150 credits a month, enough for one competitor sweep to see whether the output is useful. Starter is €29 a month for 1,000 credits, which comfortably covers a weekly three-competitor check. Pro is €79 for 4,000 credits with API access, which is the plan for a weekly automated pull across a real competitive set. Business is €199 for 12,000 credits with webhooks.
Limits and honesty
No spend, no performance, no results. The libraries do not publish what an ad cost or how it performed for commercial advertisers. Anyone showing you a competitor's exact ad spend is modelling it, not reading it. We leave the cell blank.
Coverage is whatever the platform publishes. These are the platforms' own libraries. If an ad is not in the library, it is not in your table. EU coverage is the strongest, because the rules requiring these libraries are European, which is convenient if your market is Europe.
Video creatives come back as a link, not as analysis. You get the ad and its destination. Judging the hook in the first three seconds is still your job.
No private data and nothing behind a login. Ad libraries are public by design, so this use case stays comfortably inside that line.
Outreach is drafted, never sent. If you go from this table to contacting the agencies running these campaigns, the agent writes the drafts and you review and send them yourself.
Frequently asked questions
Are the ad libraries really free and public? Yes. Meta's Ad Library, Google's Ads Transparency Center and TikTok's Commercial Content Library are open to anyone with a browser. The problem was never access, it was that they are built for one lookup at a time and have no export.
Can I search a category instead of a brand? Yes, and it is the better prompt. "Who is advertising kitchen furniture on Meta in Italy" returns advertisers you did not have on your list, which is exactly the gap a manually maintained competitor set leaves.
How current is the data? As current as the moment the agent read it, and the freshness badge on every cell says when that was. Ads rotate, so a table from three weeks ago is history rather than intelligence.
Does it cover countries outside Italy? Yes. The libraries are international and the agent searches in the local language. Spain, Germany, France and the Netherlands work the same way. EU markets have the richest library coverage because the transparency rules are European.
Can I get the actual creative files? You get the creative link and the ad text. The asset stays where the platform hosts it, and you click through to view it.
How do I track changes over time? Re-run the same prompt on a schedule and compare exports on the library link column. On Pro and Business you can pull it through the API or push it to a webhook and keep the history in your own database.
Prices checked on 2026-09-08 on searchbase.org.