Tempio Docs
Ad library

Library sources

Every ad in the library came from a public transparency archive — the searchable record a platform publishes about the ads running on it. Tempio has a reader for four of them. It reads them with its own credentials, never with yours: no library call touches a connection you made or a token you granted, so the library works on a workspace with no ad accounts connected at all, and connecting an account adds nothing to it.

The four archives Tempio reads

ArchiveWhat it publishesRegion
Meta Ad LibraryCreative text, headlines, link captions, delivery dates, languages, the platforms an ad ran on, and a snapshot link to Meta's own rendering of the adAds that reached the EU. Outside it, only ads about social issues, elections or politics
Google Ads TransparencyCreative identifiers and delivery dates, with a lower and upper bound on how many times an ad was shownThe European Economic Area and Turkey, with impression ranges from 1 March 2023
LinkedIn Ad LibraryA creative preview, the advertiser and the payer, the format, and first and latest impression datesAds that ran after 1 June 2023, kept for one year after their last impression. Impression ranges by country for EU-served ads only
TikTok Commercial ContentThe ad's media, its first and last shown dates, its status, and how many unique people it reachedEU countries only, kept for one year after the ad was last shown

Which of the four this Tempio actually reads is a deployment setting — see which archives a deployment runs.

Those are the archives' own terms, not Tempio's summary of what it would like them to be. Three consequences are worth stating plainly.

Google's dataset carries no ad copy. It publishes which creative ran and when, and how many times it was shown — not the words. A Google ad in the library is therefore a dated row with a landing page, and free-text search will not find it by its headline, because there is no headline to find.

Meta publishes no media URL. What it gives is a snapshot link to its own rendering of the ad, so a Meta ad card links out to Meta rather than showing a copy Tempio holds. The same is true of LinkedIn.

TikTok's and Google's media links expire or move. For those two Tempio takes its own copy of the creative at capture, which is the only way the card still renders tomorrow.

Why fewer ads here than on the platform's own site

Because the archive is not the platform. The number in an archive is bounded four ways, and none of them is a fault in Tempio:

  1. Region. Every archive above covers some regions and not others. An advertiser who runs nothing in Europe can be entirely absent from three of the four.
  2. Ad type. Meta's archive returns non-EU ads only when they are about social issues, elections or politics. A commercial ad that never ran in the EU is not in it.
  3. Retention. LinkedIn and TikTok drop an ad a year after its last impression. Tempio keeps whatever it captured before that — see nothing is deleted — but it cannot capture what was already gone.
  4. The run ceiling. Each ingest run takes at most a fixed number of ads per archive per advertiser. A run that hits the ceiling records that it did, and every result naming that advertiser carries the warning that its ads are a sample.

So an advertiser showing four ads here and forty on the platform's own site is the ordinary case, and the coverage rule is what to read an absence against.

Which archives a deployment runs

An archive is switched on per deployment, not per release. All four are built; which ones this Tempio reads is set in its environment, and turning one on or off is a configuration change rather than a new version of the product.

An archive that is not switched on contributes nothing and says so, rather than letting you read an empty result as an absence of ads:

This source is not enabled, so nothing from it is in the corpus.

You see that sentence in two places: when you filter a search to an archive this deployment does not run, and on an advertiser that has an identity on one it does not run.

Per-archive status on an advertiser

An advertiser can be known to one archive and unknown to another, and the advertiser page shows a row per archive with its own status:

StatusWhat it means
Never ingestedThe identity is recorded and no run has landed yet
PartialThe last run stopped at its ceiling, so these ads are a sample
IngestedThe last run reached the end of what the archive would give

Beside it, the last run's own result: how many ads it found, when it ran, and why it stopped — the archive's last page, the run ceiling, the rate budget running dry, the archive being switched off, or an error the archive returned.

What is stored

The normalised ad — source, external id, status, format, delivery dates, languages, publisher platforms, countries, the link back to the archive's own page — plus each creative, the landing page with its query string intact, and any reach or spend figures the platform published. The archive's raw payload is stored beside it as it arrived, so a change to how Tempio reads a source can be replayed over what was already captured without asking the archive again.