TikTok Ads Library Scraper avatar

TikTok Ads Library Scraper

Pricing

from $0.85 / 1,000 ads

Go to Apify Store
TikTok Ads Library Scraper

TikTok Ads Library Scraper

Extract public TikTok ad creatives with advertiser names, ad IDs, dates, ad text, audience ranges, media URLs, and media-based creative format labels.

Pricing

from $0.85 / 1,000 ads

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Extract public TikTok ad creatives from supported European Ads Library countries for competitor monitoring, ad research, and creative tracking. The actor searches advertiser names or keywords, then returns ad rows with advertiser names, ad IDs, first and last shown dates, ad copy, video URLs, cover/image assets, and a media-based creative format label.

Use it when you want repeatable TikTok ads data for brands such as Nike, ASOS, Temu, or a client competitor list without manually searching TikTok's public Ads Library.

Why use TikTok Ads Library Scraper?

  • Monitor new and recently shown TikTok ads by advertiser or keyword.
  • Build competitor creative swipe files from public video and cover assets.
  • Track first shown and last shown dates across recurring runs.
  • Export ad copy, CTA text, video URLs, cover images, and audience ranges when available.
  • Separate video creatives from image/carousel-like records and records where TikTok did not expose a media URL.
  • Feed ad intelligence dashboards, agency reports, or downstream creative analyzers.

What data does TikTok Ads Library Scraper extract?

Field groupFields
Search contexttarget, country, countryName, runId
Advertiser identityadvertiserName
Creative identityadId, status, adDetailsUrl
TimingfirstShownDate, lastShownDate
Creative mediacreativeFormat, mediaAvailability, videoUrl, videoUrls, coverImageUrl, imageUrls
Copytitle, description, callToAction, creativeText
AudienceestimatedAudience, impressionCount

The actor uses public web endpoints behind TikTok's Ads Library. It does not require a TikTok login for the tested public search path.

Who uses TikTok Ads Library Scraper?

DTC and e-commerce teams can monitor competing advertisers and inspect fresh creative angles.

Agencies can run scheduled client competitor checks and export video assets, cover images, copy, and CTA patterns.

Creative strategists can build swipe files from public TikTok ad examples and compare messaging over time.

Researchers can collect public ad records by country, advertiser, and keyword with direct detail links for review.

What input does TikTok Ads Library Scraper accept?

{
"targets": ["Nike", "ASOS"],
"country": "FR",
"maxAds": 40,
"shownSince": "2026-07-01"
}
InputRequiredDescription
targetsYesAdvertiser names or keywords. Examples: Nike, ASOS, running shoes.
countryYesSupported European Ads Library country. Examples: FR, GB, DE, PT. Default: GB.
maxAdsNoMaximum creatives to return per target. Default: 40; maximum: 1000.
shownSinceNoKeep ads last shown on or after this YYYY-MM-DD date. Leave empty to use the default recent window.
firstShownAfterNoKeep ads first shown on or after this YYYY-MM-DD date. Leave empty to keep all returned first-shown dates.
queryTypeNoUse auto for advertiser and keyword matching, or keyword to force keyword-style search.
datasetIdNoExisting Apify dataset ID for pipeline runs. Rows are appended there in addition to the default run dataset.
runIdNoExternal workflow ID copied to output rows and RUN_SUMMARY.

What output does TikTok Ads Library Scraper return?

Example row:

{
"target": "Nike",
"country": "FR",
"countryName": "France",
"adId": "1870539218886770",
"advertiserName": "NIKE Retail B.V.",
"firstShownDate": "2026-07-12",
"lastShownDate": "2026-07-14",
"title": "Commande l'equipement qui t'aidera a relever tous les defis.",
"callToAction": "Shop now",
"creativeText": "Commande l'equipement qui t'aidera a relever tous les defis. | Shop now",
"estimatedAudience": "10K-100K",
"creativeFormat": "video",
"mediaAvailability": "video_url_exposed",
"videoUrl": "https://library.tiktok.com/api/v1/cdn/...",
"videoUrls": ["https://library.tiktok.com/api/v1/cdn/..."],
"coverImageUrl": "https://p16-common-sign.tiktokcdn.com/...",
"imageUrls": ["https://p16-common-sign.tiktokcdn.com/..."],
"adDetailsUrl": "https://library.tiktok.com/ads/detail/?ad_id=1870539218886770&region=FR"
}

creativeFormat is inferred from the media URLs exposed in the public search record:

  • video means videoUrl or videoUrls was exposed.
  • image_or_carousel means no video URL was exposed, but coverImageUrl or imageUrls was exposed.
  • media_not_exposed means TikTok returned the ad record and copy but did not expose a media URL in the search payload.

mediaAvailability provides the matching extraction status: video_url_exposed, image_url_exposed, or no_media_url_exposed. The actor intentionally focuses on the fast public search data, so it does not depend on TikTok's unstable ad-detail endpoint for landing pages, sponsor profiles, or targeting breakdowns.

How do I run TikTok Ads Library Scraper?

  1. Add one or more advertiser names or keywords.
  2. Choose a supported country.
  3. Set maxAds based on how deep you want the run to go.
  4. Optionally add date filters for monitoring new or recently shown ads.
  5. Run the actor and download the dataset as JSON, CSV, Excel, or through the Apify API.

How can I use TikTok Ads Library Scraper through the API?

curl "https://api.apify.com/v2/acts/YOUR_USERNAME~tiktok-ads-library-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-d '{
"targets": ["Nike"],
"country": "FR",
"maxAds": 40
}'

Fetch dataset items:

curl "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true" \
-H "Authorization: Bearer $APIFY_TOKEN"

How can I monitor advertisers over time?

Schedule the actor daily or weekly with the same targets and country. Use adId, firstShownDate, and lastShownDate to detect fresh, recurring, or recently stopped creatives.

What are the limits of TikTok Ads Library Scraper?

  • The public TikTok Ads Library path tested here is focused on supported European countries.
  • It does not claim complete global TikTok ad coverage.
  • Some public records expose text but no media URL. These rows are labeled with creativeFormat: "media_not_exposed" and mediaAvailability: "no_media_url_exposed".
  • creativeFormat is an inference from exposed media URLs, not TikTok's private campaign setup field.
  • Landing pages, sponsor profile details, and targeting breakdowns are not included because TikTok's public detail endpoint is unstable at scale.
  • TikTok can change internal public endpoints or payload shapes. The actor records failures in RUN_SUMMARY rather than inventing rows.

How do I troubleshoot TikTok Ads Library Scraper?

IssueLikely causeSolution
No rows were returnedThe advertiser has no public ads in that country, or date filters removed all rowsTry another supported country, broaden the target, or remove date filters.
The result matched a related advertiserBroad keywords can match agencies, retailers, or product mentionsUse a more specific brand name or switch queryType to keyword when you want keyword matching.
Some rows do not have videosThe public search record exposed image media only, or exposed no media URLCheck creativeFormat, mediaAvailability, coverImageUrl, imageUrls, and the public adDetailsUrl.
A run is slower for some targetsThe target has duplicate or sparse result pagesLower maxAds for quick checks or split large target lists across runs.

What changed in the current version?

0.1

  • Initial version with public search, ad dates, ad copy, media format labels, video/cover assets, audience ranges, and pipeline fields.

How can I get support?

Open an issue on the actor page with the target, country, run ID, and a short description of what looked wrong. Include whether the problem was matching, missing rows, date filtering, or media extraction.