TikTok Ad Library Scraper: Ads, Reach & Targeting avatar

TikTok Ad Library Scraper: Ads, Reach & Targeting

Pricing

from $0.60 / 1,000 ad returneds

Go to Apify Store
TikTok Ad Library Scraper: Ads, Reach & Targeting

TikTok Ad Library Scraper: Ads, Reach & Targeting

Get TikTok ads from the official TikTok Ad Library (EU, EEA, UK, Switzerland, Turkey): ad text, video and images, first and last shown, unique users reached per country, landing page, and the age, gender, interest and audience targeting published under the DSA. Search by advertiser or keyword.

Pricing

from $0.60 / 1,000 ad returneds

Rating

0.0

(0)

Developer

Onibaku

Onibaku

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

TikTok Ad Library Scraper (Ads, Reach and Targeting)

See the TikTok ads any brand runs in Europe, with the numbers TikTok publishes about them. Search by advertiser or keyword and get one clean, flat dataset from the official TikTok Ad Library: ad text, video and images, first and last shown, unique users reached per country, the landing page, the advertiser's TikTok account, who paid, and the targeting: ages, genders, interests and audience size.

Since the EU's Digital Services Act, TikTok has to publish every ad shown in the EU and EEA (plus the UK, Switzerland and Turkey) with this detail. This actor reads the library the way your browser does, with no login, and turns it into rows you can filter, sort and chart.

What it's for

  • Competitor ad research: every TikTok ad a rival ran in the last month, which countries, how many people saw it and who it targeted.
  • Agencies: audit a prospect's TikTok advertising before the pitch, or benchmark a client against its category.
  • Creative research: pull the most-seen ads for a keyword (sortBy: reach) and study the hooks.
  • Targeting intelligence: see the age bands, genders and interest groups competitors pay to reach.
  • AI agents: one call answers "what TikTok ads did Nike run in Germany this month?" (see MCP below).

Input

FieldWhat it does
queriesAdvertiser names or keywords, exact phrases in quotes, or library search URLs. See below.
regionWhere the ads were shown: an EU or EEA country code, GB, CH, TR, or all.
startDate, endDateOnly ads shown in this window (YYYY-MM-DD). Defaults to the last 30 days.
formatall, video, image or text.
statusall, active or inactive.
sortBylastShown (default), published or reach (most unique users first).
includeDetailsAdvertiser details, landing page, reach per country and targeting (on by default).
maxResultsPerQuery, maxResultsCaps (defaults 200 and 1,000).
proxyConfigurationApify Proxy, on by default. Keep it on (see Good to know).

What you can put in queries:

  • A keyword or advertiser name, as you'd type it in the library: nike. This matches advertiser names and ad text, so it also finds creators' ads that mention the brand.
  • An exact phrase in quotes: "just do it".
  • One advertiser only: paste that advertiser's library search URL. Every row has it as advertiserAdsUrl, so run a keyword search once, pick the advertiser, and use its URL from then on.
  • Any library.tiktok.com/ads?... URL copied from your browser. The actor takes who or what it searches for from the URL; country, dates, format, status and sorting always come from the input.

Nike's ads in Germany, most-seen first:

{
"queries": ["https://library.tiktok.com/ads?adv_name=NIKE%20Retail%20B.V.&region=all&query_type=2&adv_biz_ids=6876453864464188162"],
"region": "DE",
"sortBy": "reach"
}

Active video ads for a keyword across Europe:

{
"queries": ["protein powder"],
"format": "video",
"status": "active",
"maxResults": 300
}

Output

One row per ad:

{
"platform": "tiktok",
"query": "nike",
"advertiserName": "NIKE Retail B.V.",
"advertiserId": "6876453864464188162",
"adId": "1879069070553138",
"format": "image",
"firstShown": "2026-10-14T00:00:00.000Z",
"lastShown": "2026-10-24T00:00:00.000Z",
"regions": ["GB"],
"uniqueUsersSeen": "10K-100K",
"uniqueUsersByRegion": [{ "region": "GB", "users": "46K" }],
"body": "Work without compromise in the Nike Hybrid RN.",
"landingUrl": "https://www.nike.com/gb/w/hybrid-training-8wvhh?cp=62135823270_brs_CR28K0FJHQCV",
"detailsIncluded": true,
"imageUrls": ["https://p16-common-sign.tiktokcdn.com/ad-site-i18n-sg/202610125d0d8ec84cce0fe64d4ab26c~tplv-tiktokx-origin.jpeg?..."],
"videoUrls": [],
"videoCoverUrls": [],
"adUrl": "https://library.tiktok.com/ads/detail/?ad_id=1879069070553138",
"advertiserAdsUrl": "https://library.tiktok.com/ads?adv_name=NIKE%20Retail%20B.V.&region=all&query_type=2&adv_biz_ids=6876453864464188162",
"industry": "Apparel & Accessories",
"advertiserCountry": "Netherlands",
"paidFor": "INITIATIVE MEDIA B.V.",
"tiktokUsername": "nike",
"tiktokDisplayName": "Nike",
"tiktokProfileUrl": "https://www.tiktok.com/share/user/208464585232822272?source=ad_review",
"tiktokFollowers": "9.3M",
"targetAges": ["18-24", "25-34"],
"targetGenders": ["female", "male", "unknown"],
"targetAudienceSize": "7.6M-9.2M",
"targetInterests": "Health & Fitness, Sports & Fitness, Exercise & Fitness, Physical Fitness, Sports",
"targetCustomAudience": "No",
"targetVideoInteractions": null,
"targetCreatorInteractions": null,
"targetLocations": [],
"targetLanguages": [],
"targetDevices": [],
"targetSpendingPower": null
}
  • uniqueUsersSeen and uniqueUsersByRegion are TikTok's own estimates of unique users who saw the ad, as ranges or rounded numbers, the way the library shows them.
  • paidFor is who paid for the ad when it isn't the advertiser (often the media agency).
  • targetCustomAudience says whether the advertiser used its own audience list.
  • With includeDetails off you still get the advertiser name, format, dates, text, media and overall reach, but not the landing page, per-country reach or targeting.

Pricing

$0.0006 per ad returned, plus $0.0019 per ad that comes with its targeting and landing page (the includeDetails lookup, which needs extra browser sessions), plus a token $0.00005 per run. 1,000 ads cost $0.60 without details or $2.50 with them. Ads where TikTok doesn't give the details are charged the base price only, and searches that find nothing cost nothing.

Good to know

  • The library only covers ads shown in the EU, EEA, UK, Switzerland and Turkey. US-only campaigns aren't in it.
  • TikTok lets each IP see only a few ad details in a short while. With Apify Proxy on, the actor moves to a fresh proxy session when that happens; without a proxy, ads after the first few come without targeting.
  • Image and video links are signed by TikTok and expire after a day or so. Download what you need straight away.
  • The library is a JavaScript app, so the actor runs a real browser (1 GB memory). It reads the same responses the page gets, never logs in and never solves CAPTCHAs.
  • TikTok also has a Commercial Content API for approved researchers. This actor doesn't need an application.

Use it from Claude, ChatGPT or Cursor (MCP)

AI assistants can call this actor as a tool through Apify's MCP server. Add this server URL to your MCP client and sign in with your Apify account when prompted:

https://mcp.apify.com?tools=onibaku/tiktok-ad-library

More ad libraries

Data source

The TikTok Ad Library, TikTok's public repository of ads shown in Europe under the Digital Services Act. Every row's adUrl links to the ad there.

Questions or feature requests? Open an issue on the actor's Issues tab or email admin@onibaku.co.uk.