TikTok Ad Library Scraper — DSA Commercial Content Spy
Pricing
$2.00 / 1,000 ad scrapeds
TikTok Ad Library Scraper — DSA Commercial Content Spy
Scrape TikTok's official DSA-mandated public Ad Library (library.tiktok.com). Search by keyword or browse all ads per country. Get advertiser, video URL, cover, image URLs, first/last shown dates, estimated audience, spend and impressions. Headless bootstrap + HTTP pagination.
Pricing
$2.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
Walid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Ad Library Scraper extracts ads from TikTok's official DSA-mandated public Ad Library (library.tiktok.com) — every ad that ran in the EU, with the DSA premium fields: advertiser, dates, estimated audience tier, impression count, spend, and the direct video URL. Different from the Creative Center: this is the full DSA library (FR alone has 83M+ ads). Browse all ads per country or search by keyword. Headless bootstrap + pure HTTP pagination.
⭐ Found this useful? Click the Bookmark button at the top of this page — it's the single strongest signal that keeps this actor visible to others. One click. No signup beyond your existing Apify account.
What can TikTok Ad Library Scraper do?
- 🌍 Browse the full DSA library per country (FR, DE, IT, ES, NL, PL...) — 83M+ ads in FR alone
- 🔍 Search by keyword in ad content / advertiser names
- 📊 DSA premium fields —
estimated_audience(tier 0-1K, 1K-10K, etc.),impressions,spent - 🎬 Direct video URLs + cover + image URLs
- 📅 Period filter — last N days
- 🧭 2 sections —
ads(standard) andother(other commercial content) - 📈 Sort modes — newest / oldest / highest impressions
- ⚡ Headless bootstrap (~10s) + HTTP pagination — 60 ads in ~25s
What data can you extract per TikTok ad?
| Field | Description |
|---|---|
ad_id | TikTok DSA library ad ID |
advertiser_name | Advertiser display name |
advertiser_id | Internal advertiser/business ID |
audit_status | DSA moderation status |
type | Ad type code |
first_shown_ms | First shown date (epoch ms) |
last_shown_ms | Last shown date (epoch ms) |
estimated_audience | DSA audience tier (e.g. 0-1K, 1K-10K, 10K-100K...) |
impressions | Number of impressions reported by TikTok |
spent | Spend disclosure |
video_url | Direct video URL |
cover_url | Cover image |
image_urls | All image URLs (carousel ads) |
region | Country code |
detail_url | Direct link to the DSA detail page |
How to spy on TikTok ads (DSA library)
- Create a free Apify account — no credit card required
- Open TikTok Ad Library Scraper in Apify Store
- Pick a country (default
FR) and optionally aquerykeyword - Pick a period (default 30 days) and sort (newest / impressions)
- Click Start — ads stream within seconds
How much does it cost to spy on TikTok DSA ads?
$0.002 per ad ($2 per 1,000 ads). One-shot headless bootstrap (~10s once per run) then pure HTTP pagination.
| Run size | Ads | Apify cost | Time |
|---|---|---|---|
| Quick test | 12 | ~$0.024 | ~15s |
| Standard | 60 | ~$0.12 | ~25s |
| Deep | 240 | ~$0.48 | ~1min |
| Massive | 1000 | ~$2 | ~3min |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
region | string | FR | ISO 2-letter code (EU + supported globals) |
query | string | — | Keyword to search; empty = browse all ads |
section | string | ads | ads or other (other commercial content) |
periodDays | integer | 30 | Lookback window in days |
order | string | last_shown_date,desc | last_shown_date,desc/asc, first_shown_date,desc, impression,desc |
maxResults | integer | 60 | Cap on total ads returned |
useResidentialProxy | boolean | false | Enable only if you hit rate limits |
Output example
{"ad_id": "1866718100189281","advertiser_name": "olesiashopart","advertiser_id": null,"audit_status": "1","type": "2","first_shown_ms": 1780241349000,"last_shown_ms": 1780241349000,"estimated_audience": "0-1K","impressions": 0,"spent": null,"video_url": "https://library.tiktok.com/api/v1/cdn/.../video.mp4","cover_url": "https://...cover.image","image_urls": [],"region": "FR","detail_url": "https://library.tiktok.com/ads/detail/?ad_id=1866718100189281"}
Use cases
- EU competitor ad spy — every TikTok ad shown in any EU country since 2023
- DSA compliance research — pull the official transparency record per advertiser
- Agency reporting — full library coverage (way wider than the Creative Center's curated Top Ads)
- AI training data — bulk video URLs + DSA-tier labels
- Dropshipping research — sort by
impression,descto surface winning creatives
Use the actor via API
Python:
import requestsrun = requests.post("https://api.apify.com/v2/acts/dltik~tiktok-ad-library/runs",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},json={"region": "FR", "query": "nike", "periodDays": 30, "maxResults": 60}).json()print("Run started:", run["data"]["id"])
curl:
curl -X POST "https://api.apify.com/v2/acts/dltik~tiktok-ad-library/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"region":"FR","query":"nike","periodDays":30,"maxResults":60}'
FAQ
What's the difference vs the TikTok Creative Center scraper? TikTok runs two transparency products. The Creative Center showcases a curated "Top Ads" feed for advertiser inspiration (with CTR + likes). The DSA Ad Library (this scraper) is the official EU-mandated public record of every ad shown — far wider coverage, includes the DSA-mandated fields (audience tier, impressions, spend). Use this for compliance, deep competitor sweeps, EU-targeted research.
Do I need a TikTok account? No. The DSA library is a public transparency tool. The scraper bootstraps a session token in a headless browser (once per run) then paginates over HTTP — no login, no cookies.
Why does the actor briefly run Chromium?
The library API requires an x-ccl-str token generated client-side. We capture one fresh token in ~10s via headless Chromium then reuse it for the rest of the run via fast HTTP calls.
Advanced: refresh signing without redeploy.
If TikTok rotates the validity window and the bundled fallback expires, override two env vars in the Apify console: TT_CCL_STR (the token), TT_CCL_REFERER (the page URL it came from). Copy them from the request headers of any /api/v1/search call in DevTools.
⭐ Found this TikTok Ad Library Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility.
Other scrapers by dltik
| Actor | What it does | Price |
|---|---|---|
| Facebook Ads Library Scraper | Meta (Facebook + Instagram) ad library spy with DSA detail enrichment | $0.75/1K |
| Google Ads Transparency Scraper | Google Search, YouTube, Display ad spy via official Ad Transparency Center | $0.8/1K |
| LinkedIn Ad Library Scraper | B2B competitor ad spy from LinkedIn's public Ad Library | $2/1K |
| TikTok Creative Center | Curated Top Ads with CTR + likes + MP4 video URL | $2/1K |