# Changelog of Facebook Ad Library Scraper - Meta & Instagram Ads (`data_ops_main/metaads-scrapper`) Actor

- **URL**: https://apify.com/data_ops_main/metaads-scrapper/changelog.md
- **Full Actor documentation**: https://apify.com/data_ops_main/metaads-scrapper.md

## Changelog

### 0.1.0 — 2026-10-27

First release.

- HTTP-only engine (no browser in the hot path): session bootstrap with client-verification handshake, runtime GraphQL `doc_id` discovery with a last-known-good fallback, cursor pagination with resume via `Actor.useState`.
- Query types: keyword search (unordered/exact), advertiser (page URL/handle/ID), pasted Ad Library URLs (full filter parsing, explicit fields override URL params), and single ad-ID lookup.
- Filters: country, active status, ad category, media type, platforms, content languages, start-date window.
- One complete row per unique ad with a stable, versioned contract (`schemaVersion` 1.0); deduplicated by ad ID across the run.
- EU DSA transparency and advertiser enrichment (`includeDetails`): total EU reach, reach by age/gender/country, target locations/ages/gender, payer and beneficiary, Instagram username/followers, verification. Every row carries `detailsStatus`.
- Political/issue ads: spend and impression ranges, gating.
- Coverage reporting: `metaReportedCount` vs delivered per query, in the `SUMMARY` key-value record; automatic query splitting (date, then media type) when pagination ends below coverage.
- Monitor mode: new/stopped/continuing classification across scheduled runs, state kept per `monitorId`, optional changes-only output.
- Optional media download to the key-value store (deduplicated, size-capped) and landing-page resolution.
- Pay-per-event billing; charges only for unique delivered ads, stored media, and resolved landing pages. Graceful stop at the charge limit.
- Dataset views: overview, creatives, euTransparency, monitor, full. Input/dataset/output/key-value-store schemas.
