TikTok Commercial Content Library Ads Scraper avatar

TikTok Commercial Content Library Ads Scraper

Pricing

from $0.75 / 1,000 tiktok ad results

Go to Apify Store
TikTok Commercial Content Library Ads Scraper

TikTok Commercial Content Library Ads Scraper

Scrape public TikTok ads from the Commercial Content Library without login or an API key. Search by country, keyword, advertiser, dates, ad type, status, reach and audience, then extract advertiser, targeting, captions, CTAs, landing pages and media URLs.

Pricing

from $0.75 / 1,000 tiktok ad results

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

12 days ago

Last modified

Share

Search the public TikTok Commercial Content Library and export structured advertising records without a TikTok login or official API key. Filter by market, keyword, advertiser, date, status, format, audience, and reach.

What this Actor does

The Actor queries TikTok's public advertising library, paginates matching results, removes duplicate ads, and optionally opens individual ad details. Each successful Dataset item includes the advertiser, campaign dates, reach band, caption, destination and available creative media. Optional diagnostic rows explain searches that returned no usable ads or could not be completed.

Use cases

  • Monitor competitor messaging, creatives, offers, and landing pages.
  • Research active campaigns by country, advertiser, or keyword.
  • Compare public audience and reach information across advertisements.
  • Export advertising evidence for market research and reporting.

How to use

  1. Select one or more countries in regions.
  2. Add search terms, advertiser business IDs, or leave both empty for a broad market search.
  3. Choose the date range and any audience or status filters.
  4. Set maxAds and maxPages, then start the Actor.
  5. Open the Dataset to export the resulting ad records.

Input

regions is required. searchTerms and advertiserBusinessIds can be combined. includeDetails requests additional public detail data but can make the run slower. maxAds caps unique ads across the run, while maxPages limits pagination for each search combination. Date values use YYYY-MM-DD.

This exact input produced the complete output below:

{
"regions": [
"ES"
],
"searchTerms": [
"nike"
],
"advertiserBusinessIds": [],
"queryType": 1,
"startDate": "2026-08-01",
"endDate": "2026-08-19",
"sortType": "create_time,desc",
"adType": 0,
"adStatus": 1,
"ageRanges": [
"all"
],
"reachRanges": [
"all"
],
"gender": "ALL",
"locale": "auto",
"maxAds": 3,
"maxPages": 1,
"includeDetails": false,
"saveErrors": true
}

Output

Successful rows have recordType: "ad". Media URLs can be temporary, and fields unavailable in the public library remain null. When saveErrors is enabled, diagnostic rows use a different recordType and are not successful ad results. A run-level SUMMARY record is stored in the default Key-value store.

This is the complete first Dataset item from a real successful run:

{
"success": true,
"recordType": "ad",
"source": "tiktok_commercial_content_library",
"retrievedAt": "2026-08-19T14:24:10.860989Z",
"adId": "1873891968776225",
"region": "ES",
"searchTerm": "nike",
"searchPage": 1,
"searchUrl": "https://library.tiktok.com/ads?region=ES&start_time=1785542400000&end_time=1787183999999&query_type=1&sort_type=create_time%2Cdesc&ad_type=0&ad_status=1&ages=all&ad_reach=all&gender=ALL&adv_name=nike",
"detailUrl": "https://library.tiktok.com/ads/detail/?ad_id=1873891968776225&region=ES",
"detailFetched": false,
"advertiserName": "footzoneshop",
"advertiserBusinessId": null,
"paidBy": null,
"firstShownAt": "2026-08-18T00:00:00Z",
"lastShownAt": "2026-08-18T00:00:00Z",
"objective": null,
"uniqueUsersReached": "0-1K",
"targeting": null,
"caption": "Nike Football Boots😍Link in Bio🔗 #nike #footballboots #soccershoes #cleats #fyp",
"callToAction": null,
"landingPage": null,
"tiktokProfile": null,
"media": {
"imageUrl": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/o0yII7ukEFAiYCEAIjrDIeE0IeRZVkVEULEfDJ~tplv-noop.image?dr=18692&refresh_token=a3a2d86d&x-expires=1787171061&x-signature=npjt7J4MPocbgUSmavDugOYFX%2B0%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=0c75dd76&idc=sg1&VideoID=v24044gl0000da245fnog65i8gg9kui0",
"videoUrl": "https://library.tiktok.com/api/v1/cdn/1787149450/video/aHR0cHM6Ly92NzcudGlrdG9rY2RuLmNvbS9kNjQzYjAxMjZkNjJiODVlN2NkNjY2ZDFhMzU0MGVlOC82YTg2MTBmNS92aWRlby90b3Mvbm8xYS90b3Mtbm8xYS12ZS0wMDY4YzAwMS1uby9vQUVKNkxFSUlSb2dBNUNwSVJlVlFJOUFqeEltVkdJSkxBZm9EZi8=/dc6f536d-2e09-445b-9779-e5693f1a640e?a=475769&bt=1545&btag=e000b0000&bti=PDU2NmYwMy86&ft=.NpOcInz7ThNp2YGXq8Zmo&l=20260819222410D08C95379857D702D1E4&mime_type=video_mp4&rc=NWU7PDM0NmU2aGg4NGY1ZkBpM3g8amw5cmk3ZDMzbzczNUAxX2JgYzA1NmIxMC0zLmFeYSNmaGQ1MmRrMi9hLS1kMTFzcw%3D%3D&signature=8QMM6P7HLyy0srXdyYa9OEQmoiycwq10wmXgtvAt%2F%2Bg%3D&vvpl=1"
},
"filters": {
"region": "ES",
"searchTerm": "nike"
},
"transport": "direct"
}

Pricing

The Actor uses pay-per-event pricing. One ad-result event is charged for each unique successful ad record delivered to the Dataset. Apify selects the price for your plan automatically:

Apify planPrice per adEquivalent per 1,000 ads
Free$0.001$1.00
Bronze$0.0009$0.90
Silver$0.0008$0.80
Gold$0.00075$0.75
Platinum$0.00075$0.75
Diamond$0.00075$0.75

Diagnostic rows, duplicates, empty searches, failed requests, and SUMMARY do not trigger an ad-result charge. You can set a maximum total charge for a run in Apify to limit spending.

ActorBest for
LinkedIn Ad Library Scraper – No LoginComparing public advertising campaigns and creatives on LinkedIn.
TikTok Hashtag Scraper for Public VideosResearching organic TikTok videos and engagement around campaign topics.
TikTok Profile Scraper – Bio, Stats & PlaylistsEnriching public advertiser or creator accounts with profile-level data.

Limits and data quality

Requested limits are maxima, not guaranteed result counts. Availability depends on the public library, chosen filters, country coverage, and temporary source restrictions. Reach values are published ranges rather than exact audience totals. Creative URLs may expire, and includeDetails can still leave fields empty when TikTok does not expose them.

Frequently asked questions

Do I need a TikTok account or API key?

No. The Actor works with the public Commercial Content Library.

Why did I receive fewer ads than maxAds?

The filters may match fewer public ads, pagination may end, duplicates may be removed, or the source may temporarily restrict a request. Inspect diagnostic rows and SUMMARY.

Are images and videos downloaded?

No. The Dataset contains available public media URLs.

Responsible use

Use the results only for lawful purposes. Respect TikTok's terms, applicable privacy and advertising rules, copyright, and the rights of advertisers and people represented in public data. This Actor is unofficial and is not affiliated with TikTok.

Support

Open an issue in the Actor's Issues tab and include the run ID, selected region, search term, and relevant diagnostic status. Never include passwords, tokens, or private credentials.