Tempio Docs
Ad library

Ad library

The ad library is a corpus of other people's ads, captured from the public transparency archives the platforms themselves publish. It is not a view of your accounts and it holds nothing about your spend. It holds advertisers, the ads they ran, the copy and creatives in those ads, the pages those ads pointed at, and the dates each archive published — plus what Tempio computes on top: how long an ad has run, and a reading of its hook, offer, angle and audience.

It lives at /library in the app:

PageWhat it is for
/librarySearch across every ad in the corpus
/library/advertisersThe advertiser registry, and the form that adds one
/library/advertisers/[id]One advertiser: per-archive status, counts, landing pages, similar advertisers
/library/ads/[id]One ad: creatives, dates, landing page, score, published reach and spend
/library/swipeYour workspace's swipe file
/library/trackingWatches, alerts and the weekly digest

Your own AI reads all of it over MCP through the library_ad, library_advertiser, library_watch, swipe and swipe_collection entities.

Shared and yours

The corpus is one library, shared by every workspace. An advertiser, an ad, a creative, a landing page and a published reach figure are public facts about a third party, so there is nothing in them that belongs to one customer: when anyone adds an advertiser, the ingest runs once and the ads are there for everybody. Search is not filtered to your workspace, and that is deliberate.

What your workspace owns, and nobody else can see:

YoursWhat it is
WatchesWhich advertisers you track, with their alert and digest settings
AlertsThe activity feed those watches produce
Swipe collections and itemsSaved ads, their notes, and who saved them
saved, savedNote and watchedThe three flags on a search result
Digest subscriptionsPer member, per workspace

Those all carry your workspace on the row, and every query that reads them filters by it. A second workspace searching the same words sees the same ads and none of your notes.

Two consequences follow. An advertiser you add is visible to other workspaces — so is the ad copy of the company you are watching, which was already public. And removing a watch or a saved ad removes your row, never the ad: nothing in the corpus is ever deleted.

Coverage: what an absence means here

This is the one paragraph every other page links back to.

A transparency archive publishes some ads, not all ads. Each platform decides what goes into its own archive and for how long — by region, by ad type, and by how long after an ad stops it is still listed. So an advertiser can show four ads here and forty on the platform's own site, and neither number is wrong. An absence in the library is an absence from that archive, never evidence that a company is not advertising.

Tempio says this out loud rather than leaving you to infer it. Every search result and every advertiser page carries a warning naming what the source covers, one per archive the answer drew from. The sentence is the archive's own — Meta's reads:

Meta's Ad Library returns ads that reached the EU, and ads outside it only when they are about social issues, elections or politics. A commercial ad that never ran in the EU is not in the archive and cannot be retrieved once it stops.

Which regions an archive covers is the part you cannot supply yourself, so it is the part the warning names. Sources has all four.

Two more warnings travel with an absence, and they mean different things:

  • The last run stopped at its ceiling. Every ingest run has a cap on how many ads it will take in one pass. When a run hit the cap, this advertiser's ads are a sample rather than the whole, and the advertiser page and every search result naming that advertiser say so.
  • This advertiser has not been ingested on this source. It was added, and the run for that archive has not landed yet. An empty list here is a run that has not happened, not an advertiser with no ads.

Sources has what each archive publishes, which regions it covers, and how long it keeps an ad.

Nothing is deleted

An ad that stops running is the single most useful row in the corpus, and it usually exists nowhere else the day the archive drops it. So a run that no longer returns an ad marks it Stopped and stops moving its last-seen date; the row, its creatives, its dates and its landing page all stay. An ad in your swipe file that stops running stays in the file with its status shown.

Figures, and where they come from

Three numbers on an ad are not the platform's, and each one says so where it is shown:

  • Longevity is Tempio's own, computed from the archive's dates. It measures how long an ad has run, not how well it performed. Search prints the formula.
  • Spend is a range, shown only where a platform published one, labelled Estimated, with a sentence underneath naming how it was arrived at. Where no platform published a range the field reads not published — never zero.
  • Hook, offer, angle and audience are Tempio's reading of the ad's own copy, written by a model and shown under a Derived by Tempio label with the model and the prompt version beside it. They are never something the advertiser said.

Everything else on an ad — its dates, its status, its creatives, its languages, its countries, the pages it points at, and the impression or reach figures — is what the archive published, stored as it arrived.

What it costs

Search is on every plan, including Free, and is never refused by a plan.

Two things are counted: tracked advertisers, because a watch buys a daily re-ingest, and saved ads, because those are storage. Both are enforced when you write, and the refusal names the limit rather than failing quietly. The allowances per plan are on the billing page.