# Changelog of TikTok Ads Library FAST (`data_xplorer/tiktok-ads-library-fast`) Actor

- **URL**: https://apify.com/data\_xplorer/tiktok-ads-library-fast/changelog.md
- **Full Actor documentation**: https://apify.com/data\_xplorer/tiktok-ads-library-fast.md

## Changelog

### 2026-09-17 / v3.7

- 🔧 **Proxy configuration removed from the input**: IP rotation is now handled internally on a more reliable network, no setup needed
- 🔁 **Smarter session rotation**: each IP handles one wave of detail requests then gets retired early, instead of being used until TikTok refuses it. Roughly halved detail requests per ad and nearly eliminated the final retry pass
- ⚡ **Detail concurrency doubled**

### 2026-09-02 / v3.6

- 🎯 Ads are no longer saved with empty detail fields on the first failure: when TikTok refuses a detail request, the ad is now retried on fresh IPs for as long as it takes, instead of being written out incomplete. Ads that TikTok reports as unavailable are saved immediately without pointless retries, and the run summary states exactly how many rows ended up without details, and why
- ⚡ Details fetched in waves of 12: measured across repeated runs on fresh IPs, this roughly doubles throughput compared to the previous 6
- ⏱️ No more minute-long pauses: acquiring a new session is capped at 15 seconds, and a slow IP is dropped after 10 seconds instead of being waited on
- 🔇 Quieter logs: IP rotations and refusals are normal operation, not errors, and no longer clutter the run log.
- 🐛 Fixed a pagination stall: a network hiccup mid-crawl could leave the scraper looping on HTTP 425 and stopping early with a partial result set

### 2026-09-01 / v3.5

- 🐛 Fixed truncated result sets: a wrong type parameter in the search URL made TikTok return only part of an advertiser's ads
- 🚀 Browserless again: TikTok's August anti-bot change no longer requires Chromium

### 2026-08-28 / v3.4

- 🔧 **TikTok API breaking change**: adapted to TikTok's August 2026 anti-bot overhaul.

### 2026-06-22 / v3.3

- 🔢 **Numeric ranges now parsed to integers**: `Ad Audience`, `Ad Target Audience Size` and every `Ad Reach` impressions value are now returned as `{ raw, min, max }` (e.g. `{ "raw": "11.7M-14.2M", "min": 11700000, "max": 14200000 }`), keep the readable text in `raw`, sort/filter/aggregate on `min` / `max`

### 2026-06-22 / v3.2

- 🗺️ **Per-country reach now extracted** (Library mode, with Fetch Ad Details): new `Ad Reach` field with total impressions and, for each country, the exact reach **plus a full age × gender breakdown** , the reliable "Reach by location" figure, far more accurate than the broad "Unique users seen" estimate
- 👤 **New `Advertiser` field**: advertiser profile including business IDs, registry location, sponsor, and linked TikTok account (username, display name, follower count, account type, profile link)
- 🏷️ **New `Ad Title` field** and enriched `Ad Details` (advertising objective, call to action, external landing URL)
- 🎯 Richer `Ad Targeting` (languages, cities, provinces, operating systems, high spending power, audience signals)

### 2026-06-15 / v3.1

- 🚀 Browserless engine: migrated from headless Chromium to a pure HTTP/2 client — dramatically faster startup, lower memory, and cheaper runs
- 🔑 New anonymous token flow: ad-detail and search requests now authenticate via the lightweight session token, with no browser, login, or cookies required
- 🔁 Smarter detail fetching: each request runs on its own rotating session and auto-refreshes on rate-limit, boosting detail success rates
- 🛡️ More resilient to TikTok's anti-bot routing (no more browser-related stalls)
- 🪶 Lighter footprint: removed the Chromium/Playwright runtime — faster builds and reduced compute usage

### 2026-06-14 / v3.0

- ⚡ Much faster & more reliable ad collection: the ad list is now delivered at full speed and is no longer held back by ad-detail fetching

### 2026-06-03 / v2.9.0

- 🔧 Fixed exact match keyword search returning no results

### 2026-05-29 / v2.8.0

- 🛡️ Adapted to TikTok's latest anti-bot protections

### 2026-05-25 / v2.7.0

- 🔧 Fixed timestamp precision: URL mode now preserves exact timestamps from TikTok URLs instead of truncating to midnight
- 🕐 Fixed manual date mode
- 🏷️ Separated Advertiser Name and Advertiser ID into distinct input fields — TikTok now requires the advertiser name, ID is optional
- 📥 New optional `advertiserBizId` input field for precise advertiser filtering (found in TikTok URL as `adv_biz_ids`)
- 🔗 Updated URL parser to correctly extract `adv_name` and `adv_biz_ids` as separate fields
- ⚠️ Added warning when only an Advertiser ID is provided without a name (may return incomplete results)

### 2026-03-11 / v2.6.3

- 🐛 Fixed silent stop when API returns non-zero code
- 🐛 Fixed pages appearing "skipped" due to silent duplicate filtering — now logs `♻️ Skipped X duplicate ad(s)`
- 🛑 Added stagnation detection: stops after 5 consecutive pages with no new ads to avoid infinite loops

### 2026-02-25 / v2.5.2

- 🐛 Fixed display URL generation for all search modes
- ⚡ Reduced inter-page delay

### 2026-02-14 / v2.4.4

- 🤖 Added `output_schema.json` for full AI & LLM compatibility

### 2026-01-27 / v2.3.1

- 🕵️ Improved retry logic for JSON parsing errors and Service Unavailable responses

### 2026-01-22 / v2.2.7

- 🕵️ Improved detection avoidance with specialized User-Agents strategy

### 2026-01-21 / v2.1.0

- 🚀 Optimized concurrency for faster scraping
- 🕵️ Updated User-Agents pool with latest browser versions
- 🎲 Implemented randomized retry delays

### 2026-01-21 / v2.0.1

- 🥷 Enhanced stealth with consistent headers and automatic CookieJar management
- 🍪 Session warm-up to retrieve valid cookies before scraping
- 🐛 Fixed pageNumber scope issue and improved network timeout handling

### 2026-01-11 / v1.9.2

- 🏗️ Complete architecture overhaul with modern scraping stack rebuilt from scratch
- 🌐 URL parsing capability to auto-detect and parse TikTok Ads Library URLs directly
- ⚡ Optional details fetching to disable ad details for 3x faster scraping when targeting high volumes
- 📊 Datacenter proxies enabled by default for faster and cheaper scraping with easy switch to residential

### 2026-01-06 / v1.8.2

- 🎯 Smart detection of TikTok "limit exceed" response (no results case)
- ✅ Graceful exit with friendly message instead of error when no ads found

### 2026-01-06 / v1.7.4

- ⏱️ Increased ad details timeout: 5s → 8s for better reliability
- 🔄 Increased ad details retry attempts: 3 → 5 for improved success rate
- 🐛 Added `debugMode`

### 2026-01-03 / v1.6.44

- 📦 Updated `baseline-browser-mapping` for latest browser signatures

### 2025-11-07 / v1.5.9

- ⏱ Progressive search timeouts for all regions: start at 8s, escalate to 15s after a timeout, then to 20s on repeated timeouts.
- 🚫 Graceful handling of empty quoted query ("")

### 2025-10-16 / v1.4.21

- 🔁 Reliable migration resume (offset + search\_id) with single checkpoint
- 🧭 Pagination fix using search\_id across pages (prevents HTTP 400)
- 🧹 Cleaner logs + safe JSON handling for rate limits

### 2025-03-29 / v1.3.1

- 🚀 Improved proxy handling to prevent excessive logs and infinite loops
- ⏱️ Reduced ad details timeout from 8s to 5s for faster processing
- 🚄 Increased parallel processing to 12 ads for faster scraping
- 🔥 Optimized performance while maintaining reliability
- 🔄 Added state persistence to handle Apify host migrations

### 2025-03-24 / v1.2.4

- ⏰ Added minimum date validation (2022-10-01) for TikTok Ads Library
- 🎨 Improved logs readability with better formatting
- ⚠️ Added warning message for dates before 2022-10-01

### 2025-03-20 / v1.1.8

- 🧙‍♂️ Added circuit breaker pattern to avoid problematic proxies
- ⚡ Reduced request timeout from 10s to 5s for faster error recovery
- 🦄 Implemented intelligent session management with shorter session IDs

### 2025-03-19 / v1.0.5

- 🔄 Fixed pagination issue by setting API limit to 12 to match TikTok's actual response limit

### 2025-03-15 / v0.9.4

- 🚫 Added proper handling for empty results with user-friendly messages
- 🖼️ Enhanced media URL retrieval from details API when missing in search results

### 2025-03-11 / v0.8.6

- 🔗 Added direct links to ad detail pages for each ad
- 👥 Enhanced targeting data with detailed region, age, and gender information
- 💰 Added "Ad paid for by" sponsor information for better transparency
- ⚡ Optimized performance with parallel processing for faster data extraction

### 2025-03-09 / v0.6.1

- 🚀 First stable release of TikTok Ads Library Scraper with comprehensive ad data extraction
- 🏗️ Structured data format with standardized fields for easy analysis
- 🔍 Advanced search capabilities: keyword, exact match, and advertiser ID search options
- 🌐 Support for all TikTok-supported regions with region-specific targeting
- 🖼️ Complete media asset extraction including videos and cover images
