Reports an app's position in Apple's public iTunes Search API results for one keyword and storefront. That number is a proxy and can differ from the App Store app. Apple's terms restrict automated rank measurement. Not affiliated with Apple.
First release. For each keyword, storefront and app, the Actor calls Apple's public iTunes Search API (entity=software by default, limit up to 200) and writes the app's 1-based position in results, or null when it is outside that window. A bundle id is resolved with the public Lookup API.
The position is the Search API order. It can differ from the order a person sees in the App Store app.
One failed keyword is a row with blocked or search_failed. The rest of the run continues. A 403 or 429 waits and retries, then stops that keyword. There is no proxy and no second host.
Pay per event via Actor.charge: actor start, and rank-reported for each completed row, including a miss. Failures are not charged.
The named key-value store keeps only the previous rank for the same watchlist, so rankChange can be filled. It is not a history. Scheduled runs and the dataset are the changelog.