adlibrary.com Logoadlibrary.com
← Back to Glossary

Article 39

Article 39 of the Digital Services Act requires designated Very Large Online Platforms and Search Engines that serve ads to publish a public repository disclosing each ad's content, advertiser, payer, display period, targeting parameters, commercial-communication flag, and total reach per EU member state.

Definition

Article 39 of the Digital Services Act requires designated platforms that serve ads to publish a public ad repository. For every ad shown, the repository has to carry seven fields: the ad's content, who it was presented on behalf of, who paid for it, the period it ran, whether and how it was targeted, a commercial-communication flag, and total reach with per-member-state aggregates.

Removed ads stay in the repository minus the advertiser's identity. Article 39 has bound X, TikTok, Meta and Google for years; none has fully complied, per the compliance scoring at Social Media Transparency. OpenAI owes a repository for ChatGPT by January 2027.

Why It Matters

Article 39 is the only DSA obligation built for the public rather than regulators or researchers. It's the field that turns platform ad data from a private black box into something a competitor, journalist or agency can query directly, at least in principle.

In practice, every platform bound by it has shipped a repository with real gaps: unverified payer identity, broad rather than specific targeting disclosure, no search by ad content, and lag on data currency. Reading the statute tells you what's owed. Reading the compliance record tells you what actually ships.

Examples

  • X, TikTok, Meta and Google Search are all bound by Article 39 today. Per Social Media Transparency's scoring, TikTok and Meta each miss 7 of 11 sub-requirements, and X scores worst with a €120M DSA fine, issued December 2025 and under appeal.

Common Mistakes

  • Assuming an Article 39 repository means searchable, real-time ad data. Every platform examined so far ships broad targeting categories, lagged data and unverified advertiser identity instead.