TikTok Ads Bulk Scraper — Creative Center Top Ads
Pricing
Pay per event
TikTok Ads Bulk Scraper — Creative Center Top Ads
Bulk TikTok ad exports charge you per row returned — including the duplicates you get when you sweep several countries, and the overlap is real (38% between US and GB). This one de-duplicates before it bills, so you pay for distinct creatives, not repeated rows.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Radu Furtuna
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Bulk-export the top-performing ads from TikTok Creative Center — video URLs, brand names, CTR, cost, likes, industry and objective — across as many country and time-window slices as you want, de-duplicated into one clean dataset.
How it works
- No third-party account needed. TikTok Creative Center renders client-side and refuses requests
made outside a real browser session, so a real anti-detect browser is required — this Actor uses a
built-in stealth browser by default. You can still point it at your own remote browser (
cdpUrl) if you prefer; the backend is never switched automatically and is reported in the run's coverage. This Actor only reads what the public board loads for an ordinary visitor. - You pick countries and periods. Every
country × periodpair is one slice of the board. - Each slice is swept to its full depth — up to 100 ads (5 pages × 20), which is the source's own hard ceiling per slice.
- Ads are de-duplicated across slices before they reach the dataset, and you are charged once per distinct ad. Slices overlap in reality (measured: US/30d and GB/30d share 38 of ~100), so this matters.
Input
{"countryCodes": ["US", "GB", "DE"],"periods": [7, 30],"orderBy": "ctr","maxPagesPerSlice": 5,"maxAds": 1000}
| Field | Meaning |
|---|---|
cdpUrl | Optional. Leave empty to use the built-in stealth browser. If set, stored as a secret and never logged. |
countryCodes | Two-letter codes, up to 28 (the source's own list). Default ["US"]. |
periods | 7, 30, 180. Each period is a separate slice. Default [30]. |
orderBy | ctr (default) and impression are deterministic; for_you is personalised and rotates. |
maxPagesPerSlice | 1–5. Default 5 (the full 100 ads per slice). |
maxAds | Hard stop, counted after de-duplication — the number of distinct ads you actually receive. |
webhookUrl | Optional HTTPS endpoint receiving a JSON run summary. |
Output
One dataset row per distinct ad:
adId, title, brand, ctr, cost, likes, industryKey, objectiveKey, videoId, durationSec,
coverUrl, adUrl (the ad's card in TikTok Creative Center — a link that actually opens; the board exposes an internal video id, not a public post id, so no tiktok.com/@/video/... link is offered), countryCode, period, orderBy, runId, scrapedAt.
countryCode / period / orderBy record which slice the ad was first seen in, so the export stays
traceable. The key-value store also holds coverage with per-slice detail: pages seen, source
total_count, and whether the window was truncated or the pagination incomplete.
Billing
run-started— once per run, charged only after the board has actually returned a valid, recognised response. A blocked or dead run charges nothing at all, not even the start event.ad-scraped— once per distinct ad, charged only after the row is written to the dataset.
You are never charged twice for the same creative within a run, and never for a run that returned nothing.
How this compares
run-started $0.002 · ad-scraped $0.0009 ($0.90 per 1,000 distinct ads).
The list price is mid-range for the category. What changes the actual bill is de-duplication: slices of the board overlap heavily, and this actor charges per distinct creative, not per row returned. Measured overlap between the US and GB 30-day slices was 38%.
So for a realistic multi-country sweep — say 3 countries × 30 days, 300 rows fetched, ~190 of them distinct after overlap is removed:
| what you pay for | bill for that sweep | |
|---|---|---|
| Bulk scraper at $3.00 / 1,000 | every row, duplicates included | $0.90 |
| Bulk scraper at $1.50 / 1,000 | every row, duplicates included | $0.45 |
| TikTok Ads Bulk Scraper at $0.90 / 1,000 | distinct ads only | $0.17 |
| Bulk scraper at $0.49 / 1,000 | every row, duplicates included | $0.15 |
| Cheapest bulk dumper at $0.01 / 1,000 | every row, duplicates included | $0.003 |
Being straight about it: on sticker price this actor is not the cheapest on the Store, and one dumper is cheaper than anything short of free. On the bill for a real multi-country sweep it lands next to the cheapest mainstream option — while giving you a clean, de-duplicated dataset instead of repeated rows you have to sort out yourself. The wider you sweep, the more that gap works in your favour.
Limits, honestly
- 100 ads per slice is the source's hard ceiling (5 pages × 20). Volume comes from sweeping more slices, not from asking for a bigger page.
- Slices overlap. 28 countries × 3 periods is 84 slices and a theoretical 8,400 rows, but the distinct total is lower — measured overlap between US/30d and GB/30d was 38%.
- No industry / objective / language filter. Creative Center exposes those controls, but the board
ignores them when they are passed in the page URL — verified directly: requesting a specific industry
returned the same industry mix as an unfiltered request. Rather than ship a filter that silently does
nothing, this actor does not offer one. Every ad's own
industryKeyandobjectiveKeyare in the output, so you can filter after export. for_yourotates. If you choose it, two runs will not return the same set.ctrandimpressionare deterministic — prefer them for repeatable exports.- TikTok does not publish an ad's real first-appearance date, and this actor does not claim one.
Author: OmniCoder (https://t.me/OmniCoder)