TikTok Ads Library Scraper
Pricing
from $1.00 / 1,000 results
TikTok Ads Library Scraper
Scrape the TikTok Ads Library: advertisers, creatives, reach and DSA targeting data across the EU, EEA and UK.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Anton DataScout
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Share
TikTok Ads Library Scraper — Ad Copy, Reach & Targeting
Scrape the TikTok Ads Library by advertiser and country, and get back what competitors are actually running: the ad copy, the creative, the landing page — plus the transparency data TikTok is legally required to publish under the EU Digital Services Act: how many people saw each ad, in which country, split by age and gender.
No login, no API key, no browser.
Table of contents
- Why this TikTok ads scraper
- The targeting data nobody bills you extra for
- Broad vs exact advertiser match
- Use cases
- Input
- Output
- Cost
- Honest limits
- FAQ
- Related Actors
Why this TikTok ads scraper
| Typical TikTok ads scraper | This Actor | |
|---|---|---|
| Advertiser and creatives | ✅ | ✅ |
| Ad copy | often documented as "not available" | ✅ returned |
| Impressions per country | paid add-on or missing | ✅ included |
| Age × gender breakdown | paid add-on or missing | ✅ included |
| Advertiser's TikTok account + followers | ❌ | ✅ included |
Who paid for the ad (paidForBy) | rarely | ✅ |
| Landing page + objective + CTA | partial | ✅ |
| Exact-advertiser mode | ❌ | ✅ returns the advertiser's full ad set |
| Failed detail requests | silently empty columns | ✅ reported with the HTTP status |
Competing Actors put ad copy and targeting behind a resolveAdDetails-style toggle and bill it separately, on top of the per-ad price. Here it is on by default and included in the price.
The targeting data nobody bills you extra for
The TikTok Ads Library exists because Article 39 of the EU Digital Services Act forces large platforms to publish an ad repository. That law is why this data is unusually good — and this Actor keeps all of it:
"totalImpressionsLabel": "1M-10M","topAgeGroup": "25-34","topGender": "FEMALE","impressionsByCountry": [{ "country": "DE", "impressions": 5300000, "impressionsLabel": "5.3M" }],"ageGenderBreakdown": [{ "country": "DE", "age": "18-24", "gender": "MALE", "impressions": 767000 },{ "country": "DE", "age": "18-24", "gender": "FEMALE", "impressions": 900000 }]
Every display string like "5.3M" also gets a numeric twin, so you can sort and sum in a spreadsheet without cleaning anything first. topAgeGroup and topGender are computed by summing impressions across the grid, not by taking the first row.
Broad vs exact advertiser match
This matters more than it sounds:
- Broad match — finds any advertiser whose name contains your text. Searching
Nikereturns roughly a thousand ads, mixed with unrelated accounts that merely have "nike" in the name. - Exact advertiser name — matches the registered company in full, e.g.
NIKE Retail B.V.. In testing this returned 4,198 ads, all genuinely Nike's.
Start broad to discover the exact legal name (it comes back as advertiserName), then re-run in exact mode to pull that advertiser's complete history.
Use cases
1. Competitor ad research
See every ad a competitor ran in a market, with the copy, the creative and the landing page. Long-running ads with high reach are the ones worth studying.
2. Creative swipe file
Download video and image creatives with their objective and call to action attached, so you know what each creative was actually trying to do.
3. Audience validation
Before you guess who a product sells to, look at who the ads actually reached: impressions by age and gender, per country, straight from the platform.
4. Market entry research
Compare the same advertiser across countries — who advertises in France but not Poland, and how reach differs between them.
5. Agency and sponsor mapping
paidForBy names the media agency behind the ad, and advertiserRegistryLocation gives the registered country. Useful for mapping who buys media for whom.
6. Influencer and brand-account discovery
Every ad links back to the TikTok account that ran it, with follower count and verification status.
7. Compliance and brand monitoring
Track ads mentioning your brand, and spot rejected ads through the isRejected flag.
Input
| Field | Description |
|---|---|
| Countries | Two-letter codes. EU-27, EEA, UK, Switzerland and Türkiye — 33 in total. |
| Search terms | Advertiser names. Required — TikTok returns nothing for an empty query. |
| Match mode | Broad, or exact registered company name. |
| Advertiser business ID | Optional. Pins the search to one exact advertiser. |
| Time window | Days back, or an explicit start and end date. |
| Sort by | Most recent, or highest reach first. |
| Include ad copy and targeting | On by default. One extra request per ad. |
| Max ads per country and term | Your cost ceiling. |
{"regions": ["DE", "FR"],"searchTerms": ["NIKE Retail B.V."],"searchBy": "exact","daysBack": 90,"sortBy": "impression,desc","maxResultsPerQuery": 200}
Output
42 fields per ad. A trimmed sample:
{"adId": "1866065258633346","adUrl": "https://library.tiktok.com/ads/detail/?ad_id=1866065258633346","adText": "Wenn du deinem Instinkt vertraust, gehört das Spiel dir.","callToAction": "Learn more","advertisingObjective": "Video views","externalUrl": "https://www.nike.com/de/fussball","firstShownDate": "2026-05-24","lastShownDate": "2026-07-15","daysRunning": 53,"estimatedAudience": "1M-10M","topAgeGroup": "25-34","topGender": "FEMALE","advertiserName": "NIKE Retail B.V.","advertiserRegistryLocation": "Netherlands","paidForBy": "INITIATIVE MEDIA B.V.","accountUsername": "nikefootball","accountFollowers": 573400,"accountIsVerified": true}
Grouped into identity · creative (copy, CTA, objective, landing page, video and image URLs) · schedule (first shown, last shown, days running) · reach · DSA targeting · advertiser · TikTok account · status · provenance.
Cost
Pay per ad returned. maxResultsPerQuery caps each country/term pair, so the bill is knowable before the run starts.
Ad copy and targeting are included — no separate enrichment fee. A 36-ad run with full details takes about 25 seconds.
Honest limits
- EU, EEA, UK, Switzerland and Türkiye only — 33 countries. The library is a DSA compliance product; there is no US or APAC data in it. Codes outside the list are skipped with a warning instead of failing the run.
- A search term is required. An empty query returns zero results from TikTok, so the Actor refuses it up front rather than finishing with an empty dataset.
- No spend figures. TikTok publishes reach, not money. Any tool claiming TikTok ad spend is estimating.
- Reach is banded. Audience sizes come as ranges like
1M-10M; the numericestimatedAudienceMin/Maxfields expose both ends. - Some detail requests are refused. TikTok rate-limits ad detail calls per IP. The Actor spreads them across a pool of independent sessions and retries on a fresh one, which recovers the large majority — but any ad that still fails is logged with its HTTP status and keeps its search-level fields. An empty
adTextis always traceable to a real refusal, never a silent gap. - Proxy: datacenter proxies are enough. The library answers from any region, so residential proxies only add cost.
FAQ
Do I need a TikTok account or API key? No. The Ads Library is public by law.
Why is there no US data? Because the library only exists to satisfy EU regulation. TikTok publishes no equivalent archive for the US.
Can I get a competitor's complete ad history? Yes — run a broad search first to learn their exact registered name, then re-run in exact mode.
Can I download the videos?
videoUrls and imageUrls contain direct CDN links you can fetch or hand to Apify's storage.
How current is it? Ads appear in the library while they run, so a daily scheduled run gives you a live feed of competitor activity.
Is scraping the TikTok Ads Library legal? It collects only the public transparency data TikTok is required to publish, with no login and no personal data. How you use the data is your responsibility.
Related Actors
- Facebook Ads Library Scraper — the same competitive research on Meta, with days-running per creative.
- YouTube Outlier Finder — spot breakout video topics before they get crowded.
- Google Trends Scraper — check whether the demand behind a campaign is actually growing.
- Telegram Channel Scraper — track how campaigns spread in public communities.
- Eventbrite Scraper — events, organizers and demand signals.