What happens to ads the platforms delete

Ad libraries remove ads that broke the rules, ads advertisers deleted and ads past their retention window. How we detect removals, why they matter, and how to query them.

The AdLib team · · 2 min read

Ad libraries are not archives. They show what platforms decide to show, and they take ads away for several reasons:

  • Rule violations. Platforms remove ads that broke their policies, from misleading health claims to scams that use a brand's name.
  • Deletion by the advertiser. An advertiser can delete an ad, and with it the record.
  • Retention. Libraries keep ads for a limited time, and some keep commercial ads only while they run.

For anyone who studies ads after the fact, the removed ones are often the interesting ones: the claim that was taken down, the offer that was withdrawn, the campaign a competitor pulled after two days.

How we detect a removal

A missing ad in a search result proves nothing. Searches are paginated, filtered and sometimes incomplete. So we ask for each ad directly:

  1. For advertisers on a watchlist, AdLib looks up their stopped ads one by one, by id.
  2. If the library no longer returns the ad, we note it as missing.
  3. If a second lookup at least 20 hours later is empty too, we record the removal, dated to the first empty lookup, and write a removed event.
  4. If the ad comes back, both marks are cleared.

The two lookups keep a single hiccup of a library from looking like a takedown. The ad itself, its versions, its run dates and its media stay in the archive.

How to query removed ads

Every ad has removed_from_library_at, null while the library still shows it. To list a competitor's removed ads:

Shell
curl "https://api.adlibapi.com/v1/search?advertiser=meta:15087023444&source=history&removed=true" \
  -H "X-API-Key: $ADLIB_API_KEY"

removed=false returns only ads that are still in the library. The change feed has the events:

Shell
curl "https://api.adlibapi.com/v1/advertisers/meta:15087023444/changes?since=2026-10-01&types=removed" \
  -H "X-API-Key: $ADLIB_API_KEY"

On a watchlist, removed ads arrive in the same alert as new, stopped and changed ones, by signed webhook, in Slack or Discord, or by email.

What it is useful for

  • Competitor research. See which campaigns a competitor pulled, and how fast.
  • Brand protection. Scam ads that use your brand name are often removed after reports; the record shows how long they ran.
  • Research and journalism. Removed political and issue ads, health claims and financial offers are the core of many investigations. The DSA research use case has the full workflow.

The limit

We can only keep what we saw. An ad that was created and removed between two of our checks never reaches the archive. The more often an advertiser is checked, the fewer gaps remain, which is why removal detection runs for watched advertisers first. The live coverage page shows how many removed ads the archive holds.

Questions people ask

Why do ads disappear from ad libraries?
Platforms take down ads that broke their rules, advertisers delete ads, and libraries drop ads after their retention period. The Meta Ad Library also stops showing commercial ads outside the EU once they end.
Can I still see an ad after it was removed from the Meta Ad Library?
Not in the library. If an archive recorded the ad before it was removed, the archive still has it. AdLib keeps every ad it has seen and marks removed ones with removed_from_library_at.
How does AdLib know an ad was removed?
For advertisers on a watchlist, AdLib looks up stopped ads one by one. When a library no longer returns an ad in two lookups at least 20 hours apart, AdLib records the date and a removed event.
Can I get alerts when a competitor's ad is removed?
Yes. Watchlist webhooks, Slack, Discord and email alerts include removed ads next to new, stopped and changed ones.