← All articles
Ad intelligenceBy Laszlo Nemeth · Founder, CloseFast15 July 2026 · 7 min read

The EU Ad Library, Explained: What the DSA Makes Public

The EU's Digital Services Act forces every large ad platform to publish a searchable, public repository of the ads it runs in the EU — including start date, roughly how it was targeted, and audience reached — kept online for a year after the campaign ends. Here's exactly what's in it, platform by platform, and how to use it to find live advertisers worth pitching.

If you've ever wondered why a Facebook ad from six months ago is still sitting in the Ad Library, or why an EU search on the Google Ads Transparency Center sometimes returns more detail than a US search — the answer is one law: the EU's Digital Services Act (DSA). Article 39 requires every platform the EU designates a "very large online platform" or "very large online search engine" to publish a searchable, public repository of every ad it serves to EU users, and to keep each ad visible for a year after it stopped running. This isn't a product feature the platform can quietly retire. It's a legal obligation, and it's the reason the EU has become the most transparent ad market in the world for anyone doing outside research on a business's marketing activity.

This piece breaks down exactly what the law requires, what each major platform's repository actually shows in practice as of mid-2026, and how agencies use that transparency to find businesses worth pitching.

The law behind it: Article 39 of the DSA

The Digital Services Act (Regulation (EU) 2022/2065) is the EU's baseline rulebook for online platforms. Most of it deals with illegal content and platform accountability, but Article 39 — "Additional online advertising transparency" — is squarely about ads. It applies only to platforms the European Commission has designated as very large online platforms (VLOPs) or very large online search engines (VLOSEs): currently Facebook, Instagram, TikTok, LinkedIn, YouTube, Google Search, and a handful of others based on active-user thresholds.

Article 39 of the EU's Digital Services Act requires every very large online platform that presents advertisements to compile a searchable, publicly accessible repository of those ads — including the ad content, who paid for it, when it ran, how it was targeted, and how many people it reached — and to keep each ad in that repository for the entire period it runs plus one year after it was last shown.

The DSA's core obligations, including Article 39, applied to designated VLOPs and VLOSEs from four months after their individual designation date where that fell before 17 February 2024, and to everyone else from 17 February 2024 onward — the date the regulation became generally applicable (Article 92-93, Regulation (EU) 2022/2065). Meta's Facebook and Instagram platforms were among the first batch designated, on 25 April 2023, which is why their EU repository predates the general 2024 deadline.

Two details matter for anyone using this data:

  • No personal data of ad recipients. The repository can't identify who saw an ad — only aggregate, anonymized reach and targeting parameters (paragraph 2(e) and 2(g) of Article 39).
  • No spend disclosure requirement. The law requires content, advertiser identity, payer identity, run dates, targeting parameters, and reach — not budget. If you want to estimate spend, you're inferring it from duration and reach, not reading a number off the page.

What each platform's repository actually shows

Platform Repository Shows spend? API access EU retention
Meta (Facebook, Instagram) facebook.com/ads/library No (political/issue ads only) Political/issue ads only via official API 1 year after last run
Google (Search, YouTube, Display) adstransparency.google.com No None 1 year after last run
TikTok library.tiktok.com No Limited — improving per Dec 2025 commitments 1 year after last run
LinkedIn linkedin.com/ad-library No None public 1 year after last run

None of the four platforms disclose spend in their public repository — that column is intentionally "no" across the board, because Article 39 doesn't require it. Where they genuinely differ is retention depth, search usability, and how current the data is.

TikTok is the platform actively upgrading its repository right now. On 5 December 2025, the European Commission accepted binding commitments from TikTok to fix gaps regulators had found in its ad repository: TikTok agreed to show the full ad content as it actually appears in users' feeds (including link URLs), to update the repository within a maximum of 24 hours of an ad going live, to disclose the targeting criteria advertisers selected plus aggregated demographic reach data (gender, age group, Member State), and to add better search and filtering. That's a live regulatory improvement cycle, not a finished feature — worth re-checking if you're evaluating TikTok ad activity for a prospect and the repository looks thin.

The Meta API trap

This is the single most common mistake in ad-intelligence tooling. Meta's Ad Library website shows the full EU repository — every commercial ad served to EU users, per Article 39. Meta's official Ad Library API is scoped only to political and issue ads, full stop. It does not return commercial ad data for EU-served ads, no matter how the request is structured. Any product claiming to programmatically bulk-pull commercial EU ad data straight from Meta's own API is either misrepresenting what that endpoint returns or scraping the public web pages instead of using the API — which is a fragile, terms-of-service-adjacent approach that breaks the moment Meta changes its markup.

This matters practically: checking one prospect on the public website takes thirty seconds and needs no account. Checking hundreds of businesses across a city can't use "automate it via the API" for commercial ads — which is exactly why manual checking or purpose-built tools exist here.

Reading the repository like a prospecting signal, not a compliance document

For agencies, the EU repository's mandatory retention window is the useful part. A US-only ad library that drops an ad the moment it stops running only shows you what's live right now. The EU version — because the law forces a year of retention — lets you see a business's advertising history, not just its current snapshot.

Because EU law requires ads to stay visible for a year after they stop running, an agency checking a prospect's EU ad activity today can see not just what they're running now but what they tried and dropped over the past twelve months — a pattern no US-only ad library can show, since it clears data the moment a campaign ends.

Three read patterns worth knowing:

  • Long-running ads that are still active. An ad live for 90+ days is being paid for because it's converting — nobody funds a loser that long. This is the strongest positive signal you can read off a public page for free.
  • A cluster of ads that all started in the same week. Usually means the business (or an agency they just hired) started a new push. Worth checking whether their landing page has basic tracking in place before you pitch — a live campaign pointed at an untracked page is an easy, specific opening line.
  • A one-year gap between an old flurry of ads and nothing since. Suggests something interrupted spend — budget, staff turnover, a bad campaign. Re-engagement is often an easier sell than first-time education, because they've already bought the category once.

We covered the mechanics of checking any single business's ad activity by hand — Meta and Google, step by step — in How to See What Ads a Company Is Running. That post is the tactical companion to this one: this piece explains why the EU data is unusually deep; that one shows you exactly where to click.

Where this breaks down for agency-scale prospecting

None of this is automatable at volume through official channels. There's no unified EU-wide ad API across platforms, Meta's API won't return commercial data, and Google and LinkedIn don't expose one publicly either. That leaves two options: check prospects one at a time by hand (fine for a handful of leads), or build (or buy) something that checks reach and ad presence across a defined universe of local businesses.

That's the gap CloseFast (closefa.st) is built for — it pulls local businesses from Google Maps for a given city and niche, checks their ad activity and tracking setup, ranks results by urgency, and drafts a pitch that cites the specific gap it found. If you've already compared per-prospect research tools on cost and credit models, our breakdown in CloseFast vs Clay: Which Fits Agency Prospecting? covers how a flat-fee model changes the economics of checking hundreds of businesses versus paying per lookup.

When manual checking is the right call

Not every use case needs automation. If you're qualifying five or ten prospects before a sales call, the public repositories are free, fast, and require no signup — checking Meta and Google by hand for ten businesses takes maybe twenty minutes. Automation earns its cost when you're screening a hundred-plus businesses across a city and need the ranking and pitch-drafting layered on top, not just the raw lookup.

The bottom line

The EU Ad Library isn't a single product — it's a set of platform-specific repositories that exist because Article 39 of the DSA legally requires them, with a mandatory one-year retention window that makes EU ad data uniquely deep compared to other markets. None disclose spend. None offer a full commercial-ads API — Meta's official API is political-ads-only, a distinction worth knowing before you trust a tool's claims about "automated EU ad data." For checking a handful of prospects, the public pages are free and fast. For checking a city's worth of businesses at once, that's a different job — and one that tools built specifically for local-agency prospecting, like CloseFast, exist to solve.

Frequently asked questions

What is the EU ad library under the DSA?+

It isn't one single library — it's a legal requirement (Article 39 of the Digital Services Act) that each very large online platform build its own public, searchable repository of every ad it serves to EU users. Meta, Google, TikTok, and LinkedIn each run a separate one. Together they're often called "the EU ad library" or "EU ad repositories."

How long do EU ad repositories keep ads visible?+

Article 39 requires platforms to keep an ad in the repository for the entire period it runs plus one year after it was last shown. That means an ad that ran for two weeks in January is still publicly visible the following January — long after it would have vanished from a US-only ad library.

Does the EU ad library show how much a company spent on ads?+

No. None of the DSA repositories are required to disclose spend. They show the ad creative, who paid for it, when it ran, roughly who it was targeted at, and how many people it reached — reach, not spend. If you need budget figures, you're inferring them from reach and duration, not reading them directly.

Is the EU ad library the same as Meta's Ad Library API?+

No, and this trips up a lot of people. Meta's public Ad Library website shows every commercial ad EU users can see the DSA repository data for. Meta's official Ad Library API only returns political and issue ads — it will not return commercial ad data even for EU-served ads. Any tool claiming to bulk-pull commercial EU ad data via that API is misrepresenting what the API returns.

Which companies are legally required to run an EU ad repository?+

Only providers designated as "very large online platforms" (VLOPs) or "very large online search engines" (VLOSEs) under the DSA — currently including Facebook, Instagram, TikTok, LinkedIn, YouTube, and Google Search, among others. Smaller ad platforms aren't bound by Article 39, though several publish ad transparency tools voluntarily.

Can I automate checks against the EU ad libraries?+

Only through each platform's own tooling or API where one exists — there's no unified EU-wide API across platforms, and Meta's public API is political-ads-only. Checking a handful of prospects by hand is quick; checking hundreds across a city is the part that needs automation, which is what a tool like CloseFast (closefa.st) exists to do.

More articles