TikTok Ads Library Scraper
Pricing
from $0.60 / 1,000 results
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.
Pricing
from $0.60 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search TikTok's public Ads Library, follow copied public URLs, and turn competitor ad activity into structured records.
I built this Actor around the research workflow I actually want: discover ads first, then spend extra requests only on the results that deserve deeper inspection.
Search by market question or reuse a public URL
Use free text for category discovery, exact phrases for messaging checks, keywords for focused themes, or advertiser mode for a known brand. A copied Ads Library search, ad-detail, or report URL can supply the starting context directly.
Search public ads
Search by free text, exact phrase, keyword, or advertiser across a region and date range.
| Field | Type | Required | Description |
|---|---|---|---|
query | string | No | Brand, product, message, or phrase to find in TikTok's public Ads Library. |
search_type | string | No | Choose how TikTok should interpret the search query. Use Free text for broad research, Advertiser for one brand, Keyword for a topic, or Exact phrase for matching wording. |
advertiser_id | string | No | Optional numeric advertiser ID for Advertiser searches. Leave it empty to let the Actor find a unique exact match from the advertiser name in Search query. |
region | string | No | Two-letter country code that selects which public Ads Library market to search, such as GB, DE, FR, or ES. |
start_time | string | No | Oldest ad activity date to include. Leave empty to search the 30 days before End date. |
end_time | string | No | Newest ad activity date to include. Leave empty to use today. |
sort | string | No | Choose whether newest, oldest, or highest-impression ads appear first. |
maxItems | integer | No | Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages. |
Continue from a public URL
Paste a TikTok Ads Library search, ad detail, or advertiser report URL.
| Field | Type | Required | Description |
|---|---|---|---|
startUrl | string | No | Optional shortcut: paste a public Ads Library search, ad-detail, or advertiser-report URL. The Actor reads the search settings from the URL; values entered below override matching URL settings. |
maxItems | integer | No | Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages. |
Add research depth
Optionally add full ad details per result and one advertiser report for advertiser searches.
| Field | Type | Required | Description |
|---|---|---|---|
enrichAdDetails | boolean | No | For each saved ad, make one extra request for advertiser information, targeting, reach, campaign objective, and complete creative metadata. Each successful detail request has an enrichment charge. |
includeAdvertiserReport | boolean | No | Only for Advertiser searches: save one report with regional ad distribution and daily publication counts in the run output. A successful report request has an enrichment charge. |
Example market scan
{"query": "running shoes","search_type": "free_text","region": "GB","start_time": "2026-07-01","end_time": "2026-07-24","maxItems": 25,"enrichAdDetails": false}
One row per public ad
The base record keeps identity, delivery dates, audience signals, and creative URLs together. Optional detail enrichment adds advertiser, targeting, objective, and the full detail payload without changing the base workflow.
📦 Ad identity
| Field | Type | Description |
|---|---|---|
ad_id | string | Unique public Ads Library ad ID. |
advertiser_name | string | Advertiser name shown for an Ads Library result. |
advertiser_id | string | Advertiser business ID when detail enrichment supplies it. |
title | string | Ads Library creative title or caption. |
ad_detail_url | string | Public TikTok Ads Library detail URL. |
📊 Delivery
| Field | Type | Description |
|---|---|---|
region | string | Ads Library region used for the search. |
first_shown_at | string | First date the ad was shown. |
last_shown_at | string | Most recent date the ad was shown. |
estimated_audience | string | Estimated audience range reported by the Ads Library. |
impressions | number | Impression value reported for the ad. |
spend | string | Spend value reported for the ad when available. |
🎬 Creative
| Field | Type | Description |
|---|---|---|
video_urls | array | Direct video URLs exposed for the Ads Library creative. |
cover_image_urls | array | Video cover image URLs. |
image_urls | array | Image creative URLs. |
🔍 Optional detail
| Field | Type | Description |
|---|---|---|
advertising_objective | string | Advertising objective returned by detail enrichment. |
advertiser | object | Full advertiser object returned by optional detail enrichment. |
targeting | object | Targeting and reach information returned by optional detail enrichment. |
details | object | Full detail payload, present only when the workflow fetches it. |
Shortened result
{"ad_id": "1871426970960898","advertiser_name": "Example Brand","title": "Discover the new collection","region": "GB","first_shown_at": "2026-07-10T00:00:00.000Z","video_urls": ["https://example.com/ad.mp4"]}
Practical competitor-research loop
- Start broad with enrichment disabled.
- Save the strongest advertiser names and ad IDs.
- Re-run a narrow date window with details or an advertiser report enabled.
- Compare repeated runs to see which messages and creatives remain active.
Pricing follows saved ads and selected add-ons
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 advertising 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 ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")run = client.actor("thenetaji/tiktok-ads-library-scraper").call(run_input={"query": "running shoes","search_type": "free_text","region": "GB","start_time": "2026-07-01","end_time": "2026-07-24","maxItems": 25,"enrichAdDetails": 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-ads-library-scraper").call({"query": "running shoes","search_type": "free_text","region": "GB","start_time": "2026-07-01","end_time": "2026-07-24","maxItems": 25,"enrichAdDetails": false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Continue the research
- 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.
- 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.