TikTok Top Ads Scraper & Creative Analyzer avatar

TikTok Top Ads Scraper & Creative Analyzer

Pricing

from $0.60 / 1,000 results

Go to Apify Store
TikTok Top Ads Scraper & Creative Analyzer

TikTok Top Ads Scraper & Creative Analyzer

Find high-performing public TikTok ads in Creative Center. Search ranked ads, browse TikTok's Spotlight picks, or analyze known ads by URL or ID. Export videos and engagement metrics, then optionally add details, per-second performance, benchmarks, and similar creatives.

Pricing

from $0.60 / 1,000 results

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Discover winning TikTok creatives, inspect their performance shape, and move from inspiration to a reusable creative dataset.

Top Ads becomes useful when ranking, creative detail, and video analysis live in one workflow. I combined those steps here so a discovery run can stay lightweight while a focused analysis run can go much deeper.

Choose discovery, Spotlight, or analysis

Ranked mode explores creatives by market and performance signal. Spotlight mode follows TikTok's curated selection. Analyze mode starts from known material IDs or a copied Top Ad URL and can branch one hop into related creatives.

Discover ranked creatives

Rank Top Ads by market, period, performance signal, industry, objective, format, language, or keyword.

FieldTypeRequiredDescription
scraperTypestringYesChoose Ranked to search high-performing ads with filters, Spotlight to browse TikTok's curated examples, or Analyze to inspect ads you already know by URL or material ID.
country_codesarrayNoMarkets to search in Ranked mode and to use when finding similar creatives in Analyze mode. Spotlight ignores this field.
periodstringNoIn Ranked mode, compare ads shown during the last 7, 30, or 180 days.
top_ads_sortstringNoIn Ranked mode, order ads by TikTok's recommendations or by reach, click-through rate, video-view rate, conversion rate, or likes.
industry_idsstringNoOptional comma-separated Creative Center industry IDs for Ranked mode. The easiest way to use these is to paste a filtered Top Ads dashboard URL instead.
objective_idsstringNoOptional comma-separated campaign-objective IDs for Ranked mode, such as 1 for Traffic or 3 for Conversions. A filtered dashboard URL can supply them.
ad_formatstringNoIn Ranked mode, return Spark Ads, non-Spark Ads, or both when left empty.
likes_percentilestringNoIn Ranked mode, keep one likes-ranking group. Top 1–20% contains the most-liked ads.
ad_languagestringNoOptional language spoken or written in ranked ads, such as en, fr, or de. This filters creatives; it does not change the Actor interface language.
keywordstringNoBrand, product, or topic to search in Ranked mode. Spotlight and Analyze modes ignore it.
maxItemsintegerNoMaximum number of primary ads to save. Set 0 to continue until no more pages remain.

Browse Spotlight

Collect TikTok Creative Center's curated Spotlight creatives.

FieldTypeRequiredDescription
scraperTypestringYesChoose Ranked to search high-performing ads with filters, Spotlight to browse TikTok's curated examples, or Analyze to inspect ads you already know by URL or material ID.
startUrlstringNoOptional shortcut: paste a public Creative Center Top Ads dashboard, Top Ad detail, or Spotlight URL. URL values select the matching workflow and explicit fields override matching URL filters.
maxItemsintegerNoMaximum number of primary ads to save. Set 0 to continue until no more pages remain.

Analyze known creatives

Use material IDs or a Top Ad URL, then optionally add timelines, benchmarks, and one-hop related creatives.

FieldTypeRequiredDescription
scraperTypestringYesChoose Ranked to search high-performing ads with filters, Spotlight to browse TikTok's curated examples, or Analyze to inspect ads you already know by URL or material ID.
material_idsarrayNoAds to inspect in Analyze mode. Enter the numeric ID shown in a Creative Center Top Ad URL after /topads/, or paste the full URL above instead.
startUrlstringNoOptional shortcut: paste a public Creative Center Top Ads dashboard, Top Ad detail, or Spotlight URL. URL values select the matching workflow and explicit fields override matching URL filters.
includeVideoTimelinebooleanNoFor every eligible video, fetch how the selected metric changes second by second and identify highlighted moments. Each successful timeline request has an enrichment charge.
timelineMetricstringNoChoose the signal plotted across the video: click-through rate (CTR), conversion rate (CVR), clicks, conversions, or viewer retention.
includePercentilebooleanNoCompare every eligible ad with other Top Ads for the selected metric and period. Each successful benchmark request has an enrichment charge.
percentileMetricstringNoChoose the signal used to compare this ad with other Top Ads: CTR, CVR, clicks, conversions, or viewer retention.
percentilePeriodstringNoChoose whether the benchmark compares performance from the last 7, 30, or 180 days.
includeRelatedAdsbooleanNoOnly in Analyze mode: save similar Top Ads for each ad you inspect. The Actor performs one recommendation request per input ad and does not recursively expand the recommendations.
maxRelatedItemsintegerNoMaximum number of similar ads to save for each input ad in Analyze mode.

Example CTR-ranked scan

{
"scraperType": "topRanked",
"country_codes": [
"US"
],
"period": "30",
"top_ads_sort": "ctr",
"maxItems": 20,
"enrichTopAdDetails": false
}

Creative fields plus optional performance depth

Every result identifies the material, brand, caption, market, engagement, video, and destination when available. Detail, per-second timeline, percentile, and related-creative options are explicit so the dataset reflects exactly what the run requested.

πŸ“¦ Creative identity

FieldTypeDescription
material_idstringUnique Creative Center Top Ad material ID.
brand_namestringBrand name reported by Creative Center.
ad_titlestringTop Ad caption or title.
countriesarrayCountries associated with the Top Ad.
creative_center_urlstringPublic Creative Center page for the material.

πŸ“Š Performance

FieldTypeDescription
likesnumberLikes reported for the Top Ad.
commentsnumberComments reported for the Top Ad.
sharesnumberShares reported for the Top Ad.
ctrnumberCTR value reported by Creative Center.
budget_levelnumberCreative Center budget bucket.

🎬 Video and destination

FieldTypeDescription
video_urlstringHighest-resolution video URL exposed for the Top Ad.
cover_urlstringTop Ad video cover image.
video_durationnumberTop Ad video duration in seconds.
landing_pagestringLanding page associated with the Top Ad.

πŸ”¬ Analysis

FieldTypeDescription
discovery_modestringWorkflow that discovered the Top Ad.
related_to_material_idstringSeed material ID for a related creative.
performance_timelineobjectPer-second performance analysis and highlighted moments.
percentile_benchmarkobjectSelected metric percentile benchmark.
detailsobjectFull detail payload, present only when the workflow fetches it.

Shortened creative record

{
"material_id": "7182310470102122497",
"brand_name": "Example Brand",
"ad_title": "See why this creative performs",
"countries": [
"US"
],
"discovery_mode": "ranked",
"likes": 33506,
"ctr": 0.19
}

A useful creative-analysis sequence

  • Rank a market with enrichment disabled.
  • Shortlist material IDs based on the metric relevant to the campaign.
  • Analyze the shortlist with video timeline and percentile options.
  • Use related creatives to inspect one nearby cluster without uncontrolled crawling.

Pay for results, then only the analysis you enable

This Actor uses Apify pay-per-event pricing. Dataset results are the primary charge. Optional enrichment is charged only after the requested extra data is returned successfully; disabled enrichments make no add-on calls.

Apify's free credits may cover small validation runs within the free usage allowance shown on the Actor pricing tab.

Start with a low Max results value and leave enrichment off until the discovery query returns the creatives you want.

Public Creative Center data and responsible use

This Actor collects public advertising transparency and Creative Center data. It does not access private TikTok accounts or private user data. You are responsible for complying with applicable privacy laws, advertising rules, TikTok terms, and the rights of people or organizations represented in your results. Consult a qualified lawyer if you are unsure.

Run from code

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("thenetaji/tiktok-top-ads-scraper").call(run_input={
"scraperType": "topRanked",
"country_codes": [
"US"
],
"period": "30",
"top_ads_sort": "ctr",
"maxItems": 20,
"enrichTopAdDetails": false
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });
const run = await client.actor("thenetaji/tiktok-top-ads-scraper").call({
"scraperType": "topRanked",
"country_codes": [
"US"
],
"period": "30",
"top_ads_sort": "ctr",
"maxItems": 20,
"enrichTopAdDetails": false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Pair creative and transparency research

  • TikTok Ads Library Scraper β€” Find public TikTok ads from brands and competitors. Search by keyword or advertiser, choose a country and date range, and export ad text, delivery dates, audience estimates, impressions, and creative URLs. Optionally add targeting details or an advertiser activity report.
  • Facebook Ads Library Scrape β€” Scrape public Facebook and Instagram ads from Meta Ad Library: search by keyword or Ad Library URL, browse every ad from a known advertiser Page, or find a Page's ID by brand name. Filter by country, status, category, format, platform, and date, and optionally enrich each ad with full details.

Ask me about a run

Use the Issues tab on the Actor page to report a failing public URL, missing field, or workflow request. Include the run ID and a redacted example input.