TikTok Ads Scraper avatar

TikTok Ads Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
TikTok Ads Scraper

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

Data Xplorer

Maintained by Community

Actor stats

4

Bookmarked

293

Total users

79

Monthly active users

0.15 hours

Issues response

a month ago

Last modified

Share

🔍 TikTok Ads Scraper: Library + Top Ads

The most complete TikTok advertising intelligence tool on Apify. Two powerful modes in one Actor:

TikTok Ads Scraper


🎯 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

FeatureAds LibraryTop Ads
🌍 Global coverageEU/EEA countries80+ 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 URLsUp to 1080p720p
⚡ 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 Size and every reach value are returned as an object { "raw": "11.7M-14.2M", "min": 11700000, "max": 14200000 } — keep the human-readable text in raw, and sort/filter/aggregate directly on min / max.


📚 Ads Library Mode

Search Options

  1. 🔤 Keyword Search: Search ads by content keywords
  2. 🏢 Advertiser Name: Find all ads from a specific advertiser (optionally with Advertiser ID for precision)
  3. 🌐 Direct URL: Paste any TikTok Ads Library URL and all parameters are auto-extracted

Input Parameters

ParameterTypeDefaultDescription
modestring"library"Set to "library"
regionstring"all"Country code (FR, DE, GB, etc.) or "all"
startDatestring"2025-01-01"Start date (YYYY-MM-DD)
endDatestring""End date (empty = today)
queryTypestring"2"1 = Keyword, 2 = Advertiser Name, url = Direct URL
querystring""Search term, advertiser name, or full URL
advertiserBizIdstring""Optional advertiser business ID
maxAdsnumber20Maximum ads to collect
fetchDetailsbooleantrueFetch targeting, advertiser profile, audience, spend, impressions, and per-country reach
detailConcurrencynumber6Number of ad-detail requests fetched in parallel
proxyConfigurationobjectApify ProxyProxy 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
}
{
"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 }: raw is the original text (e.g. "1.5M"), min/max are integers (equal for single values, distinct for ranges, null when empty).

FieldDescription
Ad TitleTitle/headline (caption) of the ad creative
Ad AudienceEstimated audience range as { raw, min, max } (e.g. "1M-10M") — broad, less reliable
Ad ReachReliable 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 DetailsSpend, impressions, type, audit status, advertising objective, call to action, and external (landing) URL
Ad TargetingRegions, enabled age groups, gender, languages, cities, provinces, OS, high spending power, audience signals
AdvertiserAdvertiser profile: name, business IDs, registry location, sponsor, and linked TikTok account (username, followers, account type, profile link)
Ad SponsorName of the sponsoring entity
Ad Target Audience SizeTotal estimated target audience as { raw, min, max } (e.g. "11.7M-14.2M")
Ad MediaDirect 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-level Ad 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

ParameterTypeDefaultDescription
modestring-Set to "top_ads"
topAdsKeywordstring""Search keyword (leave empty to browse all)
topAdsCountryCodearray[]Country codes, e.g. ["FR", "DE"]
topAdsPeriodstring"7""7", "30", or "180" days
topAdsOrderBystring"like"Sort: like, impression, ctr, cvr, play_2s_rate, play_6s_rate
topAdsIndustryarray[]Industry IDs (parent or sub-industry)
topAdsObjectivearray[]Objective IDs: 1=Traffic, 2=App, 3=Conversions, etc.
topAdsLanguagestring""Language code (fr, en, de, etc.)
topAdsLikeRangestring""Likes percentile: 1-5
topAdsMaxItemsnumber100Maximum 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
}
{
"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

FieldDescription
likeNumber of likes on the ad
cost_readableBudget level: Low, Medium, or High
ctr_readableCTR percentile ranking (e.g. "Top 14%" = outperforms 86% of ads)
industryHuman-readable industry label (200+ categories)
objectiveCampaign objective: Traffic, Conversions, App Installs, etc.
video_url_720pDirect 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/max values) 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