Google Play Listing Change Monitor
Pricing
from $0.50 / 1,000 app listing delivereds
Google Play Listing Change Monitor
Compare public Google Play app listings across locales and track metadata changes for ASO workflows. No reviews or contacts.
Pricing
from $0.50 / 1,000 app listing delivereds
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Compare a bounded watchlist of public Google Play app-detail pages across countries/languages and track metadata changes for ASO teams. Not a reviews scraper or contact finder. No sign-in, cookies, keys, searches, or private/internal endpoints.
Pricing
Pay-per-event price: $0.0005 per useful delivered app-locale row ($0.50/1,000). No start charge. Errors and the key-value-store SUMMARY are not billed. Duplicate inputs are removed. With changesOnly, unchanged listings are not emitted or billed; the initial baseline rows are billable. Apify compute, data transfer and storage usage are billed separately under your plan.
Quick start
Default input is two apps (WhatsApp and Telegram), GB/en-GB, maximum two delivered rows. See INPUT.example.json. Choose known package IDs rather than app names. Set stateStoreName to a unique named key-value store to compare across future runs. Without it, the baseline is run-local. Scheduling is external (for example an Apify schedule); this Actor does not schedule itself.
appIds: 1–100 package IDs. locales: 1–10 country/language pairs. Allowlisted countries: US GB IN CA AU DE FR ES IT BR JP KR MX NL. Languages: en en-US en-GB de fr es it pt-BR ja ko nl hi. At most 200 distinct app-locale combinations. maxResults: 1–200 useful rows (default 2). changesOnly: boolean (default false). stateStoreName: blank or 3–63 alphanumeric/hyphen characters, beginning alphanumeric. Unknown inputs fail validation. Locale requests are hints to the source, not a guarantee of geographical availability; no country proxies are used.
Output
Each delivered row contains appId, requested country/language, sourceUrl, observedAt (UTC), title, descriptionHash, descriptionLength, categories, price, currency, rating, ratingCount, reviewCount, installBucket, updated, version, sourceEvidence, missingFields, fingerprint, changeType, changes and localeComparison. changes contains field/before/after triples. changeType is initial, changed or unchanged. localeComparison names the first fetched locale for that app and known-field differences against it. Timestamp/rating observations can differ slightly between requests.
Most fields come from public JSON-LD SoftwareApplication. No full app descriptions are exported or persisted. A visible description element, or otherwise the source's short JSON-LD description, is transiently parsed, whitespace-normalized and hashed with SHA-256. descriptionHash is the hexadecimal digest; descriptionLength is the normalized Unicode code-point count. Changes report only old/new hashes and lengths, never description text. A hash change indicates text changed but does not explain the wording; source extraction changes can also change the hash. sourceEvidence.descriptionSource identifies the extraction source. Rating count is not the number of written reviews. reviewCount and version remain null unless explicitly supplied. Only English visible labels currently yield installBucket and updated; other languages yield null for these fields. Updated date remains a source string, not a guessed normalized timestamp. No exact downloads, revenue, developer contacts, reviewer profiles or reviews are collected. Missing fields are null, with evidence and missingFields; null is never removal evidence.
SUMMARY in the default key-value store contains requested/fetched/delivered counts, unbilled errors, whether baselineCommitted, baselineScope and caveats. Only useful listing rows appear in the dataset.
Persistence and limits
Baseline schema version 2 excludes description text; older schema baselines fail closed. Use a fresh baseline store when upgrading from a pre-release full-description build. Baselines are scoped deterministically to the sorted watchlist and locales. Snapshot promotion is all-or-nothing: any fetch failure, budget exhaustion, failed delivery or output truncation prevents baseline updates. Absent apps are never marked removed; missing fields retain the prior known field for future comparisons. A newly available previously-null field is baseline enrichment, not a change alert. An initial valid row is emitted even with changesOnly. Missing fields may change without an alert.
Do not overlap runs using the same baseline store: this package does not implement cross-run locking. Changing the watchlist creates a fresh scope. A successful first run followed by the same watchlist with changesOnly establishes normal change monitoring. Set maxResults high enough for your watchlist; clipping intentionally prevents promotion. All combinations (maximum 200) may be fetched before output clipping to support locale comparison. HTTP requests are sequential with a short delay, 25-second timeout, no retries, no redirects, and a 4MB page cap. robots.txt is checked at startup; unavailable/disallowed rules stop the run. Challenge/denied pages are not bypassed.
Source and rights caveats
Checked public robots.txt and Google Play / Google terms on 2026-11-07 UTC. /store/apps/details was not disallowed; /store/search, /store/getreviews, internal and account paths are excluded. Google's general terms prohibit automated access contrary to machine-readable instructions. Play terms reserve content rights and restrict redistribution of Content. This review is not legal clearance for metadata reuse or commercial redistribution. Use only where permitted and respect publisher/content rights. No official Google affiliation.
Sources: https://play.google.com/robots.txt ; https://play.google.com/about/play-terms/ ; https://policies.google.com/terms?hl=en . A non-English locale can return fallback/localized content and missing fields. Source layout and structured data can change.
Reliability
If every source fails, SUMMARY is saved and the run fails rather than reporting an empty success. A valid unchanged watchlist with changesOnly succeeds with zero delivered rows. Baseline storage failures fail the run and are recorded in SUMMARY when possible; a later SUMMARY storage failure also fails the run, but cannot roll back an already committed baseline.
This narrowed release retains factual metadata and description hashes/lengths only. It does not resolve all third-party rights questions and is not legal clearance.