Tools
aso-review-analyzer
Turn App Store reviews into ASO insights: top complaint and praise themes, feature requests, rating drops by app version, keyword ideas from the words real users use, and ready-to-send replies to negative reviews. Paste Google Play reviews too. No API key needed. Built by ASO Agency.
Install
openclaw plugins install git:github.com/ataygamesmode-ops/openclaw-aso-review-analyzer
Configuration Example
[{ "rating": 2, "text": "Crashes when I open a story", "title": "", "version": "3.4.1", "date": "2026-09-20" }]
README
# ASO Review Analyzer for OpenClaw
**Turn App Store reviews into ASO insights — complaint themes, feature requests, version regressions, voice-of-customer keywords and reply drafts. No API key.**
Built and maintained by **[ASO Agency](https://asoagency.io)**, an App Store Optimization studio for funded app startups.
---
## Why
Your reviews already tell you why your rating is slipping, what users want next, and the exact words they use to describe your app. Nobody has time to read 500 of them. This plugin lets your OpenClaw agent pull an app's latest App Store reviews (yours or a competitor's) and turn them into something you can act on:
- **What's hurting the rating:** complaint themes with counts, percentages and real quotes, plus the app version they cluster in.
- **Did the last release break something?** Average rating per version, with a regression flag when the newest version drops 0.3★ or more.
- **What to build next:** feature requests pulled from "please add…", "I wish…", "would be great if…" sentences and grouped when they ask for the same thing.
- **What to write on the product page:** the phrases happy users repeat (for screenshot captions and the subtitle), plus the words your metadata misses.
- **What to reply:** a short, specific draft response for each recent 1–3★ review.
## Tools
| Tool | What it does |
|------|--------------|
| `aso_fetch_reviews` | Fetches written reviews for any iOS app and country (up to 500, sorted by most recent or most helpful). Returns the rating distribution, the average of the fetched reviews, the store rating and a compact list. Can filter by stars. |
| `aso_review_insights` | The main tool. Returns the sentiment split, **complaint themes** (14-theme taxonomy, from 1–3★ reviews) with example quotes, **praise themes**, deduplicated **feature requests**, **ratings by version** with regression flagging, the **rating trend** and **3–6 prioritised recommended actions**. |
| `aso_review_keywords` | Ranks 1–3-word phrases by how many reviews use them. The output has two lists: *language happy users use* (4–5★) and *pain-point language* (1–2★). If you pass your current title, subtitle and keywords, it also lists **keyword-field candidates** (packed into 100 characters) and **metadata words no reviewer uses**. |
| `aso_review_reply_drafts` | Drafts a response for each of the most recent actionable 1–3★ reviews. Each draft names the specific issue, points to a concrete next step (for example Restore Purchases, or reportaproblem.apple.com for refunds), invites contact and never promises dates or features. Drafts stay under about 350 characters and no two are the same. |
All tools are read-only. The analysis tools accept either `app` (App Store ID, `id123…`, an apps.apple.com URL or a bundle ID) plus `country`, or a **`reviews` array** you paste in.
### Google Play and other sources
Google Play has no free public reviews API. Instead, export your reviews from **Play Console → Download reports → Reviews** (or copy them from anywhere) and ask the agent to pass them as `reviews`:
```json
[{ "rating": 2, "text": "Crashes when I open a story", "title": "", "version": "3.4.1", "date": "2026-09-20" }]
```
Play Console CSV columns map as follows: `Star Rating` → `rating`, `Review Text` → `text`, `Review Title` → `title`, `App Version Name` → `version` and `Review Submit Date and Time` → `date`.
## Install
```bash
openclaw plugins install clawhub:openclaw-aso-review-analyzer
```
Or from npm:
```bash
openclaw plugins install openclaw-aso-review-analyzer
```
Or from source:
```bash
git clone https://github.com/ataygamesmode-ops/openclaw-aso-review-analyzer
cd openclaw-aso-review-analyzer && npm install && npm run build
openclaw plugins install ./
```
No configuration or API key is needed. The plugin calls Apple's public endpoints directly.
## Example
_The outputs below are abridged and illustrative, for a fictional app._
> **You:** Why did Driftly's rating drop? Look at the last 250 US reviews.
> **OpenClaw** (via `aso_review_insights`):
>
> **250 reviews** · 2026-08-28 → 2026-09-23 · average **3.31★** · store rating 4.62★ from 12,873 ratings
>
> **Top complaints (118 reviews rated 1–3★)**
> - **Crashes & bugs**: 41 reviews (35%), concentrated in v2.4.0 (78%)
> - “It crashes every time I open a sleep story.”
> - **Pricing, subscription & refunds**: 30 reviews (25%)
> - “Charged after the free trial even though I cancelled.”
> - **Broke after an update**: 22 reviews (19%)
>
> **Feature requests:** dark mode (9 reviews) · sleep timer (6) · Apple Watch support (4)
>
> **Ratings by version:** 2.4.0 averages 2.61★ (96 reviews) vs 3.72★ for 2.3.1. **Regression flagged.**
>
> **Recommended actions**
> 1. **Version regression:** v2.4.0 averages 2.61★ vs 3.72★ for v2.3.1 (-1.11★), and the top complaint is crashes & bugs → treat v2.4.0 as a hotfix priority.
> 2. **Crashes & bugs:** 35% of 1–3★ reviews mention it, concentrated in v2.4.0 → reproduce the crash paths quoted in reviews and ship a patch.
> 3. **Pricing:** 25% mention it → make the trial length and renewal terms unmistakable on the paywall…
> 4. **Ratings (ASO):** trigger SKStoreReviewController right after a moment users praise (falling asleep), never after an error or the paywall.
> 5. **Messaging (ASO):** happy users say "fall asleep", "rain sounds" and "sleep stories", so reuse that wording in screenshot captions and the subtitle.
> **You:** Which words from reviews are missing from our metadata? Title "Driftly: Sleep Sounds", subtitle "White Noise & Relaxation", keywords "meditation,focus,calm,noise,fan,sleep,baby".
> **OpenClaw** (via `aso_review_keywords`): **Keyword-field candidates** (frequent in 4–5★ reviews, absent from your metadata): rain (38), stories (31), asleep (27), insomnia (12), thunder (9)… Packed for the 100-char field: `rain,stories,asleep,insomnia,thunder,…`. **Metadata words no reviewer uses:** focus, fan. Check their search volume before keeping them.
> **You:** Draft replies to the 3 newest negative reviews. Support is [email protected].
> **OpenClaw** (via `aso_review_reply_drafts`):
> **1★ · v2.4.0 · Crashes & bugs**: "Hi there, thanks for the honest review. We're sorry the app has been crashing every time you open a sleep story on version 2.4.0. Updating to the latest version and restarting your device often helps. Please reach out at [email protected] with your device model and iOS version and we'll take a closer look. — The Driftly Team"
## Data source & limits
- **Source:** Apple's public customer-reviews RSS feed (`itunes.apple.com/<country>/rss/customerreviews/…/json`) and the iTunes Lookup API. No scraping, login or API key is involved.
- **Coverage:** Apple exposes at most **10 pages × 50 = 500 written reviews per country**, sorted by most recent or most helpful. For popular apps, 500 recent reviews may cover only a few days, and Apple sometimes serves fewer pages. When the most-recent feed is empty for a storefront, the plugin falls back to most-helpful and tells you. Star-only ratings (no text) aren't in the feed.
- **Written reviews skew negative** compared with the overall star rating, because unhappy users write more. Treat the percentages as a measure of which issues are loudest, not as your true satisfaction score.
- **Analysis is heuristic:** theme detection uses keyword and pattern lexicons, and sentiment uses a small built-in lexicon that handles negation, blended with the star rating. Both are tuned for English reviews. Other languages still get ratings, versions and trends, but fewer themes.
- **Rate limits:** Apple throttles these endpoints (about 20 requests per minute per IP). The plugin sends requests one at a time with a short gap, retries 403/429/5xx with backoff, and caches responses for 10 minutes.
- **Replies are drafts.** Nothing is posted. Review each draft, personalise it and post it in App Store Connect.
## Development
```bash
npm install
npm run build # tsc → dist/
npm run typecheck # includes tests
npm test # offline suite (node --test, fake fetch + synthetic fixtures)
npm run smoke # optional live check against Apple's endpoints
npm run icon # regenerate assets/icon.png (dependency-free)
```
The core logic lives in [`src/`](src): `appstore.ts` (network client), `sentiment.ts`, `themes.ts`, `requests.ts`, `insights.ts`, `keywords.ts`, `replies.ts` and `format.ts`. None of it depends on OpenClaw, and all of it is unit-tested.
## More free ASO tools
- [ASO Toolkit for OpenClaw](https://github.com/ataygamesmode-ops/openclaw-aso-toolkit): metadata audit, keyword field builder, keyword ideas and title optimizer.
- [ASO Rank Checker for OpenClaw](https://github.com/ataygamesmode-ops/openclaw-aso-rank-checker): check where an app ranks for App Store keywords.
- [aso-audit-mcp](https://www.npmjs.com/package/aso-audit-mcp): an MCP server for App Store listing audits.
## About ASO Agency
[ASO Agency](https://asoagency.io) helps funded app startups grow App Store and Google Play installs through keyword research, metadata optimization, review and ratings strategy, and conversion-rate optimization.
## License
MIT © [ASO Agency](https://asoagency.io)
aso
app reviews
review analysis
app store
sentiment analysis
user feedback
ios
mobile growth
Comments
Sign in to leave a comment