TikTok DSA Ads Transparency Library Scraper avatar

TikTok DSA Ads Transparency Library Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
TikTok DSA Ads Transparency Library Scraper

TikTok DSA Ads Transparency Library Scraper

Search TikTok's EU/EEA ad transparency database by keyword, advertiser or ad ID. Get creative media, advertiser identity, impression buckets, audit status and per-region/age/gender targeting.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

vexaloom-labs

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Search TikTok's DSA ad transparency library across 33 European markets and the global Creative Center Top Ads from one actor. Get ad creatives, advertiser identity, first/last shown dates, unique-user reach, age/gender targeting, CTAs, landing pages and Creative Center performance signals — with no TikTok account, cookies, API key or proxy setup.

What this actor does

  • DSA library search by keyword, exact advertiser name (optionally with its business ID), ad ID or a pasted library URL — in 33 EU/EEA/UK/CH/TR markets or all of them.
  • Server-side filters for ad type, active/inactive status, age, gender, unique reach and six sort orders, plus an exact-phrase option.
  • Full ad detail (optional): caption, CTA, landing page, advertising objective, registered advertiser, sponsor, linked TikTok account, per-country reach and age × gender breakdowns.
  • Creative Center Top Ads (optional): global markets, 7/30/180-day windows, ranking by For You/CTR/likes, objective/industry/language filters, video renditions, CTR, likes, cost tier and optional landing pages/comments/shares.
  • Both sources in one run, with a source field on every row.
  • Count-only mode for a quick number of matching DSA ads.
  • Fields a source does not disclose are omitted, never left as null or placeholders.

Output per ad

DSA library rows (recordType: "ad", source: "tiktokAdsLibrary")

  • adId, adUrl — TikTok ad ID and its library detail page
  • advertiserName, advertiserId, advertiserBusinessName, advertiserBusinessId, advertiserCountry, advertiserSponsor
  • advertiserTikTokUser — linked TikTok account: id, username, displayName, followers, accountType, avatarUrl, profileUrl
  • adTitle, adType, adFormat, showMode, adStartDate, adEndDate, daysActive
  • adImpressions, adImpressionsMin, adImpressionsMax, avgImpressionsPerDay
  • adVideoUrl, adVideoCover, adVideos, adImages — working media URLs
  • ctaText, advertisingObjective, landingPageUrl
  • auditStatus, auditStatusLabel, sorAuditStatus, rejectionInfo, auditReasons
  • targetingByLocation, adReachByCountry, targetingByAge, targetingByGender, targetAudienceSize, targetAudienceSizeMin, targetAudienceSizeMax
  • targetingCountries, targetingCities, targetingProvinces, targetingLanguages, targetingDeviceModels, targetingOperatingSystems, targetingHighSpendingPower, audienceTargeting, audienceExclude
  • interestTargeting, videoInteractionsTargeting, creatorInteractionsTargeting, displayMode
  • searchTotal, searchRegion, searchQueryType, detailsFetched, detailUnavailable
  • source: "tiktokAdsLibrary", recordType: "ad", scrapedAt

Creative Center rows (recordType: "topAd", source: "creativeCenter")

  • adId, adUrl, adTitle, advertiserName, adType: "video"
  • adVideoUrl, adVideoCover, videoRenditions, videoDuration, videoWidth, videoHeight
  • ctr, likeCount, costTier, industryKey, industryName, objectiveKey, objectiveName
  • landingPageUrl, commentCount, shareCount, advertiserCountries, isSearchAd, ccSource
  • observedCountry, observedPeriod, source: "creativeCenter", recordType: "topAd", scrapedAt

Count-only runs emit one row with recordType: "summary" and searchTotal.

Input

FieldTypeDefaultDescription
modestringlibrarylibrary, creativeCenter or both
keywordstring""Keyword/advertiser text for a DSA search; empty = browse.
advertiserNamestring–Exact advertiser name; retried as a keyword if the exact search is empty.
advertiserIdstring–Optional business ID to disambiguate an advertiser search.
adIdsarray[]Direct ad IDs to open.
startUrlsarray[]TikTok library search or ad-detail URLs. Search URLs contribute their region, keyword/advertiser and date window.
regionstringallOne of 33 country codes or all.
startDatestring–Last-shown date from (YYYY-MM-DD); default one year ago.
endDatestring–Last-shown date to (YYYY-MM-DD); default today.
sortBystringlast_shown_date,descOne of six sort orders.
adTypestringallall, video, image, text.
adStatusstringactiveall, active, inactive.
agearray[]Any of 13-17, 18-24, 25-34, 35-44, 45-54, 55+.
genderstringallall, female, male.
uniqueReachstringallall, under10k, 10k-100k, over100k.
exactPhrasebooleanfalseTreat the keyword as an exact phrase.
includeDetailsbooleantrueEnrich DSA ads from their detail pages.
countOnlybooleanfalseReturn one summary row with the matching total.
maxItemsinteger50Records per source (1–5,000).
ccCountrystringUSCreative Center market (28 options).
ccPeriodstring307, 30 or 180 days.
ccOrderBystringfor_youfor_you, ctr or like.
ccObjectivestringallall or one of eight campaign objectives.
ccIndustrystringallall or one of 258 industries.
ccLanguagestringallall or one of 16 languages.
ccSweepbooleantrueSweep filter combinations to collect more than 20 unique top ads.
ccIncludeDetailsbooleantrueAdd landing pages, comments and shares.

Example: keyword search in Germany with details

{
"mode": "library",
"keyword": "Nike",
"region": "DE",
"includeDetails": true,
"maxItems": 25
}

Example: exact advertiser, all markets, image ads

{
"mode": "library",
"advertiserName": "NIKE Retail B.V.",
"region": "all",
"adType": "image",
"includeDetails": true,
"maxItems": 100
}

Example: Creative Center top ads in the US

{
"mode": "creativeCenter",
"ccCountry": "US",
"ccPeriod": "180",
"ccOrderBy": "ctr",
"ccSweep": true,
"maxItems": 100
}

Example: both sources

{
"mode": "both",
"keyword": "skincare",
"region": "FR",
"ccCountry": "FR",
"maxItems": 50
}

Use cases

  • Competitive intelligence — see every ad a brand runs in Europe, with dates, reach and targeting.
  • Creative research — collect working video/image creatives and CTAs across markets.
  • Compliance monitoring — pull audit status, rejection details and advertiser identity.
  • Market sizing — compare unique-user bands and per-country reach for a category.
  • Global trend spotting — use Creative Center to find high-performing ads outside the EU.
  • Advertiser due diligence — check the registered business, sponsor and linked TikTok account.

FAQ

Do I need a TikTok account or cookies? No. Both sources are public. The actor opens TikTok's public pages once to establish an anonymous session; no login, cookie file or API key is involved.

How many DSA ads can one search return? TikTok serves 12 ads per page and caps a single search at roughly 5,000 results. Split by country, date range or keyword to go deeper. The actor warns when it reaches the cap.

Why are some ads missing details? TikTok marks some ads as unavailable or shows no detail data. Those rows keep their listing data and carry detailUnavailable: true. Detail pages are opened for at most 500 DSA ads and 200 Creative Center ads per run; rows beyond those limits keep their listing data.

Why are my video URLs sometimes expired? TikTok's media URLs are signed and time-limited. The actor converts the library's wrapper URLs into working CDN URLs; download or re-host the files promptly if you need them long-term.

What is the difference between the DSA library and Creative Center? The DSA library is the EU transparency database: dates, reach, targeting and advertiser identity. Creative Center is a global showcase of high-performing ads with CTR/likes/video renditions, but no dates or targeting.

Why does Creative Center return only 20 ads? Anonymous visitors get one page of 20 per filter combination. With ccSweep on, the actor sweeps periods, rankings, objectives and formats, deduplicates, and collects many more unique ads.

Can I search Creative Center by keyword? Not reliably without a TikTok login. The actor does not offer a Creative Center keyword field; it sweeps the public Top Ads surface instead.

How do exact advertiser searches work? TikTok matches the exact advertiser name (for example NIKE Retail B.V.). If that returns nothing, the actor retries the name as a keyword so you still get useful results.

Why do some fields stay empty? TikTok does not disclose them for every ad — for example spend, exact impressions, cities or device targeting. Empty fields are omitted rather than filled with placeholders.

Is this affiliated with TikTok? No. This is an independent third-party actor that reads TikTok's public ad transparency library and Creative Center pages.