TikTok Ads Library Scraper
Pricing
from $0.85 / 1,000 ads
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
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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 group | Fields |
|---|---|
| Search context | target, country, countryName, runId |
| Advertiser identity | advertiserName |
| Creative identity | adId, status, adDetailsUrl |
| Timing | firstShownDate, lastShownDate |
| Creative media | creativeFormat, mediaAvailability, videoUrl, videoUrls, coverImageUrl, imageUrls |
| Copy | title, description, callToAction, creativeText |
| Audience | estimatedAudience, 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"}
| Input | Required | Description |
|---|---|---|
targets | Yes | Advertiser names or keywords. Examples: Nike, ASOS, running shoes. |
country | Yes | Supported European Ads Library country. Examples: FR, GB, DE, PT. Default: GB. |
maxAds | No | Maximum creatives to return per target. Default: 40; maximum: 1000. |
shownSince | No | Keep ads last shown on or after this YYYY-MM-DD date. Leave empty to use the default recent window. |
firstShownAfter | No | Keep ads first shown on or after this YYYY-MM-DD date. Leave empty to keep all returned first-shown dates. |
queryType | No | Use auto for advertiser and keyword matching, or keyword to force keyword-style search. |
datasetId | No | Existing Apify dataset ID for pipeline runs. Rows are appended there in addition to the default run dataset. |
runId | No | External 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®ion=FR"}
creativeFormat is inferred from the media URLs exposed in the public search record:
videomeansvideoUrlorvideoUrlswas exposed.image_or_carouselmeans no video URL was exposed, butcoverImageUrlorimageUrlswas exposed.media_not_exposedmeans 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?
- Add one or more advertiser names or keywords.
- Choose a supported country.
- Set
maxAdsbased on how deep you want the run to go. - Optionally add date filters for monitoring new or recently shown ads.
- 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"andmediaAvailability: "no_media_url_exposed". creativeFormatis 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_SUMMARYrather than inventing rows.
How do I troubleshoot TikTok Ads Library Scraper?
| Issue | Likely cause | Solution |
|---|---|---|
| No rows were returned | The advertiser has no public ads in that country, or date filters removed all rows | Try another supported country, broaden the target, or remove date filters. |
| The result matched a related advertiser | Broad keywords can match agencies, retailers, or product mentions | Use a more specific brand name or switch queryType to keyword when you want keyword matching. |
| Some rows do not have videos | The public search record exposed image media only, or exposed no media URL | Check creativeFormat, mediaAvailability, coverImageUrl, imageUrls, and the public adDetailsUrl. |
| A run is slower for some targets | The target has duplicate or sparse result pages | Lower 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.