TikTok Ads Scraper — Creative Center Top Ads
Pricing
from $1.99 / 1,000 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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 ads | Meta Ad Library |
|---|---|
| TikTok Ads Scraper ◄── you are here | Facebook 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
| Field | Required | Default | What it does |
|---|---|---|---|
countries | no | US | ISO codes. Each country returns about 20 ads. |
country | no | US | Single country used when countries is empty. |
period | no | 30 | 7, 30, or 180 days. |
orderBy | no | for_you | for_you, like, click_show_rate, impression, play_2s_rate, play_6s_rate, or cost. |
industry | no | empty | Industry id, for example 12000000000 (beauty) or 22000000000 (apparel). |
objective | no | empty | 1 traffic, 2 app installs, 3 conversions. |
adLanguage | no | empty | Language code such as en, es, or de. |
maxAds | no | 20 | Cap across all countries. |
includeDetails | no | true | Landing page, comments, shares, and countries. |
proxyConfiguration | no | Apify datacenter | On 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
| Field | Meaning |
|---|---|
adId | Creative Center material id |
adTitle | Headline or caption |
brandName | Brand, when the board publishes one |
ctr | Creative Center CTR score |
likes | Likes on the card |
comments | Comments from the detail |
shares | Shares from the detail |
industry | Industry name |
objective | Campaign objective |
landingPage | Click-through URL |
countries | Countries where the ad ran |
videoUrl | Direct video file |
coverUrl | Cover image |
durationSeconds | Video length |
country | Country used for this search |
periodDays | Lookback 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
adIdagainst 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 ApifyClientclient = 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.
Related Actors
- TikTok Ads Scraper ◄── you are here
- Facebook Ads Library Scraper — Meta Ad Library: copy, CTA, days running, variant count
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.