App Review Monitor — Google Play & App Store Alerts avatar

App Review Monitor — Google Play & App Store Alerts

Pricing

from $0.20 / 1,000 review delivereds

Go to Apify Store
App Review Monitor — Google Play & App Store Alerts

App Review Monitor — Google Play & App Store Alerts

Monitor new Google Play & App Store reviews for your apps: instant Slack/Discord alerts, daily digests, release canary & competitor pain radar. Deterministic tagging, no API keys, no AI bills.

Pricing

from $0.20 / 1,000 review delivereds

Rating

0.0

(0)

Developer

Vasram Sonagara

Vasram Sonagara

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

What does App Review Monitor do?

App Review Monitor watches the user reviews of your Google Play and Apple App Store apps and delivers one clean, structured dataset — new reviews only, de-duplicated across runs, enriched with star-based sentiment, theme tags (Bug, Pricing, UX…), crash-language flags and a reply-needed signal — plus instant alerts (Slack, Discord or any webhook), a bundled daily/weekly digest and a one-page HTML dashboard. Paste your app IDs, press Run, and every scheduled run brings you exactly what is new. No API keys, no logins, no AI bills — every enrichment is computed deterministically.

It also acts as a release watchdog: the built-in Release Canary compares the 1★ share and crash language of your newest reviews against your app's normal levels and pages you when a release looks broken. And as a competitive-weapon: add rival apps and the Competitor Pain Radar mines their negative reviews for the complaints you can win users with.

Everything lands in your own Apify storage — nothing is uploaded anywhere else. As an Apify Actor you also get scheduling, an API, integrations (Make, n8n, Zapier) and webhooks out of the box.

Try it in under a minute: the input comes pre-filled with a working example — press Run, then open Storage → Dataset and the REPORT key in Storage → Key-value store.

Why use this Google Play & App Store review monitor?

Reviews are your fastest signal: a fresh 1★ wave tells you about a broken release before your dashboards do, and unanswered angry reviews quietly drag your rating down. The stores make this surprisingly hard — Play Console and App Store Connect each show only their own reviews, with clunky exports, no shared history and no alerting you control. This actor fixes that:

  • Never miss a review — every run remembers which reviews it has already seen, so repeat runs only surface fresh ones. Reviews are pushed incrementally, so partial progress survives any interruption.
  • One dataset for both stores — Google Play and App Store reviews share the same field contract, so your sheets, BI dashboards and automations just work.
  • Instant alerts without spam — critical reviews (1–2★, unanswered replies, crash language) go to Slack/Discord/any webhook the moment they appear, protected by quiet hours, mute keywords, a daily cap and review-storm bundling. Everything suppressed waits in the next digest — nothing is lost.
  • Release Canary — WATCH / ROLLBACK / IMMEDIATE-ROLLBACK verdicts from your 1★ share and crash-language level vs. a per-app baseline, confirmed over consecutive runs to avoid false alarms.
  • Bundled digest — one daily or weekly message: reviews that need a reply, release health, competitor pains and a per-app pulse.
  • HTML dashboard — a visual one-page report (verdicts, actions, radar, trends) stored in every run under the REPORT key.
  • Deterministic tagging out of the box — sentiment from stars, theme tags (Bug, Performance, Pricing, UX, Feature Request, Account & Login, Ads, Update, Praise), a crash-language score, and a replyNeeded flag for unanswered 1–2★ Google Play reviews.
  • Competitor Pain Radar — rival reviews fetched and mined in the same run: top complaint themes, most-frequent complaint keywords, worst-case quotes.
  • Built for the Apify platform — schedule it, point Apify integrations (Slack, Google Sheets, Make, n8n, Zapier) at the dataset, or call it through the API.

Why a review monitor beats a one-shot review scraper

Plenty of Actors scrape reviews: you paste an app, get a dump, and repeat the same work tomorrow. App Review Monitor is the monitoring layer on top — you set it up once and it keeps watch:

One-shot review scraperApp Review Monitor
What you getA static dump of reviews — the same ones again tomorrowOnly new reviews, de-duplicated forever
AlertingNone — you re-check manuallyInstant Slack/Discord/webhook alerts with anti-spam (quiet hours, caps, storm protection)
Daily digestNoneOne bundled message: replies needed, release health, competitor pains, store pulse
Release watchNoneRelease Canary verdicts (WATCH / ROLLBACK) from your 1★ share and crash language
Competitor radarScrape rivals by handAutomatic pain-point mining of rivals' negative reviews
ReportingFilter raw dumps yourselfOne-page HTML dashboard in every run
Cost modelPay for the same reviews repeatedlyPay once per review — repeats are free, thanks to de-duplication

A scraper is the tool you use once. A monitor is the system you set up once and trust forever.

How to monitor app reviews (step by step)

  1. Paste your Google Play package names (find them in the Play Store URL after ?id=, e.g. com.spotify.music) and/or Apple app IDs (numbers only, from the App Store URL after /id, e.g. 324684580).
  2. Pick the countries to monitor as 2-letter codes (default: us). For Google Play you can also pick languages (default: en).
  3. To get alerts, paste a Slack, Discord or generic webhook URL in the Alerts section. Leave them empty while testing — alerts are printed to the run log.
  4. Optionally add competitor apps in the Competitor fields.
  5. Press Run — a typical run of a few apps takes under a minute and costs a fraction of a cent.
  6. Open Storage → Dataset (one row per review, exportable as JSON/CSV/Excel/HTML) and the HTML report under the REPORT key in Storage → Key-value store.
  7. Set a schedule (next section) — that is the whole setup. From then on, each run only processes reviews that arrived since the last one.

How to schedule app review monitoring (set and forget)

The Actor is built for scheduled monitoring — you do not need to run it manually again and again. Set one fixed schedule and it quietly does the job forever:

  1. Open the Actor in Apify Console and fill in the input once (apps, countries, webhook).
  2. Click Schedule on the Actor's page (or go to Schedules → Create new).
  3. Pick a repeat interval — for example every 6 hours (cron: 0 */6 * * *) — and save. Done.

Why a fixed schedule beats manual re-runs:

  • You never miss reviews — every run remembers exactly which reviews it has already seen, so frequent small runs catch everything between them. Rare manual pulls can permanently miss reviews on busy apps once they fall out of the store's "newest" window.
  • No wasted compute — a scheduled run only fetches what is new, so even an hourly run of a few apps costs just a few cents a day. Running the Actor by hand in a loop adds nothing except cost — if nothing new appeared, it finishes in seconds.
  • Alerts stay on time — instant alerts fire within minutes of a review appearing, while the digest still lands only once per period (daily or weekly). A tighter schedule makes alerts faster, not noisier.
  • Canary verdicts get stronger — the Release Canary compares results across consecutive runs, so a regular schedule makes release verdicts more reliable.

Recommended setups:

Use caseScheduleSuggested extras
Trying it outRun manually once or twiceLeave webhooks empty — alerts print to the run log
Small app, personal projectEvery 24 hoursDaily digest in the morning
Active app, regular releasesEvery 4–6 hoursQuiet hours at night, digest at breakfast
Launch week / release watchEvery 1–2 hourscanaryConfirmRuns: 1, storm protection on

Timezone note: schedules follow your Apify account timezone; quiet hours use the quietHoursTimezone input (default Asia/Kolkata).

Input parameters

FieldDefaultDescription
googlePlayApps—Your Play package names, e.g. com.spotify.music.
appStoreApps—Your Apple app IDs (numbers only), e.g. 324684580.
competitorGooglePlayApps / competitorAppStoreApps—Rival apps, fetched and tagged in the same run.
countriesus2-letter country codes: us, in, gb, de, br…
languagesenGoogle Play language codes (en, hi, es…). Ignored by the App Store feed.
modemonitormonitor = poll what's new (use with a schedule) · backfill = pull review history (up to backfillMax).
canaryWindowHours48How far back the Release Canary looks.
canaryWatchOneStarMultiplier / canaryRollbackOneStarMultiplier / canaryImmediateRollbackMultiplier2 / 4 / 6Verdict thresholds as multiples of the app's normal 1★ share.
canaryMinVolume / canaryCrashShareThreshold / canaryConfirmRuns10 / 0.08 / 2Minimum window volume, crash-share threshold, and how many consecutive runs must confirm a verdict.
slackWebhookUrl / discordWebhookUrl / genericWebhookUrl—Instant alert channels (empty = log only).
quietHoursEnabled / quietHoursStartHour / quietHoursEndHour / quietHoursTimezonefalse / 22 / 8 / Asia/KolkataPause instant alerts during sleeping hours (deferred to the digest).
muteKeywords—Reviews containing these words never alert instantly (digest only).
maxInstantPerDay5Daily cap on instant alerts (0 = digest only).
stormWindowMinutes / stormCount120 / 5Bundle a burst of alerts into one storm message.
reportEnabled / reportPublicLink / reportMaxReviewsShowntrue / true / 10HTML report controls.
digestFrequencydailydaily, weekly or off.
digestSectionActions / digestSectionRelease / digestSectionCompetitors / digestSectionHealthtrueWhich sections the digest includes.
keywordMining / minPhraseLengthtrue / 4Complaint-keyword mining for the radar.
filterMinRating / filterMaxRating0Keep only reviews inside a star range (0 = off).
filterIncludeKeywords / filterExcludeKeywords—Keyword gates, case-insensitive.
filterMinDate / filterLanguages—Keep only reviews since YYYY-MM-DD / in given languages.
maxReviewsPerApp100Fetch cap per app per run (per country).
maxCountries5Uses the first N entries of countries per app.
backfillMax500History cap in backfill mode.
concurrency4Parallel fetch jobs (1–16).
appOverrides{}Per-app tweaks keyed by platform:appId: a countries list, currentVersion (pin the canary to that version), baselineVersion.

Output: dataset, alerts and the HTML report

Every review lands in the Actor's default dataset (downloadable as JSON, CSV, Excel, or HTML):

{
"recordType": "review",
"platform": "google-play",
"appId": "com.spotify.music",
"appName": "Spotify: Music and Podcasts",
"country": "us",
"reviewId": "gp:AFDFQo08…",
"rating": 1,
"title": null,
"text": "After the update it crashes every time I open my playlists.",
"author": "Alex M.",
"reviewedAt": "2026-09-29T18:41:02",
"firstSeenAt": "2026-09-30T06:00:11.482+00:00",
"language": "en",
"version": "9.2.4",
"thumbsUp": 12,
"devReply": null,
"tags": ["Bug", "Update"],
"sentiment": "negative",
"isReplyNeeded": true,
"url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=gp:AFDFQo08…"
}

App Store items additionally carry title and omit developer replies (Apple's public data does not include them).

FieldDescription
platformgoogle-play or app-store
appId / appNameStore identifiers and resolved listing name
country / languageCountry fetched / language detected from the review text (und = too short to detect)
rating1–5 stars
title / textReview content (title only on the App Store)
authorReviewer display name
reviewedAt / firstSeenAtWhen the review was posted / when this Actor first saw it
versionApp version the review was written against (when available)
thumbsUpHelpful votes (Play) or vote count (Apple)
devReplyDeveloper reply on Google Play, if posted
tagsTheme tags: Bug, Performance, Pricing, UX, Feature Request, Account & Login, Ads, Update, Praise
sentimentnegative (1–2★), neutral (3★), positive (4–5★)
isReplyNeededTrue for unanswered 1–2★ Google Play reviews
urlDeep link to the review

Key-value store: the HTML dashboard is stored under REPORT in every run (open it from Storage → Key-value store). When no webhook is configured, the generated digest is stored under DIGEST instead of being sent.

Alert payloads: instant alerts, storm bundles and digests are delivered as simple text to Slack/Discord and as structured JSON (kind: review | storm | digest) to generic webhooks — ready for Zapier, Make or n8n.

How much does it cost to monitor app reviews?

Simple pay-per-event pricing — you pay only for what the Actor delivers, and Apify platform usage is included:

EventPriceWhat it covers
Run start$0.00005 per run ($0.05 per 1,000 runs)One monitoring run (scheduled or manual)
Review delivered$0.0002 per review ($0.20 per 1,000)Each new review pushed to your dataset — tagging, de-duplication, alerts, digest and report included

Typical monthly costs:

SetupRunsNew reviews/monthCost
1 app, daily digest30~300≈ $0.06
2 apps + 1 competitor, every 6h120~1,500≈ $0.31
5 apps, hourly720~10,000≈ $2.04

Volume discounts apply automatically at higher tiers (10K+ reviews: $0.15/1K · 100K+: $0.10/1K). Nothing is charged for filtered-out or duplicate reviews — only for reviews actually delivered.

Tips for scheduled review monitoring

  • Schedule it, don't max it — a modest maxReviewsPerApp (50–100) with a frequent schedule beats rare huge pulls; de-duplication guarantees you never miss anything between runs.
  • Let the canary learn first — the first canary run seeds the baseline and never alerts; verdicts start after canaryMinVolume window reviews and canaryConfirmRuns consistent evaluations.
  • Filters reduce noise, not memory — a filtered-out review is still marked as seen, so loosening filters later never re-alerts old reviews.
  • Quiet hours + digest — enable quiet hours at night and a daily digest in the morning; the digest carries everything that was deferred.
  • Per-app countries — use appOverrides to fetch specific apps only in the countries you actually release to.
  • Route the data anywhere — filter on isReplyNeeded or sentiment in your integration to escalate urgent reviews to Sheets, a helpdesk or an on-call channel.

FAQ, disclaimers and support

How do I monitor Google Play and App Store reviews in one place?

Add your Play package names to googlePlayApps and your Apple IDs to appStoreApps. Both stores land in the same dataset with the same fields, so one export or integration covers everything.

Do I need an API key, a Google account or an Apple account?

No. The Actor reads the same public review data you see in the browser — no credentials, no Google Cloud project, no App Store Connect access.

How far back can reviews be fetched?

In backfill mode: Google Play supports deep paging (throttled only by backfillMax), while Apple's public web exposes only the latest ~10 reviews per country — backfill there is shallow, but scheduled monitoring still catches every new review that surfaces in that batch.

Can I track my competitors' reviews?

Yes. Add their apps to the competitor fields — their reviews are fetched, tagged and de-duplicated in the same run, and the Competitor Pain Radar summarises their complaint themes, keywords and worst quotes.

How does de-duplication work between scheduled runs?

Every review ID is remembered per app, country and language in the Actor's persistent named store (which survives across runs). A review can never be delivered twice, even across different filters, countries or run frequencies.

Where do alerts arrive, and how do I stop the spam?

Slack, Discord or any webhook you configure. Anti-spam is built in: mute keywords, quiet hours (deferred to the digest), a daily instant cap, and storm bundling when many critical reviews arrive at once. With no webhook configured, alerts are printed to the run log instead.

Can I use the review data via the API or in Python?

Yes — everything lands in a standard Apify dataset, so you can pull it with the Apify API, the Python client (apify_client), JavaScript, or the CLI, and export it as JSON, CSV, Excel or HTML:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
items = client.dataset("DATASET_ID").list_items().items
negative = [r for r in items if r["sentiment"] == "negative"]

The Actor only reads publicly available review content — the same as opening the store page in your browser — and stores results in your own Apify storage. Respect the stores' terms when redistributing the data.

What are the known limitations?

App Store history is limited to what Apple exposes publicly (the latest ~10 reviews per country — a hard limit of Apple's public web data in 2026). App Store review fetching depends on that public page — if Apple changes its site, App Store fetches may pause until the Actor is updated; Google Play fetches are unaffected. Review version and devReply appear only when the store exposes them. Analysis is deterministic (rules + word statistics), not AI.

Can I run it more often than the schedule — or run it twice by mistake?

Yes, it is safe. De-duplication remembers every review it has delivered, so an extra run never sends duplicate alerts or repeats the digest — it just costs a few seconds of compute. The better habit is one fixed schedule (see the scheduling section above).

Bugs or feature requests?

Open an issue on the Actor's Issues tab.

  • Google Drive Folder Downloader — download and ZIP an entire shared Google Drive folder in the cloud, no API key needed. (Link to its Apify Store page goes here at publication.)