Tiktok Ads Scraper [PPR]
Pricing
from $3.00 / 1,000 ad scrapeds
Tiktok Ads Scraper [PPR]
Extracts ad creatives, reach estimates, targeting criteria, and audience demographics from the TikTok Ad Library (EU/EEA). Search by keyword or advertiser name across 30+ countries. Returns video/image assets, ad copy, and geographic reach data.
Pricing
from $3.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer

zadexinho
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Ads Scraper
Extracts ads, creatives, targeting data, and reach estimates from the TikTok Ad Library (library.tiktok.com). Covers all EU/EEA countries as mandated by the EU Digital Services Act (DSA). Search by keyword or advertiser name to collect structured records including video/image assets, impression estimates, audience demographics, and geographic reach breakdowns by country.
What data can you extract?
| Field | Description | Available |
|---|---|---|
adId | Unique TikTok ad identifier | Always |
status | Ad approval status | Always |
firstShownDate | Date ad first ran (YYYY-MM-DD) | Always |
lastShownDate | Date ad last ran (YYYY-MM-DD) | Always |
advertiserName | Advertiser display name | Always |
advertiserBusinessId | Advertiser business ID | Always |
paidBy | Entity that paid for the ad | Always |
registryLocation | Advertiser registry location | When available |
tiktokUser | TikTok username | When available |
creativeType | "video" or "image" | Always |
videoUrl | Video asset URL | If video |
thumbnailUrl | Video thumbnail URL | If video |
imageUrls | Image asset URLs | If image |
adCopy | Ad text content | Always |
estimatedAudience | Audience size range | Always |
reachByLocation | Impressions by country | With details |
targetingAudience | Audience targeting description | With details |
targetingInterest | Interest-based targeting | With details |
targetAudienceSize | Target audience size range | With details |
targetingCountries | Targeted countries | With details |
targetingByGender | Gender breakdown by region | With details |
targetingByAge | Age bracket breakdown by region | With details |
detailUrl | Link to ad in TikTok Ad Library | Always |
scrapedAt | ISO timestamp of scrape | Always |
Fields marked "With details" require fetchDetails: true (default on).
Note: The impressions field is always 0 — TikTok's API does not expose raw impression counts. Use estimatedAudience and reachByLocation for reach estimates.
How to scrape TikTok ads
- Enter a keyword (e.g., "Nike", "streaming") or an advertiser name in the Search section
- Select a region or leave as "all" for all EU/EEA countries
- Optionally set a date range to filter by when ads ran
- Set Max Results — TikTok's API returns up to ~12 ads per query
- Click Start — results typically arrive in under 30 seconds
- Download as JSON, CSV, or connect via the Apify API
How much does it cost?
Pay-per-event pricing — charged per ad extracted.
| Event | Price per ad | Per 1,000 ads |
|---|---|---|
ad-scraped | $0.003 | $3.00 |
Extracting 100 ads costs approximately $0.30.
Use cases
- Competitive intelligence — Track what ads competitors are running on TikTok
- Dropshipping research — Find products being advertised by EU/EEA sellers
- Creative benchmarking — Collect ad copy, video thumbnails, and campaign formats across industries
- Agency reporting — Build competitor ad reports for EU/EEA clients
- Market trend analysis — Track advertising activity by brand, region, or time period
- Advertiser profiling — Map the ad portfolios of specific brands
- Media buy planning — Understand how competitors target audiences in specific EU countries
- Academic research — Analyze ad targeting transparency and DSA compliance
Input
| Parameter | Default | Description |
|---|---|---|
searchQuery | — | Keyword to search. Brand names work best. |
advertiserName | — | Advertiser keyword. TikTok treats this as fuzzy — results may include similar names. |
region | "all" | EU/EEA country code (DE, FR, GB, etc.) or "all" |
startDate | — | Only include ads first shown after this date (YYYY-MM-DD) |
endDate | — | Only include ads last shown before this date (YYYY-MM-DD) |
maxResults | 10 | Maximum ads to return (~12 per query from TikTok's API) |
fetchDetails | true | Fetch reach breakdowns, targeting data, and demographics per ad |
Provide at least searchQuery or advertiserName.
Output example
{"adId": "1820859151010817","status": "active","firstShownDate": "2026-01-15","lastShownDate": "2026-02-20","advertiserName": "Nike","advertiserBusinessId": "6891503886842987266","paidBy": "Nike Inc.","creativeType": "video","videoUrl": "https://library.tiktok.com/api/v1/ad/video/...","thumbnailUrl": "https://p16-sign.tiktokcdn.com/...","adCopy": "Just Do It. New Air Max 2026 available now.","estimatedAudience": "10M-50M","reachByLocation": [{ "region": "DE", "impressions": "150000" },{ "region": "FR", "impressions": "120000" }],"targetingByAge": [{ "region": "DE", "age18to24": 35, "age25to34": 40 }],"detailUrl": "https://library.tiktok.com/ad/detail/1820859151010817","scrapedAt": "2026-02-22T14:30:00Z"}
Tips
- Use brand names: Queries like "Nike", "Netflix", or "Spotify" return reliable results. Generic terms like "shoes" may return 0 results.
- Advertiser search is fuzzy:
advertiserNamematches across advertiser names — expect some unrelated results when names overlap. - Result cap: TikTok's Ad Library returns ~12 ads per search. For more coverage, run multiple searches with different keywords or regions.
- Region + keyword: Combining a specific region with a brand name typically gives the most precise results.
FAQ
Why is data limited to EU/EEA countries? The TikTok Ad Library exists because of the EU Digital Services Act (DSA), which requires TikTok to publish ad data for EU/EEA users. All TikTok Ad Library tools have the same scope — there is no global equivalent.
What regions are supported?
All EU/EEA member states plus GB, CH, TR, IS, LI, and NO. Use "all" to search across all regions.
Why does advertiser search return unrelated results?
TikTok's API treats advertiserName as a keyword match, not a strict lookup. For precision, combine with a date range or region filter.
Why is the impressions field always 0?
TikTok's API does not expose raw impression counts. Use estimatedAudience and reachByLocation for reach data instead.
Why am I getting fewer results than my maxResults setting?
TikTok's Ad Library API returns a single page of results per query (~12 ads). A higher maxResults value will still return up to ~12 if that's all TikTok provides for your query.
Also available as MCP Server
Connect TikTok Ad Library data to your AI agent with the TikTok Ads MCP Server — 3 tools for search, ad details, and advertiser lookup.