Scrape Google Trends: interest over time, interest by region, and related queries for any keywords. Clean flat JSON/CSV. Public aggregated data, no login.
is_ppe detection: tryb DARMOWY dostarcza normalnie, nie nalicza, nie fail-closuje. Bez tego
wolny actor po 3 rekordach robił charge_stop → Actor.fail (bug, który bluesky złapał dopiero na żywo).
Proxy RESIDENTIAL wpięte: Google banuje datacenter-IP (429). Kod tylko ostrzegał — teraz
proxyConfiguration (default useApifyProxy+RESIDENTIAL) → TrendsClient(proxy=...). Bez tego actor
praktycznie nie działał na Apify.
requirements: apify unpinned (był >=2.0,<3.0 = konflikt pydantic default/default_factory,
który wywalił build bluesky).
onlyNew łapie zmianę wartości — _key zawiera value; monitor nie milknie po 1. runie (był
martwy dla interest_by_region, first-sighting-only dla related — łamał reklamowaną funkcję alertów).
isPartial — ostatni punkt niedokończonego okna oflagowany (mylnie niska wartość ≠ spadek).
geo hasData (Google odróżnia 0 od braku danych); backoff z jitter (LEGAL mitygacja #2);
tytuł 59→47 zn.; skipped_seen w note (nie-cichy „nothing new").
Testy 19 → 21.
0.1 (2026-07-22)
First version: interest_over_time, interest_by_region, related_queries.
Hardened skeleton reused from reference actor (per-item PPE, migration-safe dedup, global cap,
fail-closed billing, FAIL-on-zero). 13 regression tests.