Tiktok Ads avatar

Tiktok Ads

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Tiktok Ads

Tiktok Ads

Extract TikTok ads by keyword, advertiser, or ID. Get creatives, CTR, targeting & reach data. Export to JSON/CSV/Excel. No login required.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

DataFusionX

DataFusionX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

TikTok Ads Scraper — Ad Library Data Extractor (Fast & No-Code)

Extract TikTok ads by keyword, advertiser, region, and date range. Get video URLs, cover images, audience size, targeting data, and campaign details — exported to JSON, CSV, or Excel. No login required. No TikTok API approval needed.

Apify Actor TikTok Ads Library Maintained by Lead Technical Consultant


What Is This Actor? (Quick Answer)

The TikTok Ads Scraper extracts structured data from the TikTok Ad Library. You provide a keyword, advertiser name, region, and date range — the actor returns a complete dataset of matching ads including video/image creatives, audience size estimates, impression data, ad status, and (optionally) full targeting intelligence like age groups, genders, and geographic reach. Output is available as JSON, CSV, Excel, or via the Apify API.


What Data Does It Extract?

Every ad record returned by this actor contains the following fields:

FieldTypeDescription
ad_idStringUnique TikTok Ad Library identifier
advertiser_nameStringName of the brand or business running the ad
statusStringAd audit status: active, removed, or rejected
sor_statusStringSecondary review status from TikTok's moderation system
is_activeBooleantrue if both audit and sor_status are active
creative_typeStringsingle_video or image_carousel
ad_formatStringTikTok ad format type code
video_urlsArrayDirect CDN URLs for video creatives
image_urlsArrayDirect CDN URLs for image creatives (carousel ads)
cover_imagesArrayThumbnail/cover image CDN URLs
first_shown_dateISO 8601Date the ad first ran on TikTok
last_shown_dateISO 8601Most recent date the ad was served
estimated_audienceStringTikTok's estimated reach: e.g. 0-1K, 1K-10K, 100K-1M
impressionIntegerImpression count (where disclosed)
spentStringAd spend range (where disclosed by TikTok)
rejection_infoStringPipe-separated rejection reasons (if ad was rejected)

Additional Fields (when resolveAdDetails: true)

FieldTypeDescription
adv_biz_idsStringRegistered business IDs of the advertiser
registry_locationStringCountry where the business is registered
sponsorString"Paid for by" disclosure label
tt_userStringLinked TikTok account handle
target_regionsArrayCountries the ad was targeted to
target_impressions_by_regionObjectImpression share per country { "US": "45%" }
target_age_groupsArrayAge demographics: e.g. ["18-24", "25-34"]
target_gendersArrayGender targeting: ["male"], ["female"], or both
target_audience_sizeStringEstimated target audience size, e.g. 5.2M-6.4M
has_custom_audienceBooleanWhether custom or lookalike audience was used
interest_targetingStringInterest categories used for targeting
video_interactionsStringVideo engagement targeting parameters
creator_interactionsStringCreator engagement targeting parameters

Sample Output

Below is a real sample from a live scrape of the TikTok Ad Library:

{
"ad_id": "1863408574079313",
"advertiser_name": "kuranikerimden",
"status": "active",
"sor_status": "active",
"is_active": true,
"creative_type": "single_video",
"ad_format": "2",
"video_urls": [
"https://library.tiktok.com/api/v1/cdn/1777100680/video/..."
],
"image_urls": [],
"cover_images": [
"https://p16-sign-sg.tiktokcdn.com/tos-alisg-p-0037/..."
],
"first_shown_date": "2026-04-25T02:44:20Z",
"last_shown_date": "2026-04-25T02:44:20Z",
"estimated_audience": "-",
"impression": 0,
"spent": null,
"rejection_info": ""
}

Key Features

  • No TikTok account or API approval required — works entirely via the public TikTok Ad Library
  • Global coverage — scrape ads from 47+ countries or use region: "all" for worldwide results
  • Keyword + advertiser search — filter by brand name (e.g. shopify), domain, or keyword
  • Date range filtering — extract ads shown between any startDate and endDate
  • Flexible sort order — sort by last_shown_date, create_time, or impressions
  • Two scrape modes — fast search-results mode or enriched full-detail mode with targeting data
  • Creative URL extraction — get direct CDN video and thumbnail URLs for every ad
  • Pagination handled automatically — fetch up to 100,000 ads in a single run
  • Export to JSON, CSV, Excel, or XML — via Apify dataset or API
  • Residential proxy support — built-in Apify proxy integration for reliable, unblocked scraping
  • No-code UI — configure all inputs visually in the Apify console, no programming needed
  • Maintained by a Lead Technical Consultant — actively updated and production-grade

How to Use This Actor (Step-by-Step)

Step 1 — Open the Actor

Go to apify.com/devil_port369-owner and open the TikTok Ads Scraper actor. Click Try for free.

Step 2 — Configure Your Input

Fill in the input form in the Apify console, or paste a JSON config directly:

{
"query": "shopify",
"region": "all",
"startDate": "2026-01-01",
"endDate": "2026-04-25",
"order": "create_time,desc",
"limit": 1000,
"resolveAdDetails": false
}
Input FieldRequiredDescription
query✅ YesKeyword or brand name to search (e.g. "nike", "shopify")
regionNoCountry code or "all" for global (default: "all")
startDate✅ YesAds shown on or after this date (YYYY-MM-DD)
endDate✅ YesAds shown on or before this date (YYYY-MM-DD)
orderNoSort order (default: "last_shown_date,desc")
limitNoMax ads to scrape, min 12 (default: 50)
resolveAdDetailsNoFetch full targeting data per ad (slower, default: false)
proxyConfigurationNoProxy settings (Apify residential recommended)

Step 3 — Run the Actor

Click Start. The actor will begin scraping the TikTok Ad Library and stream results directly into your Apify dataset in real time.

Step 4 — Export Your Data

When the run completes, go to the Dataset tab and export to:

  • JSON — for developers and API integrations
  • CSV / Excel — for analysts and marketing teams
  • XML — for enterprise pipelines
  • Apify API — query results programmatically via REST

Step 5 — Schedule or Automate (Optional)

Use Apify's built-in Scheduler to run this actor daily, weekly, or on any cron schedule. Pipe results to Google Sheets, Slack, Airtable, or any webhook via Apify's native integrations.


Input Schema Reference

Sort Order Options

ValueDescription
last_shown_date,descMost recently active ads first
last_shown_date,ascOldest last-shown ads first
create_time,descNewest created ads first
create_time,ascOldest created ads first
impressions,ascLowest impression count first
impressions,descHighest impression count first

Supported Regions (47 Countries)

all · US · GB · AU · CA · IN · BR · MX · JP · KR · DE · FR · IT · ES · NL · PL · SE · NO · DK · FI · AT · BE · BG · CY · CZ · EE · GR · HR · HU · IE · LT · LU · LV · MT · PT · RO · SI · SK · CH · ID · TH · PH · VN · SG · MY · ZA · AE · SA


Use Cases

🕵️ Competitor Ad Intelligence

Monitor what your competitors are running on TikTok. Search by brand name, filter by region, and see exactly which creatives they're pushing — video URLs included.

📊 Market Research & Trend Analysis

Identify which product categories, industries, and advertisers are most active on TikTok Ads in any market. Track ad volume trends over time using date range filtering.

🎯 Ad Creative Inspiration

Download video and image URLs from top-performing ads in your niche. Use as reference material for your own TikTok ad creative briefs.

📋 DSA / EU Transparency Compliance Research

Access Ad Library data required for Digital Services Act (DSA) compliance research. Filter by EU/EEA country codes and retrieve sponsor and registry information.

🤖 AI & LLM Training Data

Build advertising datasets for fine-tuning models on ad copy, CTAs, creative formats, and campaign patterns across industries.

📈 Agency Client Reporting

Automate weekly competitor ad monitoring for clients. Schedule the actor, pipe results to Google Sheets, and build live dashboards.

🔬 Academic & Journalism Research

Investigate advertising patterns, political ad spending, or industry-specific ad activity on TikTok using structured, exportable data.


Fast Mode vs. Enriched Mode

Fast Mode (resolveAdDetails: false)Enriched Mode (resolveAdDetails: true)
Speed⚡ Very fast🐢 Slower (1 extra request per ad)
DataCore ad fields + creative URLsAll core fields + full targeting intelligence
CostLower compute unitsHigher compute units
Best forLarge-scale scraping, creative researchTargeting analysis, audience intelligence
RecordsAd schema (16 fields)AdDetails schema (29 fields)

Pricing & Performance

This actor is priced based on Apify compute units (CUs):

Scrape VolumeApprox. CUsEstimated Cost
100 ads (fast mode)~0.01 CU<$0.01
1,000 ads (fast mode)~0.05 CU~$0.01
10,000 ads (fast mode)~0.4 CU~$0.08
1,000 ads (enriched mode)~0.5 CU~$0.10

Costs depend on Apify subscription tier. See Apify pricing.


Frequently Asked Questions

Does this actor require a TikTok account or API key?

No. This actor scrapes the public TikTok Ad Library at library.tiktok.com. No TikTok account, login, or API approval is required.

How many ads can I scrape in one run?

Up to 100,000 ads per run. Set limit: 0 for no cap, or specify any number ≥ 12.

What is the difference between status and sor_status?

status is TikTok's primary moderation audit result. sor_status is a secondary review layer. An ad is truly active only when both are "active" — reflected in the is_active: true field.

Why are some impression values 0?

TikTok only discloses impression counts for ads that meet a minimum threshold. Ads with very low reach show impression: 0 by design.

Can I scrape a specific advertiser's ads?

Yes. Set query to the advertiser's TikTok name (e.g. "shoeodditorium") to see all their ads in the Ad Library.

Can I filter by ad format (video vs. image)?

The TikTok Ad Library API does not expose a server-side format filter. However, the creative_type field in every record tells you whether it's a single_video or image_carousel, which you can filter post-scrape.

Is this actor maintained and kept up to date?

Yes. This actor is actively maintained by Manoj Karki, a Lead Technical Consultant and Data Engineer with expertise in large-scale web scraping and data engineering. Updates are pushed whenever TikTok modifies their Ad Library API.

Can I use this on a schedule to monitor competitors daily?

Absolutely. Use Apify's built-in Scheduler to run this actor automatically. Combine with the Apify → Google Sheets integration to populate a live competitor dashboard.


Looking for more data extraction tools? Check out other actors maintained by the same Lead Technical Consultant:


Technical Details

  • Language: Python 3.12+
  • HTTP Engine: curl_cffi with Chrome TLS fingerprint impersonation
  • Proxy: Apify Residential Proxy (built-in) with scrape.do fallback
  • Source: TikTok Ad Library API (library.tiktok.com/api/v1)
  • Pagination: Automatic offset + search_id cursor pagination
  • Output: Apify Dataset (JSON/CSV/Excel/XML/RSS)
  • Memory: Streaming mode — no RAM spike on large scrapes

Changelog

v2.2.0 (2026-04-25)

  • Added resolveAdDetails toggle for fast vs. enriched mode
  • Added scrape.do proxy fallback when Apify proxy fails
  • Improved retry logic with exponential back-off
  • Dataset schema unified across both modes

v1.0.0 (Initial Release)

  • TikTok Ad Library search with keyword, region, and date filters
  • Core ad fields: video URLs, cover images, audience, status

Support & Feedback

Found a bug or have a feature request? Use the Issues tab on this actor's Apify page or reach out via the Apify community forum.

If this actor saved you time, please leave a ⭐ review on the Apify Store — it helps other users discover it.


Built and maintained by Manoj Karki — Lead Technical Consultant & Data Engineer. Expertise: Web Scraping · Data Engineering · API Integration · Automation