Scrape the Apple Ads Library, Apple's EU App Store ad repository, by App Store link, app or developer id, name or country. Every page read to the end: app, developer, legal name, placement, format, dates shown, targeting flags, screenshots. Misses are free rows. JSON, CSV, API.
Texts: the README and the memory name description no longer say the second of two runs on one memory name "runs free"; it delivers its rows free and still pays the run's start fee. The status message and the free invalid row of a run refused for its input (also when the dataset refused that row), and its log line, now say that nothing further is fetched and no further event is charged, and that the run's start fee was charged when the run started (true after a platform restart too); they said nothing was fetched and no ad was charged. The hint of the error row of a failed run names the start fee and the events charged before the error, the stop on a dataset that cannot be read back says no further ad is delivered and no further event is charged, and the row and log of a memory that cannot be used speak of the ads from that moment on.
0.1 (2026-10-09)
First version: Apple's EU App Store ad repository by App Store app or developer (link or id), by name, or whole countries; every page read to Apple's last page; one row per ad; coverage row per target; free rows for misses; optional variations; memory for scheduled runs.