TikTok Ads Library Scraper – EU/UK Ads, Targeting & Reach avatar

TikTok Ads Library Scraper – EU/UK Ads, Targeting & Reach

Pricing

from $2.00 / 1,000 ad scrapeds

Go to Apify Store
TikTok Ads Library Scraper – EU/UK Ads, Targeting & Reach

TikTok Ads Library Scraper – EU/UK Ads, Targeting & Reach

Scrape the official TikTok Ads Library (EU/EEA, UK, CH, TR): ad text, video/image URLs, advertiser, first/last shown, reach, impressions by country/age/gender, targeting. Search by keyword or advertiser. Optional Creative Center top ads.

Pricing

from $2.00 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

Fern Crawl

Fern Crawl

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Security

Limited permissions

Share

Extract ads from the official TikTok Ads Library (TikTok's commercial content repository for the EU/EEA, United Kingdom, Switzerland and Türkiye): ad text, video and image URLs, advertiser, first/last shown dates, unique-user reach, impressions by country, age and gender, and the targeting TikTok discloses (age, gender, location, interests, audience size, custom audiences).

Search by keyword or by advertiser (name or ID), pick countries and a date range, and get clean JSON / CSV / Excel. Optionally add TikTok Creative Center Top Ads (worldwide best-performing ads with CTR and likes).

What you can use it for

  • Competitor research – see every ad a brand ran in Europe, which creatives it is using now, and how long each one ran.
  • Creative inspiration – collect top-performing TikTok video ads in your niche, with landing pages and CTAs.
  • Targeting intelligence – learn which age groups, genders, countries and interests competitors target, and how many impressions each country received.
  • Monitoring & compliance – schedule daily runs to track new ads from advertisers or keywords.

Input

FieldDescription
searchTermsKeywords, e.g. nike, protein powder. Each term is a separate search. With a completely empty input the actor runs a small demo search (nike, 20 ads).
advertiserNamesAdvertiser legal names, e.g. Adidas AG (exact match preferred, otherwise up to 3 containing the name).
advertiserIdsTikTok business IDs (the advertiserId from earlier results) – most precise.
regionsall (default) or any of AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SE, SI, SK, TR.
lastNDays / dateFrom / dateToDate range of when ads were shown (default: last 30 days).
maxAdsMaximum ads per search term / advertiser (default 20).
fetchDetailsAdds landing page, CTA, objective, TikTok account, impressions breakdown and targeting (default on).
daySlicingDeep search: TikTok only lets you page ~100 results deep per search, so for large maxAds the actor also searches day by day (default on).
includeCreativeCenterAdd-on: Creative Center Top Ads for ccCountries (default off).

Example:

{
"searchTerms": ["nike"],
"advertiserNames": ["Adidas AG"],
"regions": ["DE", "FR", "GB"],
"lastNDays": 30,
"maxAds": 100,
"fetchDetails": true
}

Output

One dataset item per ad. Field names match our Google Ads Transparency Scraper, so you can merge both datasets.

{
"source": "tiktok-ads-library",
"adId": "1880398616261842",
"advertiserName": "Example Brand GmbH",
"advertiserId": "7560696377014026257",
"format": "VIDEO",
"adText": "New season drop – shop now #sneakers",
"firstShown": "2026-10-20T00:00:00Z",
"lastShown": "2026-10-29T00:00:00Z",
"daysShown": 10,
"estimatedAudience": "10K-100K",
"regions": ["DE", "AT"],
"previewUrl": "https://library.tiktok.com/ads/detail/?ad_id=1880398616261842",
"videoUrls": ["https://library.tiktok.com/api/v1/cdn/..."],
"videoCoverUrls": ["https://p16-common-sign.tiktokcdn.com/..."],
"imageUrls": [],
"searchQuery": "sneakers",
"landingPageUrl": "https://example.com/...",
"callToAction": "Shop now",
"objective": "Traffic",
"impressions": "100K-1M",
"regionImpressions": [{"region": "DE", "impressions": "100K-1M", "breakdowns": [{"age": "18-24", "gender": "FEMALE", "impressions": "10K-100K"}]}],
"targetAudienceSize": "20.5M-25.1M",
"targetingAges": {"DE": ["18-24", "25-34"]},
"targetingGenders": {"DE": ["female", "male"]},
"targetingCountries": ["DE", "AT"],
"customAudience": false,
"tiktokUsername": "examplebrand"
}

(Values above are illustrative.) A run summary (ads per search, resolved advertisers, warnings, HTTP stats) is saved as the OUTPUT record of the key-value store.

Creative Center items have "source": "tiktok-creative-center" and add ctr, likes, comments, shares, industry, ccCountry, ccOrderBy.

Pricing

Pay per result: you are charged per ad returned (see the Pricing tab). No proxy or subscription needed – the actor works without a proxy, and Apify datacenter proxy also works.

Performance

  • ~20 ads with full details in about 1–2 minutes; without details ~10x faster per ad.
  • Runs fine with 512 MB memory. Use 1024 MB when the Creative Center add-on is enabled (it opens a headless browser once).

Limitations – please read

  • Coverage: the TikTok Ads Library only contains ads shown in the EU/EEA, UK, Switzerland and Türkiye. US-only ads are not there (use the Creative Center add-on for worldwide top ads).
  • Data delay: TikTok's Library typically lags ~2 days; the last 1–2 days may look empty.
  • Ranges, not exact numbers: reach and impressions are published by TikTok as ranges (e.g. 10K-100K).
  • Media URLs expire: video/image URLs are signed and expire after some time – download them soon if you need the files.
  • Creative Center without login shows only the first page (~20 ads) per country and sort order; the actor combines 4 sort orders.
  • If a search returns 0 ads the run is marked failed with a hint (check spelling, widen dates/regions), so monitoring setups notice.
  • This actor reads publicly available transparency data. It does not log in or access private information. You are responsible for using the data in line with applicable law and TikTok's terms.

FAQ

Why do I get fewer ads than the total shown on library.tiktok.com? TikTok caps how deep you can page. Keep Deep search (day slicing) on and use a longer date range or more specific regions.

Can I track an advertiser over time? Yes – run with advertiserIds on a schedule; each ad has a stable adId for de-duplication.

Issues or feature requests? Open an issue on the Issues tab and we will take a look.