TikTok's ad library, seven months into its DSA pledge: two fixes shipped, two still missing

On 5 December 2025 the European Commission accepted binding commitments from TikTok to fix its advertising repository, closing the transparency strand of a Digital Services Act investigation that had been running since February 2024. The Commission had preliminarily found in May 2025 that the repository breached Article 39: it was missing required content, targeting and funding data, and was not comprehensively searchable.
TikTok committed to four fixes: show the full ad as it appeared in-feed, including any destination URL; update the repository within 24 hours of a campaign starting; publish the targeting criteria advertisers chose, plus aggregated reach broken down by gender, age group and EU member state; and add search filters to make ads easier to find. The deadlines range from 2 to 12 months after the commitment date, so between February and December 2026, though the Commission has not said publicly which fix carries which deadline.
We went to TikTok's Commercial Content Library on 13 July 2026, seven months in, and tested it against those four commitments directly. Two are live. Two are not.
What Article 39 requires
Article 39 of the DSA requires a very large platform that runs ads to keep a searchable public repository of every ad, covering who paid for it, the content of the ad, whether and how it was targeted, how long it ran, and the total reach broken down by EU member state. TikTok's May 2025 finding and December 2025 commitments track this requirement closely: content, timeliness, targeting and reach, and searchability, four commitments for four elements of the article.
What TikTok actually provides
1. Full ad content and the destination URL — live
Every ad we opened in the library shows the original caption and creative exactly as posted, and where the advertiser set a click-through link, the full destination URL is shown along with the call-to-action button text. One ad we checked, run by a Google Play developer, listed the exact play.google.com URL and the button text "Go to Google Play". Ads with no link correctly show a dash rather than a broken field.
Two things the library still leaves out, though. Spark ads, the format that turns an existing organic post into a paid placement, do not appear in the repository at all, so an entire category of TikTok advertising is not there to be found. And the engagement fields that would show likes, comments and shares sit empty on every ad we opened, removing the one signal of how far an ad travelled beyond its paid reach.
2. Updated within 24 hours — live, on TikTok's own account
We could not independently clock this without running a paid campaign ourselves, but TikTok's own FAQ states, in three separate answers, that "ads are generally included in the CCL within 24 hours of campaign initiation" and describes an automated pipeline that transmits campaign details to the library the moment a campaign starts. That matches the commitment's wording almost exactly.
3. Targeting criteria and reach by gender, age and member state — partial
Member state breakdown is live: every ad we opened lists a per-country reach figure, in some cases across all 27 EU countries plus a handful of non-EU markets. Targeting criteria are live too: language, operating system, device, and a "high spending power" flag all appear under "Additional parameters" when an advertiser used them.
Gender and age are not. Every ad we checked, across two advertisers and reach levels from under 1,000 up to 8,000 people in a single country, showed a dash in both the Age and the Gender column. An 8,000-person reach figure is well past the level platforms usually cite for suppressing small-sample demographic data, so this looks like an unshipped feature rather than a privacy filter.
4. Added search filters — partial
The country selector, a publication-date range, and an advertiser or keyword search all work, and results can be sorted newest or oldest first. But the "Ad type" filter, the one control that would let a researcher narrow by ad format, currently offers exactly one option: "All ad types". It is a placeholder, not a working filter.
The bottom line
Seven months into a pledge with deadlines running out to December 2026, TikTok has shipped the two commitments that mainly required exposing data it already had: full ad content and destination URLs, and a same-day repository refresh. The two commitments that required new data, a gender-and-age reach breakdown and a genuinely useful filter set, are not live yet. The Commission has not published which commitment carries which deadline, so this is not necessarily a missed deadline. It is, as of today, an unfinished job.
Methodology: we tested the live Commercial Content Library at library.tiktok.com/ads on 13 July 2026, searching ads targeting Czech Republic and reading the "Ad details" page for individual ads across two advertisers and a range of reach levels. The original commitments are set out in the Commission's press release of 5 December 2025.
Latest blog posts
View All
July 13, 2026X’s ad repository still breaks DSA Article 39, seven months after the €120M fine
The European Commission fined X €120 million over its DSA ad repository in December 2025. We tested the live repository in July 2026: it still is not searchable, still lacks the data Article 39 requires, and is now slower than when it was fined.
July 12, 2026Why this transparency data only exists in the EU
The monthly-active-user counts, ad libraries and transparency reports behind this site all exist for one reason: the EU's Digital Services Act forces very large platforms to publish them. Here are the specific articles that make it possible — and why the same numbers don't exist anywhere else.
June 26, 2026What the Latest Round of DSA Transparency Reports Reveals (2025–26)
The latest EU DSA transparency reports are in: TikTok (178.3M EU users, July–Dec 2025), X (102M, Apr–Jun 2025) and Google/YouTube (Jan–Jun 2025). What the platforms reported, and why the numbers don't compare directly.