Skip to content
← Notes

Notes · August 4, 2026

Who paid for this sponsored post? A guide to Meta's Ad Library

17 min read


This is a guide for anyone who has to answer the question "who is behind this ad": journalists verifying a promotion, researchers, anyone who has found a suspicious sponsored post and wants to know where it comes from. It isn't a guide to spying on competitors, which is the angle almost every write-up takes. If you're short on time, the two things you actually need are the table on what's public and the section on why the "paid for by" field isn't enough.

What the Ad Library is and what it's for

The Ad Library is the public archive of ads running on Meta's platforms, and anyone can consult it without an account, at facebook.com/ads/library. You search by Page name or keyword, and what you get is the ad exactly as the person receiving it in their feed sees it, with the first-shown date beside it and every other creative running alongside. Meta's documentation describes it as holding "all active ads running across Meta technologies", a broad phrase the interface never breaks down; the API instead exposes the publisher_platforms field, which for each ad lists the surfaces it ran on.

The archive predates the rule that now underpins it, and the distinction matters. Meta opened it on 24 May 2018 for political content only, and only in the United States. Opening it to every active ad from any Page came on 28 March 2019, by Meta's own choice and not by legal obligation. The obligations came afterwards, and made binding what until then had been a concession.

Article 39 of the Digital Services Act, Regulation (EU) 2022/2065, requires very large platforms to keep a searchable repository reporting, for each ad, the content, on whose behalf it is shown, who paid for it, the period it ran, the main targeting parameters and the total number of people reached, broken down by member state where the ad specifically targeted particular groups. The repository has to stay accessible for one year after the ad last appeared, and has to be queryable through an API, not only by hand.

Article 39 is why today, in the EU, you can find out who pays for any commercial ad, and not only political ones as in 2018.

Where to read who paid for an ad

Opening the detail card of a European ad, you find two lines that don't exist elsewhere: advertiser, meaning on whose behalf the ad runs, and payer, meaning who actually puts up the money. When the two entities coincide, the second line may not appear at all, and that isn't a bug: it's how the interface normally behaves.

The advertiser and payer fields were introduced on 5 June 2023 for anyone targeting an audience inside the European Union, and today they're a publication requirement: Meta's documentation is blunt, without that information the ad cannot run. Meta also keeps every previous version of the field for a year, which means a mid-flight change leaves a consultable trace instead of silently replacing the old value.

That's what the documentation says, and this is usually where the explanation stops. The next question is how that field gets filled in.

Why "paid for by" is not proof

It's typed in by hand.

The path, for anyone who wants to see it with their own eyes, is Ads Manager, then Advertising settings, then the Digital Services Act section: a form with text fields, filled in by whoever buys the ad, that nobody cross-checks against a company register, a VAT number or a business registry. Meta puts it in writing in its own documentation, in a sentence worth reading in full: "Advertisers can manually enter a different entity". There's even a dedicated toggle, "Advertiser and payer are different", which opens a second field filled in the same way.

The "paid for by" field in the Ad Library is not a verification carried out by Meta. It's a declaration by the advertiser, typed by hand into a free-text box.

For anyone using that data to write something on top of it, the consequence is concrete and worth keeping in mind every time a card opens: a name appearing there is an excellent starting point and a terrible finishing point. Before trusting it, cross-check it against the company register, the landing page's domain registration and the corporate details in the site footer, and if those three don't line up then the story is right there, in the discrepancy, not in the declared field.

The reverse holds too, and it's the half almost everyone forgets the moment they find a discrepancy. A perfectly honest company can appear under a legal name nobody recognises, simply because that's the registered name and nobody has ever seen it on the shopfront. A discrepancy is a lead to verify, not proof already found.

What's public and what isn't, line by line

Meta publishes an official matrix of what the archive shows for each ad type, and it's worth keeping open in a tab while you work, because the differences between the columns are the source of nearly every error you'll read out there. Summarised, as of 28 August 2026:

Commercial adPolitical ad
Creative and copyyesyes, but the category can no longer be selected from the EU
Who the advertiser is and who paysyes, if delivered in the EUthe disclaimer; if also delivered in the EU, advertiser and payer appear too
How much was spentnoa spend range, not an exact figure
Impression rangesnoyes
Reach per member stateyes, if delivered in the EUyes
How long it stays archived1 year from last impression, if delivered in the EU7 years

The two columns aren't alternatives: they're two dimensions that add up. A political ad delivered in Europe is both political and European, and carries both sets of data — in the API the disclaimer sits in bylines and the advertiser/payer pair in beneficiary_payers, and the two fields can coexist on the same ad.

The two highlighted cells have to be read together, because they form the symmetry that throws people using the tool for the first time: for a European commercial ad you know who pays but not how much, for a political ad you know how much but as a range, not as a figure.

One case stays outside the table and it's the one that matters most on an international investigation, and it's geographic: a commercial ad that touches neither the European Union nor the United Kingdom is not archived, and when it stops running it disappears. The UK has its own regime, distinct from both the European one and the rest of the world, and in Meta's matrix it takes a column of its own: worth opening rather than assuming "outside the EU" means one single thing.

Does the Ad Library show how much a company has spent?

No, and it's the most widespread error among people opening the archive for the first time looking for a number that simply isn't there. For a European commercial ad the Library shows the creative, the dates and the reach per member state, but neither the amount spent nor impression ranges: those two only appear for political ads, which are no longer delivered in Europe, and I'll come back to why shortly.

The active ad count creates a second misunderstanding, less well known than the first. When you open a company's archive and see three hundred active ads, that number alone says nothing about budget, because it depends on how the ad set is built and how many variants the system generates on its own. An ad can also contain multiple versions inside it: the API returns bodies, titles and captions as lists under a single identifier, and Meta's automatic creative features generate still more. The number of cards you count on screen is therefore not proportional to what was spent, in either direction.

The number of active ads on a Page describes a technical configuration, not a spend figure. They're two different things, and swapping them is the error to avoid.

Is the Page I'm looking at the advertiser?

Not necessarily, and on this point the Library doesn't help you distinguish, because it shows the Page and not who controls the wallet. A single ad account can run ads across dozens of different Pages, maybe created specifically to test products that appear to have nothing in common; and the same Page, conversely, can receive at different moments ads paid for by accounts unrelated to each other. Whoever controls the money stays out of frame.

Indirect clues do stay visible, and there are more of them than a first glance suggests, all readable without special tools: identical creatives reappearing on different Pages, the same landing page behind the button, the same UTM parameters pasted into the links, a publishing rhythm too similar to be coincidence, even the same typo repeated across the copy. When two or three of these overlap across different Pages it's worth checking whether they're run by the same advertiser, but it stays a hypothesis to confirm elsewhere: the archive doesn't expose the ad account and can't confirm it.

The second place to look to trace who runs a Page is the Page Transparency section, which is a different tool from the Library and sits elsewhere: there you find the creation date, previous names if the Page has been renamed and, for Pages with a large audience or those doing political communication, the country of whoever manages them. A Page created three weeks ago, already renamed twice, administered from a country with nothing to do with the product being sold, says more on its own than any hand-typed field.

The Ad Library shows the Page, not who controls it: a single account can run campaigns across dozens of different Pages.

Why political ads disappeared across the EU

Up to here the opacity concerned who sits behind an ad. There's a second kind, of a different nature, and it concerns ads you can no longer reach in the archive by browsing.

On 6 October 2025 Meta stopped delivering political, electoral and social issue ads across the whole European Union. It wasn't a decision aimed at one country nor a penalty imposed on anyone: it's the response to the European regulation on the transparency of political advertising, the TTPA, Regulation (EU) 2024/900, in full application since 10 October 2025. Meta wrote that the obligations introduced created "an unworkable level of complexity and legal uncertainty". Google had reached the same conclusion almost a year earlier: on 14 November 2024 it announced it would stop selling political advertising in the Union before the regulation applied.

The effect on the archive is worth knowing before you start searching. From inside the EU the "social issues, elections or politics" category no longer appears among the filters, and without that filter the archived political ads aren't reachable by browsing the interface. The metadata stays: who bought, which spend range, how many ads. It's the creative content that has left the stage, not the accounting trace: research on 2022 or 2024 election spending remains possible, while seeing what those ads actually looked like requires going through the API and opening the ad_snapshot_url values one by one, assuming they respond.

The European repository foreseen by Article 13 of the TTPA, which doesn't replace Meta's archive but sits alongside it as a single access point, is not yet running: the Commission adopted the technical implementing act on 9 April 2026. In the meantime, on European political advertising, there's a hole.

The hole doesn't concern a future hypothesis: it concerns votes already cast. Take Italy, where I work. Since 6 October 2025 the country has voted in a constitutional referendum and by-elections on 22 and 23 March 2026, and in local elections on 24 and 25 May 2026 across 661 municipalities, fifteen of them provincial capitals. For none of those votes did the archive record new political ads.

Since 6 October 2025 paid political communication on Facebook and Instagram is no longer traceable with the tool researchers and journalists have used since 2019. Italy's March 2026 referendum and May 2026 local elections have already passed through this gap.

The proof, in thirty seconds

The asymmetry between the political and commercial channels verifies itself, without tokens and without the API, by pasting an address into the browser. The parameter selecting the political category is ad_type=political_and_issue_ads, and you only need to change the country in the same URL:

https://www.facebook.com/ads/library/?active_status=all&ad_type=political_and_issue_ads&country=IT&q=elezioni

Tested on 28 August 2026, the outcome is this: with country=IT Facebook rewrites the address and returns ad_type=all, downgrading the search to all ads. Same with country=FR and country=DE. With country=US the parameter stays political_and_issue_ads and the search works.

The Ad Library's political category doesn't come back empty for EU countries: it can no longer be selected. The interface swaps the filter without flagging it.

The test shows the filter isn't available, not that every archived creative is unreachable by other routes. Anyone who needs that data has to try the API with ad_active_status=ALL and open the ad_snapshot_url values it returns.

It's worth rerunning the check before citing this article, because the picture changes month to month and verifying costs half a minute.

How to search, in practice

For a quick check on a single ad the web interface is enough, and the sequence is always the same: pick the country, set the category to "all ads", type the Page name or a keyword, and on each card the details button opens advertiser, payer and reach per country.

For investigative work you need the API instead, and it's the difference between two trades. With the Graph API's ads_archive endpoint you download in bulk, and you move from "I found three suspicious ads" to "I counted four thousand". One field warning: the endpoint returns bodies, titles and ad_snapshot_url, not the destination address. To group ads by landing page you have to open the snapshots one by one, and that's a second pass to budget for. Two more cautions before counting on it. Access isn't immediate: Meta requires a Facebook account with confirmed identity and location, a developer account and a registered app, and only at the end the token; budget a few days, not a few minutes. And the API's coverage is narrower than the interface's: it returns political ads worldwide and any ad delivered in the European Union or the United Kingdom, not every active commercial ad the public site lets you browse. An empty response, therefore, doesn't mean that campaign doesn't exist.

That the API holds up at this scale is demonstrated. AI Forensics collected 450 million ads through it since August 2023, and found more than 46,000 fraudulent health ads with over 292 million impressions on European users, breaching at least fifteen of Meta's advertising standards. The same organisation, working on the same archive, estimated that less than 5% of undeclared political ads are caught by moderation, and documented a pro-Russian propaganda campaign that reached over 38 million users across France, Germany, Italy and Poland. With all its limits, at scale this archive works.

Who's paying this influencer?

There's a corner of the Library that gets little traffic, and it answers a question usually tackled with other tools or not tackled at all.

Since 17 August 2023 the archive also contains content published on Facebook and Instagram carrying the "paid partnership" label, and for each it shows the creator, the brand partner, the date and the post type. You search directly by account. It's the natural tool for verifying a declared sponsorship, but above all for noticing when a collaboration that looks obvious isn't declared anywhere, which is the interesting case.

What this archive doesn't tell you

It's worth closing with the limits, because they're the part that wastes the most time for people working on it convinced they'll find something that isn't there.

The Library doesn't say how much was spent on a commercial ad, who controls the ad account behind a Page, or whether the name in the "payer" field corresponds to a company that actually exists. It doesn't keep commercial ads that reached neither the European Union nor the United Kingdom, and since 6 October 2025 it no longer lets you browse political creatives from Europe. On targeting parameters it stays at the general criteria the rule requires, without going down to the interests and behaviours actually selected for a commercial ad.

One clarification that saves a recurring error: the Ad Library has nothing to do with the "why am I seeing this ad" panel that appears in an ad's menu in your own feed. The second answers a private question, why that ad was shown to you, and shows data about your profile. The first answers a public question, who paid for that ad, and shows the same thing to anyone who opens it. They're two tools easily confused, and the confusion leads people to write that the public archive shows why an ad reached a specific person: it doesn't.

And it doesn't say whether an ad is a scam. It says who declared they were paying for it, and what it showed. The rest is work.

Part of that work sits before the archive, and it's understanding how a scam ad gets past Meta's review: what the review system looks at before publishing an ad, and what escapes it.

Frequently asked questions

How do you find out who paid for a Facebook ad? Open facebook.com/ads/library, search the Page or keyword, open the ad's detail card and read the "advertiser" and "payer" fields. For ads reaching the European Union those fields have been a publication requirement since June 2023.

How do you verify who the real advertiser behind a Facebook Page is? The "payer" field is a self-declaration and has to be cross-checked against the company register, the landing page's domain registration and the site's corporate details. The Page Transparency section adds creation date, previous names and, for Pages with a large audience, the country of whoever manages them. Identical creatives, the same landing page and the same UTM parameters across different Pages point to a single advertiser, to be confirmed elsewhere: the archive doesn't expose the ad account.

Do you need a Facebook account to use the Ad Library? No, the archive is public and consultable without registration. An account is only needed for the API, which requires an access token.

Does the Ad Library show how much a company has spent? No, for commercial ads: it shows the creative, the dates and the reach, not the amount. Spend data exists only for political ads, and it's a range, not an exact figure. In Europe those ads have no longer been delivered since 6 October 2025.

Can I still find out how much a party spent on advertising before October 2025? Yes for the metadata, no for the ads. Who bought, the spend range and how many ads they ran remain consultable, while the archived creatives are no longer reachable by browsing the interface from inside the EU.

Why can't I find European election ads any more? Because Meta stopped delivering them across the EU on 6 October 2025, in response to the TTPA regulation. The "social issues, elections or politics" category no longer appears among the filters for EU countries.

How long do ads stay in the archive? One year after the last impression for commercial ads reaching the EU, seven years for political ones. Commercial ads that never touch Europe aren't archived: when they stop running they disappear.

How do you check whether an influencer's post is a brand-paid ad? The Ad Library has included, since 17 August 2023, content carrying the "paid partnership" label published on Facebook and Instagram. You search by account and see creator, brand partner, date and post type.

Is the name in the "paid for by" field verified by Meta? No. It's a text field the advertiser fills in by hand in Ads Manager, and Meta's documentation confirms a different entity can be typed in.

Is a company with 400 active ads spending a lot? Not necessarily. The number depends on how the campaign is structured and how many variants the automation generates, so it isn't a budget indicator.

Changelog

29 August 2026: added the cross-references to the note on how a scam ad gets past Meta's review.

28 August 2026: sources and figures verified.

Read next

Other notes on how the rules inside Meta change:

DC

Davide Cosmai

Meta Ads Expert & Growth Strategist · Meta Business Partner. 15+ years running Meta campaigns. €52M+ in revenue generated for clients.