TikTok Ads Scraper
Pricing
from $1.50 / 1,000 results
TikTok Ads Scraper
๐ธ๐ฅ THE MOST COMPLETE AND CHEAPEST TIKTOK ADS SCRAPER. ๐ฅ๐ธ Two modes: Ads Library (EU transparency, targeting, spend) + Top Ads (Creative Center, engagement metrics, 80+ countries). Search by keyword, advertiser, and industry. Extract videos, performance data, and creative assets.
Pricing
from $1.50 / 1,000 results
Rating
5.0
(2)
Developer
Data Xplorer
Maintained by CommunityActor stats
3
Bookmarked
214
Total users
81
Monthly active users
0.15 hours
Issues response
16 days ago
Last modified
Categories
Share
๐ TikTok Ads Scraper: Library + Top Ads
The most complete TikTok advertising intelligence tool on Apify. Two powerful modes in one Actor:
- ๐ Ads Library: EU transparency data from library.tiktok.com
- ๐ฏ Top Ads: Performance-ranked ads from TikTok Creative Center

๐ฏ Two Modes, One Actor
๐ Ads Library Mode (EU Transparency)
Access TikTok's official Ad Library for the European market. Get full transparency data: advertiser info, targeting, audience size, spend estimates, impressions, per-country reach with age ร gender breakdowns, advertiser profile, media assets, and more.
Best for: Compliance research, competitor monitoring in EU/EEA, advertiser-level analysis, spend & reach insights.
๐ฏ Top Ads Mode (Creative Center)
Access TikTok's Creative Center Top Ads, a curated ranking of the best-performing ads worldwide. Get engagement metrics (likes, CTR, budget level), video assets, and industry classification.
Best for: Creative inspiration, ad benchmarking, industry trend analysis, competitive intelligence.
๐ Key Features
| Feature | Ads Library | Top Ads |
|---|---|---|
| ๐ Global coverage | EU/EEA countries | 80+ countries |
| ๐ Keyword search | โ | โ |
| ๐ข Advertiser search | โ | - |
| ๐ Direct URL import | โ | - |
| โค๏ธ Engagement metrics (likes, CTR, budget) | - | โ |
| ๐ Impressions & audience estimates | โ (with details) | - |
| ๐บ๏ธ Per-country reach + age ร gender breakdown | โ (with details) | - |
| ๐ข Numbers parsed to integers (min/max) | โ | - |
| ๐ฐ Spend estimates | โ (with details) | - |
| ๐ฏ Targeting data (age, gender, region, languages, OSโฆ) | โ (with details) | - |
| ๐ค Advertiser profile + TikTok account | โ (with details) | Brand name |
| ๐ท๏ธ Industry & objective classification | - | โ |
| ๐ฌ Video URLs | Up to 1080p | 720p |
| โก Speed | ~2-5 ads/sec | ~20 ads/sec |
๐ก Tip: In Library mode, enable "Fetch Ad Details" to get impressions, spend, full targeting, advertiser profile, and the reliable per-country reach (with age ร gender breakdowns). Without it, scraping is faster but only returns basic ad info.
๐ข All numeric ranges are parsed. Fields like
Ad Audience,Ad Target Audience Sizeand every reach value are returned as an object{ "raw": "11.7M-14.2M", "min": 11700000, "max": 14200000 }โ keep the human-readable text inraw, and sort/filter/aggregate directly onmin/max.
๐ Ads Library Mode
Search Options
- ๐ค Keyword Search: Search ads by content keywords
- ๐ข Advertiser Name: Find all ads from a specific advertiser (optionally with Advertiser ID for precision)
- ๐ Direct URL: Paste any TikTok Ads Library URL and all parameters are auto-extracted
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | "library" | Set to "library" |
| region | string | "all" | Country code (FR, DE, GB, etc.) or "all" |
| startDate | string | "2025-01-01" | Start date (YYYY-MM-DD) |
| endDate | string | "" | End date (empty = today) |
| queryType | string | "2" | 1 = Keyword, 2 = Advertiser Name, url = Direct URL |
| query | string | "" | Search term, advertiser name, or full URL |
| advertiserBizId | string | "" | Optional advertiser business ID |
| maxAds | number | 20 | Maximum ads to collect |
| fetchDetails | boolean | true | Fetch targeting, advertiser profile, audience, spend, impressions, and per-country reach |
| detailConcurrency | number | 6 | Number of ad-detail requests fetched in parallel |
| proxyConfiguration | object | Apify Proxy | Proxy settings |
Input Example: Advertiser Name + ID
{"mode": "library","region": "FR","startDate": "2026-01-01","endDate": "2026-06-01","queryType": "2","query": "LEVI STRAUSS & CO.","advertiserBizId": "6886458055832109825","maxAds": 10,"fetchDetails": true}
Input Example: Keyword Search
{"mode": "library","region": "GB","startDate": "2025-01-01","queryType": "1","query": "football","maxAds": 20,"fetchDetails": true}
Input Example: Direct TikTok URL
{"mode": "library","queryType": "url","query": "https://library.tiktok.com/ads?region=FR&start_time=1777123937000&end_time=1779715937000&adv_name=LEVI%20STRAUSS%20%26%20CO.&adv_biz_ids=6886458055832109825&query_type=2&sort_type=last_shown_date,desc","maxAds": 10,"fetchDetails": true}
Output Example (Library, with fetchDetails)
{"AD ID": "1867625146670401","Advertiser Name": "COCA COLA HBC POLSKA SP Z O O","Ad Title": "Wygrywaj!","AD Preview": "https://p16-common-sign.tiktokcdn.com/...","Ad Dates": [{ "FirstShown": "2026-06-12", "FirstShownTimestamp": 1781222400 },{ "LastShown": "2026-06-14", "LastShownTimestamp": 1781395200 }],"Ad Audience": { "raw": "1M-10M", "min": 1000000, "max": 10000000 },"Ad Details": [{ "Estimated Audience": "1M-10M" },{ "Spent": "" },{ "Impression": "" },{ "Type": "2" },{ "Audit Status": "1" },{ "Advertising Objective": "Reach" },{ "Call To Action": "Learn more" },{ "External URL": "https://cokeurl.com/KuM89D?utm_source=tiktok" }],"Ad Media": ["Video 1: https://library.tiktok.com/api/v1/cdn/...","Image 1: https://p16-common-sign.tiktokcdn.com/..."],"Ad Targeting": {"regions": ["PL"],"age": ["18-24", "25-34", "35-44", "45-54", "55+"],"gender": ["female", "male", "unknown"],"os": ["ALL"],"languages": [],"high_spending_power": "No","audience": "No"},"Ad Reach": {"total_region": 1,"total_impressions": { "raw": "1M-10M", "min": 1000000, "max": 10000000 },"by_country": [{"region": "PL","impressions": { "raw": "1.5M", "min": 1500000, "max": 1500000 },"breakdowns": [{ "age": "18-24", "gender": "FEMALE", "impressions": { "raw": "252K", "min": 252000, "max": 252000 } },{ "age": "25-34", "gender": "FEMALE", "impressions": { "raw": "352K", "min": 352000, "max": 352000 } },{ "age": "25-34", "gender": "MALE", "impressions": { "raw": "273K", "min": 273000, "max": 273000 } }]}]},"Advertiser": {"name": "COCA COLA HBC POLSKA SP Z O O","adv_biz_ids": "6876461641299395330","registry_location": "United Kingdom","sponsor": "MEDIACOM UK LIMITED","tiktok_account": {"username": "cocacola","display_name": "Coca-Cola","follower_count": "4.2M","account_type": "BLUEV_BA","profile_web_link": "https://www.tiktok.com/share/user/..."}},"Ad Sponsor": "MEDIACOM UK LIMITED","Ad Target Audience Size": { "raw": "11.7M-14.2M", "min": 11700000, "max": 14200000 },"Ad Detail URL": "https://library.tiktok.com/ads/detail/?ad_id=1867625146670401"}
Library Metrics (with fetchDetails enabled)
โน๏ธ Numeric fields below are returned as
{ raw, min, max }:rawis the original text (e.g."1.5M"),min/maxare integers (equal for single values, distinct for ranges,nullwhen empty).
| Field | Description |
|---|---|
Ad Title | Title/headline (caption) of the ad creative |
Ad Audience | Estimated audience range as { raw, min, max } (e.g. "1M-10M") โ broad, less reliable |
Ad Reach | Reliable per-country reach: total regions, total impressions, and for each country the exact impressions plus a full age ร gender breakdown โ every impressions value is a { raw, min, max } object |
Ad Details | Spend, impressions, type, audit status, advertising objective, call to action, and external (landing) URL |
Ad Targeting | Regions, enabled age groups, gender, languages, cities, provinces, OS, high spending power, audience signals |
Advertiser | Advertiser profile: name, business IDs, registry location, sponsor, and linked TikTok account (username, followers, account type, profile link) |
Ad Sponsor | Name of the sponsoring entity |
Ad Target Audience Size | Total estimated target audience as { raw, min, max } (e.g. "11.7M-14.2M") |
Ad Media | Direct URLs to videos, cover images, and creatives |
๐ฏ Which reach number should I trust? Use
Ad Reach.by_country[].impressions.min(or.raw) โ it's the accurate "Reach by location" figure from TikTok's detail page. The top-levelAd Audience("Unique users seen") is only a broad estimate range.
๐ฏ Top Ads Mode
Filters
- ๐ Keyword: Search by brand, product, or topic
- ๐ Countries: Multi-select from 80+ countries
- ๐ท๏ธ Industries: 21 parent categories + 200+ sub-industries
- ๐ฏ Objectives: Traffic, Conversions, App Installs, Video Views, Reach, Lead Gen, Product Sales
- ๐ฃ๏ธ Language: Filter by ad language (17 languages)
- โค๏ธ Likes percentile: Top 1-20%, 21-40%, etc.
- ๐ Time period: Last 7 days, 30 days, or 6 months
- ๐ Sort by: Likes, Reach, CTR, CVR, 2s/6s view rates
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | - | Set to "top_ads" |
| topAdsKeyword | string | "" | Search keyword (leave empty to browse all) |
| topAdsCountryCode | array | [] | Country codes, e.g. ["FR", "DE"] |
| topAdsPeriod | string | "7" | "7", "30", or "180" days |
| topAdsOrderBy | string | "like" | Sort: like, impression, ctr, cvr, play_2s_rate, play_6s_rate |
| topAdsIndustry | array | [] | Industry IDs (parent or sub-industry) |
| topAdsObjective | array | [] | Objective IDs: 1=Traffic, 2=App, 3=Conversions, etc. |
| topAdsLanguage | string | "" | Language code (fr, en, de, etc.) |
| topAdsLikeRange | string | "" | Likes percentile: 1-5 |
| topAdsMaxItems | number | 100 | Maximum ads to collect (up to 500) |
Input Example: Top Ads in France (Education)
{"mode": "top_ads","topAdsCountryCode": ["FR"],"topAdsPeriod": "30","topAdsOrderBy": "like","topAdsIndustry": ["10000000000"],"topAdsLanguage": "fr","topAdsMaxItems": 50}
Input Example: Keyword Search
{"mode": "top_ads","topAdsKeyword": "netflix","topAdsCountryCode": ["FR", "US"],"topAdsPeriod": "30","topAdsOrderBy": "like","topAdsMaxItems": 20}
Input Example: Sub-industry Filter
{"mode": "top_ads","topAdsCountryCode": ["FR"],"topAdsPeriod": "30","topAdsIndustry": ["14103000000", "14104000000"],"topAdsObjective": ["3"],"topAdsMaxItems": 40}
Output Example (Top Ads)
{"id": "7636363707227226130","ad_title": "Des fiches prรชtes ร apprendre pour booster tes rรฉvisions CRPE","brand_name": "Not Mention","like": 585,"cost": 1,"cost_readable": "Medium","ctr": 0.14,"ctr_readable": "Top 14%","industry_key": "label_10101000000","industry": "Primary & Secondary Education & K-12","objective_key": "campaign_objective_conversion","objective": "Conversions","video_duration": 10.467,"video_cover": "https://p16-common-sign.tiktokcdn.com/...","video_url_720p": "https://v16m-default.tiktokcdn.com/...","video_width": 720,"video_height": 1280,"creative_center_url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?ad_id=7636363707227226130"}
Top Ads Metrics
| Field | Description |
|---|---|
like | Number of likes on the ad |
cost_readable | Budget level: Low, Medium, or High |
ctr_readable | CTR percentile ranking (e.g. "Top 14%" = outperforms 86% of ads) |
industry | Human-readable industry label (200+ categories) |
objective | Campaign objective: Traffic, Conversions, App Installs, etc. |
video_url_720p | Direct download URL for the ad video (720p) |
๐ก Use Cases & Ideas
๐ข For Marketing & Ad Agencies
- Creative swipe files: Build a library of top-performing TikTok ads in your client's industry. Filter by country, objective, and sub-industry to find exactly the right inspiration.
- Pitch preparation: Show clients what competitors are running and what's working best. Use budget and CTR data to benchmark performance.
- Ad spend monitoring: Track how much competitors invest across regions with Library mode's spend estimates.
๐๏ธ For E-Commerce & DTC Brands
- Competitor tracking: Monitor what ads your competitors are running in real-time across EU markets. Get notified when new campaigns launch.
- Creative inspiration: Find the highest-engagement ads in your product category (Skincare, Cosmetics, Fashion...) and study what makes them work.
- Market entry research: Before launching in a new country, analyze what ad formats, messages, and budgets work best in that market.
๐ For Data Analysts & Researchers
- Industry benchmarking: Collect hundreds of ads across industries to build performance benchmarks (CTR percentiles, budget tiers, engagement rates).
- Reach analysis: Use Library mode's per-country reach and age ร gender breakdowns (with integer
min/maxvalues) to map exactly who each campaign reached, market by market. - Trend detection: Run weekly scrapes to track which industries, objectives, and ad formats are gaining traction over time.
- Academic research: Study advertising patterns, targeting strategies, and political ad transparency across the EU.
๐ฏ For Media Buyers & Performance Marketers
- Winning ad formats: Sort by CTR or conversion rate to find the highest-performing creative formats in your niche.
- Budget intelligence: Understand whether top performers are Low, Medium, or High budget, and find opportunities where low-budget ads outperform.
- Targeting insights: Use Library mode's age, gender, regional targeting and per-country reach data to refine your own audience strategy.
๐ Integration Ideas
- Feed into Google Sheets or Airtable: Use Apify integrations to automatically push new ads into your creative tracking spreadsheet.
- Build a Slack alert: Get notified when a competitor launches a new ad or when a top-performing ad appears in your industry.
- Power a dashboard: Connect the output to Looker Studio, Tableau, or any BI tool for real-time ad intelligence dashboards.
- Train AI models: Use the video URLs and ad copy to train creative analysis models or generate ad variations.
๐ค Support & Resources
Found a bug or want to request a feature? Open an issue.
โค๏ธ Enjoying the scraper? Leave a review here