TikTok Ads Scraper — Creative Center Top Ads avatar

TikTok Ads Scraper — Creative Center Top Ads

Pricing

from $1.99 / 1,000 ads

Go to Apify Store
TikTok Ads Scraper — Creative Center Top Ads

TikTok Ads Scraper — Creative Center Top Ads

Scrape TikTok Creative Center top ads by country, industry, and objective. Export CTR, likes, video URL, landing page, and the countries where the ad ran. No TikTok login.

Pricing

from $1.99 / 1,000 ads

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

TikTok Ads Scraper

Public top ads from TikTok Creative Center: headline, CTR score, likes, video file, landing page, industry, and objective. No TikTok login.

This TikTok Ads Scraper reads the Creative Center top-ads board for one or more countries and returns the creatives TikTok ranks for that window. Use it for competitor creative research, landing-page collection, and a repeatable JSON export from Python, Node.js, cURL, or MCP.

TikTok top adsMeta Ad Library
TikTok Ads Scraper ◄── you are hereFacebook Ads Library Scraper

When to use it

Use this Actor when you want the ads TikTok surfaces as top performers in a country, industry, or objective, including the video URL and the landing page.

Skip it for organic TikTok posts, profiles, comments, or the EU commercial-content ads library. This Actor reads the Creative Center top-ads board only. For ads a brand is running on Facebook and Instagram, use Facebook Ads Library Scraper.

Key features

  • Country, 7/30/180-day window, and Creative Center sort (for you, likes, CTR, impressions)
  • Optional industry id, objective id, and ad language
  • CTR score, likes, comments, shares, and video duration
  • Landing page and the country list from the ad detail
  • Direct video URL, preferring 720p
  • About 20 ads per country; add countries to collect more, up to 200 in one run
  • JSON dataset for Python, Node.js, cURL, and MCP

Input

FieldRequiredDefaultWhat it does
countriesnoUSISO codes. Each country returns about 20 ads.
countrynoUSSingle country used when countries is empty.
periodno307, 30, or 180 days.
orderBynofor_youfor_you, like, click_show_rate, impression, play_2s_rate, play_6s_rate, or cost.
industrynoemptyIndustry id, for example 12000000000 (beauty) or 22000000000 (apparel).
objectivenoempty1 traffic, 2 app installs, 3 conversions.
adLanguagenoemptyLanguage code such as en, es, or de.
maxAdsno20Cap across all countries.
includeDetailsnotrueLanding page, comments, shares, and countries.
proxyConfigurationnoApify datacenterOn by default. One residential retry if the datacenter IP is rejected.
{
"countries": ["US", "GB"],
"period": "30",
"orderBy": "like",
"industry": "12000000000",
"maxAds": 40,
"includeDetails": true
}

Output

FieldMeaning
adIdCreative Center material id
adTitleHeadline or caption
brandNameBrand, when the board publishes one
ctrCreative Center CTR score
likesLikes on the card
commentsComments from the detail
sharesShares from the detail
industryIndustry name
objectiveCampaign objective
landingPageClick-through URL
countriesCountries where the ad ran
videoUrlDirect video file
coverUrlCover image
durationSecondsVideo length
countryCountry used for this search
periodDaysLookback window
{
"adId": "7686346996722745360",
"adTitle": "Discover the world of Emiriah perfumes.",
"brandName": "",
"ctr": 0.83,
"likes": 32,
"comments": 0,
"shares": 0,
"industry": "Perfumes",
"objective": "Traffic",
"landingPage": "https://www.emiriah.com?utm_source=tiktok",
"countries": ["AE", "IT", "MX", "US"],
"videoUrl": "https://v16m-default.tiktokcdn.com/example.mp4",
"country": "US",
"periodDays": 30,
"orderBy": "for_you"
}

Use cases

  • Export the current US top ads in beauty and keep the landing pages for a creative review.
  • Compare the same 30-day window in US and GB and sort the dataset by ctr.
  • Schedule a country plus industry and diff adId against the previous run to see which creatives stayed on the board.
  • Pull video URLs for ads sorted by likes when you need examples of a format, not a keyword dump.

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/tiktok-ads-scraper').call({
countries: ['US'],
period: 30,
orderBy: 'like',
maxAds: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].adTitle, items[0].ctr, items[0].landingPage);

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_APIFY_TOKEN")
run = client.actor("crawloop/tiktok-ads-scraper").call(run_input={
"countries": ["US"],
"period": "30",
"maxAds": 20,
"includeDetails": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["adTitle"], item["likes"], item["landingPage"])

cURL

curl "https://api.apify.com/v2/acts/crawloop~tiktok-ads-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"countries":["US"],"period":30,"maxAds":20}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/tiktok-ads-scraper.

Example prompts:

  • "Run TikTok Ads Scraper for US top ads over the last 30 days and return ad title, CTR, likes, and landing page."
  • "Scrape TikTok top ads in GB sorted by likes, industry 12000000000, and list the video URLs."
  • "Get TikTok Creative Center ads for DE with objective 3 and summarize which landing pages repeat."
  • "Chain TikTok Ads Scraper then Facebook Ads Library Scraper for the same brand and compare TikTok top creatives with active Meta ads."

Suite next step

After the TikTok top-ads board, run Facebook Ads Library Scraper on the same brand keyword or Page ID for active Facebook and Instagram creatives, days running, and landing URLs.

FAQ

Does this need a TikTok login?
No. It reads the public Creative Center top-ads board while logged out.

Why do I only get about 20 ads per country?
The anonymous top-ads list returns one page of about 20 creatives for a country and filter. Add countries, or set an industry or objective, to collect a different slice. maxAds stops the run; it does not unlock a longer page.

Why is brandName often empty?
Creative Center leaves the brand blank on many cards. The headline, video, and landing page are still filled when the detail request succeeds.

What is ctr?
It is the CTR score Creative Center publishes on the card, not a percentage you calculate from impressions.

The run failed before saving ads.
The datacenter IP was rejected. The Actor retries once on residential. If that also fails, set the proxy group to residential and rerun.