VOOZH about

URL: https://apify.com/lexis-solutions/tiktok-ads-scraper

โ‡ฑ TikTok Ads Scraper ยท Apify


Pricing

from $0.99 / 1,000 ads

Go to Apify Store

Find and scrape current and past ads on TikTok. Get video URL, dates and locations, impressions, and more. Download and analyze data from the TikTok Ads Library for competitive analysis.

Pricing

from $0.99 / 1,000 ads

Rating

4.9

(18)

Developer

๐Ÿ‘ Lexis Solutions

Lexis Solutions

Maintained by Community

Actor stats

60

Bookmarked

687

Total users

30

Monthly active users

1.6 days

Issues response

9 days ago

Last modified

Categories

Share

๐Ÿ‘ banner

What is the TikTok Ads Scraper?

The TikTok Ads Scraper is designed to extract data from TikTok Ad Library. It enables users to gather information about ads displayed on TikTok. The scraper can be used for competitor analysis, ad copy brainstorming, and more.

What data can the TikTok Ads Scraper extract?

The TikTok Ads Scraper can extract the following data from the TikTok Ad Library:

  • Ad ID
  • Ad text
  • Ad impressions range
  • Ad shown countries
  • Impressions share by country (only EU countries)
  • Advertiser name
  • Advertiser ID
  • TikTok Video URL

and more.

What use cases does the TikTok Ads Scraper have?

  • Ad copy brainstorming and inspiration for your own ads ๐Ÿง 
  • Competitor analysis and benchmarking of your ads ๐Ÿ“Š
  • Advertiser research and analysis ๐Ÿ•ต๏ธโ€โ™€๏ธ

How to use the TikTok Ads Scraper

  1. Create a free Apify account
  2. Open TikTok Ads Scraper
  3. Add a query to the input field, this could be a company name, domain, or a search string that appears in the ad
  4. Click Start and wait for the results
  5. Download the results in JSON, XML or CSV format or connect the actor to your backend via API

๐Ÿ“ฅ Input

To run the actor, you can input a:

  • adIds (optional) - An array of specific ad IDs to scrape. When provided, the actor will skip the search functionality and directly fetch the detail pages for these ads. Example: ["1848459287600130", "1820197122833570"]

  • Query - A query to search for ads. This can be a company name, domain, or a search string that appears in the ad.

  • Advertiser Name - An advertiser name to search for ads.

  • startDate / endDate (optional) - Date range to filter ads (use ISO format YYYY-MM-DD). If startDate is omitted, it defaults to 1 year ago; if endDate is omitted, it defaults to the current time. If startDate is later than endDate, the default range (1 year ago โ†’ now) is applied. If endDate is in the future, the current time is used instead.

  • timezone (optional) - Timezone string (e.g., Europe/London). If left empty, the server's default timezone (UTC) is used.

  • sortBy (optional) - How to sort search results. Defaults to last_shown_date,desc. Allowed values:

    • last_shown_date,desc โ€” Last shown date: Newest to oldest
    • last_shown_date,asc โ€” Last shown date: Oldest to newest
    • create_time,desc โ€” Publication date: Newest to oldest
    • create_time,asc โ€” Publication date: Oldest to newest
    • impression,desc โ€” Unique users seen: High to low
    • impression,asc โ€” Unique users seen: Low to high
  • quickSearch (optional) - When set to true, the scraper will skip the detail page requests and return data directly from the search results. This is faster but will result in missing fields (see Output section for details). Defaults to false.

Note: If adIds is provided, the actor will ignore all other search parameters (query, advertiserName, etc.) and directly fetch the specified ads.

You can provide either query, advertiserName, or both. When both are set, the actor prioritizes advertiserName (it tries to resolve the advertiser and, if it cannot, falls back to using the advertiser name as the query). If you leave query empty, set country to a specific region (anything except all).

๐Ÿ“ค Output

The results are stored in the default dataset associated with the actor. Each item is an ad, having the following format:

โš ๏ธ Note on quickSearch mode:
When quickSearch is enabled, the scraper skips detail page requests for faster execution. However, the following fields will be null or missing:

  • advertiserId
  • advertiserName
  • advertiserTtUser
  • advertiserCountry (not included in output)
  • adImpressions (not included in output)
  • advertiserPaidForBy
  • adTotalRegions
  • targetingByLocation
  • targetingByAge
  • targetingByGender

Use quickSearch: false (default) to get complete data with all fields populated.

๐Ÿ’ก Note:
The following enum is used for adtype:

TypeValue
text"1"
video"2"
image"3"

๐Ÿšซ Note on removed/unavailable ads: Each item includes a status field:

  • "active" โ€” ad is live and all detail fields are populated.
  • "unavailable" โ€” TikTok has removed the ad (e.g. for a terms violation) or hidden the advertiser block. The record still appears in the dataset so no IDs are silently dropped. Depending on what TikTok still exposes, an unavailable record may carry partial data: adType, adStartDate, adEndDate, adImpressions, adTotalRegions, targetingByLocation/Age/Gender, and the audit fields below are often still populated, while advertiser*, adVideoUrl, adVideoCover, and adImageUrls are typically null / [].

Three audit fields from the TikTok API are also surfaced for both states so you can introspect why an ad was flagged:

  • auditStatus โ€” "1" for active ads; other values typically indicate a moderation action.
  • sorAuditStatus โ€” secondary moderation status.
  • rejectionInfo โ€” populated by TikTok when a removal reason is published (often null since TikTok notes it can take up to 24h).
{
"adId":"1848112963098658",
"status":"active",
"auditStatus":"1",
"sorAuditStatus":"1",
"rejectionInfo":null,
"adTitle":"ไธŠๆตทๆฉๆฆ•็”ตๅญๅ•†ๅŠกๆœ‰้™ๅ…ฌๅธ",
"adType":"2",
"adSpent":"",
"adVideoUrl":"https://library.tiktok.com/api/v1/cdn/1764070053/video/aHR0cHM6Ly92NzcudGlrdG9rY2RuLmNvbS9iYTBmZWU5MWMwMDg5NDI5OWYzNTRlMzNlZGJhMjMyMS82OTI1ZTcxMS92aWRlby90b3MvYWxpc2cvdG9zLWFsaXNnLXZlLTAwNTFjMDAxLXNnL29JUUJsNkR3RkNBNkRzYVhBTmNXQUJLRGlvdVFJUWdmZ3BWSWVFLw==/c012558d-3959-4439-b57b-155dc15e3e57?a=475769&bti=PDU2NmYwMy86&ch=0&cr=0&dr=1&cd=0%7C0%7C0%7C0&cv=1&br=1256&bt=628&cs=0&ds=1&ft=.NpOcInz7ThUvGQPXq8Zmo&mime_type=video_mp4&qs=0&rc=ZTozOGg8Njo7ZWRkZDQ8aUBpM2twZnE5cmdyNzMzODYzNEA0YWEvNmNhXmMxYmAzMmMyYSMvL2RvMmRjMDNhLS1kMC1zcw%3D%3D&vvpl=1&l=20251125192732E13A9A84FCD62ECFD6FF&btag=e000b0000&cc=13",
"adVideoCover":"https://p21-ad-sg.ibyteimg.com/origin/tos-alisg-p-0051c001-sg/oMXNy0ERi4zqAi5AFBoEtwAWYevhALB0BIcvmA",
"adImageUrls":[],
"adStartDate":1762473600000,
"adEndDate":1762992000000,
"advertiserId":"7345893407476285441",
"advertiserName":"ไธŠๆตทๆฉๆฆ•็”ตๅญๅ•†ๅŠกๆœ‰้™ๅ…ฌๅธ",
"advertiserTtUserId":{
"username":"enroutejewelry",
"display_name":"en route jewelry",
"avatar_url":"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/70a6fb0dfd97f5427d020b84a6693575~tplv-tiktokx-cropcenter:168:168.jpeg?dr=9638&refresh_token=ea157d56&x-expires=1764241200&x-signature=RTLSA82JbQ1L6oyG8VBrD%2Fj3vmw%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=8aecc5ac&idc=useast5",
"follower_count":"177.5K",
"profile_web_link":"https://www.tiktok.com/share/user/6795191399140623365?source=ad_review",
"account_type":"VERIFIED_BA"
},
"advertiserLocation":"China",
"adImpressions":"100K-200K",
"advertiserPaidForBy":"BLUEVISION INTERACTIVE LIMITED",
"adTotalRegions":11,
"adEstimatedAudience":"100K-200K",
"targetingByLocation":[
{
"region":"FR",
"impressions":"12K"
},
{
"region":"AT",
"impressions":"3K"
},
{
"region":"NO",
"impressions":"4K"
},
{
"region":"CH",
"impressions":"3K"
},
{
"region":"IT",
"impressions":"15K"
},
{
"region":"DE",
"impressions":"10K"
},
{
"region":"BE",
"impressions":"13K"
},
{
"region":"GB",
"impressions":"8K"
},
{
"region":"DK",
"impressions":"3K"
},
{
"region":"PL",
"impressions":"62K"
},
{
"region":"NL",
"impressions":"11K"
}
],
"targetingByAge":[
{
"region":"FR",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"AT",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"NO",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"CH",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"IT",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"DE",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"BE",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"GB",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"DK",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"PL",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
},
{
"region":"NL",
"13-17":false,
"18-24":true,
"25-34":true,
"35-44":false,
"45-54":false,
"55+":false
}
],
"targetingByGender":[
{
"region":"FR",
"female":true,
"male":true,
"unknown":true
},
{
"region":"AT",
"female":true,
"male":true,
"unknown":true
},
{
"region":"NO",
"female":true,
"male":true,
"unknown":true
},
{
"region":"CH",
"female":true,
"male":true,
"unknown":true
},
{
"region":"IT",
"female":true,
"male":true,
"unknown":true
},
{
"region":"DE",
"female":true,
"male":true,
"unknown":true
},
{
"region":"BE",
"female":true,
"male":true,
"unknown":true
},
{
"region":"GB",
"female":true,
"male":true,
"unknown":true
},
{
"region":"DK",
"female":true,
"male":true,
"unknown":true
},
{
"region":"PL",
"female":true,
"male":true,
"unknown":true
},
{
"region":"NL",
"female":true,
"male":true,
"unknown":true
}
]
}

How many TikTok Ads can the TikTok Ads Scraper extract?

The TikTok Ads Scraper uses pagination to extract all ads from the TikTok Ad Library. The scraper can extract 12 ads per page.

You can control the number of pages to scrape by setting the maxPages input parameter.

Notes: TikTok limits the Ad Library to 300 pages (12 ads per page). Even if more results exist, the actor cannot retrieve beyond that cap because TikTok does not expose additional pages.

Why use the TikTok Ads Scraper?

  • โšก๏ธ Fast - The scraper is fast and efficient, allowing you to scrape ads in a programmatic way.

  • ๐Ÿค™ Easy to use - The scraper is easy to use and requires no coding knowledge. All you need to do is input the query you want to scrape and the scraper will do the rest.

  • โ˜‘๏ธ Well-Maintained - The scraper is maintained by the Lexis Solutions team, ensuring that it is always up-to-date and working properly.

FAQ

  • How to find a company's ads on TikTok?

    To find a company's ads on TikTok, you can use the TikTok Ad Library. This tool allows you to search for ads by advertiser name, domain, or country.

  • How to search for ads on TikTok?

    TikTok Ad Library allows you to search for ads by advertiser name, domain. You can also filter ads by date range and format. If you need to obtain the data programmatically, you can use the TikTok Ads Scraper.

  • What is the TikTok Ad Library?

    The TikTok Ad Library is a website that allows users to view ads that are displayed on TikTok's advertising network. It also provides information about the advertisers who are running these ads.

  • What is the TikTok Ads Scraper?

    The TikTok Ads Scraper is a web scraping tool designed specifically for TikTok Ad Library. This tool offers an effective way to mine valuable data from ads displayed on TikTok's advertising network.

  • Is Scraping TikTok Ads Legal?

    Scraping public information from TikTok Ad Library is legal as long as you are not violating any terms of service or privacy policies. However, it is important to note that scraping ads can be considered a violation of the terms of service of some websites, so it is always best to check before scraping.

  • How much does it cost?

    The cost for using the TikTok Ads Scraper is shown on the top of this page. You can also check the Apify Store page for more information.

Need to scrape ads from Google?

๐Ÿ‘‰ Check out our Google Ads Scraper

Need to scrape ads from Bing?

๐Ÿ‘‰ Check out our Bing Ads Scraper

Need to scrape ads from Reddit?

๐Ÿ‘‰ Check out our Reddit Ads Scraper

Need to scrape ads from TikTok?

๐Ÿ‘‰ Check out our TikTok Ads Scraper


๐Ÿ‘€ p.s.

Got feedback or need an extension?

Lexis Solutions is a certified Apify Partner. We can help you with custom solutions or data extraction projects.

Contact us over Email or LinkedIn

Support Our Work ๐Ÿ’

If you're happy with our work and scrapers, you're welcome to leave us a company review here and leave a review for the scrapers you're subscribed to. It will take you less than a minute but it will mean a lot to us!

Image Credit: https://www.socialpilot.co/tiktok-marketing/tiktok-ads

You might also like

Tiktok Ads Scraper

silva95gustavo/tiktok-ads-scraper

Scrape video ads from the TikTok Ads Library and unlock key insights into high-performing creatives. Extract comprehensive ad data, including advertiser name, video URL, target regions, total impressions, and more. Explore top TikTok ads to boost your competitive research and marketing strategy.

๐Ÿ‘ User avatar

Gustavo Silva (Coherent Paradox)

398

5.0

Tiktok Ads Library Creative Center Scraper

coregent/tiktok-ads-library-creative-center-scraper

Extract public TikTok ads, top creatives, landing pages, advertiser data, and creative insights from TikTok Ads Library and Creative Center for competitor research and marketing intelligence.

90

Tiktok Creative Center Top Ads

codebyte/tiktok-creative-center-top-ads

Find top performing ads on TikTok Creative Center. Get detailed analytics and insights on your competitors ads.

TikTok Ads Scraper

data_xplorer/tiktok-ads-library-pay-per-event

๐Ÿฅ‡ The most complete TikTok Ads scraper. Two modes: Ads Library (EU transparency, targeting, spend) + Top Ads (Creative Center, engagement metrics, 80+ countries). Search by keyword, advertiser, industry. Extract videos, performance data & creative assets.

150

5.0

TikTok Ads Library Scraper โ€” EU Library & Creative Center

brilliant_gum/tiktok-ads-library-scraper

Scrape TikTok Ads Library (EU/EEA/UK) and Creative Center (global). Extract ad creatives, targeting data, reach estimates, CTR, video URLs, and industry insights. Dual-source coverage โ€” no login required. Residential proxies built-in.

๐Ÿ‘ User avatar

Yuliia Kulakova

203

TikTok Ads Library FAST

data_xplorer/tiktok-ads-library-fast

๐Ÿ”ฎ Unlock TikTok's ad intelligence with our powerful scraper. Extract competitor campaigns, creative assets and performance metrics. Search by keyword, advertiser name or ID across all regions. Get comprehensive ad data for market-leading insights.

209

5.0

Tiktok Ad Library Scraper

ivanvs/tiktok-ad-library-scraper

Extract details about ads from TikTok Ad Library. Scrape ad details like when it was run, ad targeting, advertiser and content of ad. Download ad data in JSON, XML, Excel format.

Threads by Meta Scraper, Posts, Profiles & Engagement Data

george.the.developer/threads-scraper

Extract posts, profiles, and engagement data from Threads by Meta. Monitor brand mentions, track competitor activity, analyze trending content. Perfect for social media managers and market researchers.

78

TikTok Ads Scraper โ€” Creative Center Top Ads

khadinakbar/tiktok-ads-scraper

Scrape TikTok Creative Center Top Ads. Get video URLs, brands, CTR tiers, Spark Ads, likes & creative intel $3.00/1K.

64

TikTok Ads Library Scraper Pro

crawlerbros/tiktok-ads-library-scraper-pro

Scrape TikTok's public ad transparency library by query, advertiser, region, and date range. Pulls ad text, video URL, advertiser, impression buckets, and per-region/age/gender targeting. Pro filters: regionFilter, industryFilter, minImpressions, daysActive derived field.

34