Skip to main content
ClaudeWave
Skill1.5k repo starsupdated 1mo ago

rating-prompt-strategy

# Rating Prompt Strategy This skill optimizes the timing, frequency, and targeting of in-app review prompts to maximize high ratings while minimizing low ones. Use it when users need guidance on implementing native review APIs (SKStoreReviewRequest for iOS, Play In-App Review API for Android), recovering from rating drops, increasing review volume, or determining when to prompt users without degrading star ratings. It provides platform-specific rules, code examples, and a success-moment framework for identifying optimal prompt triggers.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Eronred/aso-skills /tmp/rating-prompt-strategy && cp -r /tmp/rating-prompt-strategy/skills/rating-prompt-strategy ~/.claude/skills/rating-prompt-strategy
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Rating Prompt Strategy

You optimize when, how, and to whom an app shows review prompts — maximizing high ratings while minimizing negative ones. Ratings are an App Store ranking signal and a conversion factor on the product page.

## Why Ratings Matter for ASO

- **Search ranking** — Apps with higher ratings rank better for competitive keywords
- **Conversion** — Rating stars are visible in search results; a 4.8 beats 4.2 at a glance
- **iOS:** Rating resets per version (you can request a reset in App Store Connect)
- **Android:** Ratings are permanent and cumulative — one bad period is hard to recover

## The Core Rule

**Only prompt users who have experienced value.** Prompting too early produces low ratings. Prompting at a success moment produces 4–5 star ratings.

## iOS — SKStoreReviewRequest

Apple's native prompt. Rules:
- Shows at most **3 times per year** regardless of how many times you call it
- Apple controls the display logic — calling it doesn't guarantee it shows
- Never prompt after an error, crash, or frustrating moment
- Cannot customize the prompt UI

```swift
import StoreKit

// Call at the right moment
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
}
```

## Android — Play In-App Review API

Google's native prompt. Rules:
- No hard limits, but Google throttles it if called too often
- Show after a clear positive moment
- Cannot determine if the user actually rated (privacy)

```kotlin
val manager = ReviewManagerFactory.create(context)
val request = manager.requestReviewFlow()
request.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val reviewInfo = task.result
        val flow = manager.launchReviewFlow(activity, reviewInfo)
        flow.addOnCompleteListener { /* proceed */ }
    }
}
```

## Timing Framework

### The Success Moment Trigger

Define 1–3 "success moments" in your app where users are most satisfied:

| App Type | Good Prompt Moments | Bad Prompt Moments |
|----------|--------------------|--------------------|
| Fitness | After completing a workout | After skipping a session |
| Productivity | After completing a project/task | After a failed save or sync error |
| Games | After winning a level or beating a boss | After losing or failing |
| Finance | After first successful transaction | After a confusing error |
| Meditation | After completing a session | On cold open |
| Shopping | After a successful purchase/delivery | After a failed checkout |

### Session-Based Rules

Only prompt users who meet all criteria:

```
Criteria to prompt:
✓ Sessions >= 3 (not a first-time user)
✓ Time since install >= 3 days
✓ Has completed [activation event] at least once
✓ No crash in last session
✓ No negative signal (error, cancellation) in current session
✓ Not already rated this version
```

## Pre-Prompt Survey (Recommended)

Before triggering the native prompt, show a single in-app question:

```
"Are you enjoying [App Name]?"
  [Yes, love it!]   [Not really]
```

- **"Yes"** → trigger `SKStoreReviewRequest` / Play In-App Review
- **"Not really"** → show a feedback form (email or in-app), **do not** trigger the native prompt

This filters out dissatisfied users before they can rate you 1–2 stars.

**Expected improvement:** 0.3–0.8 stars on average with a pre-prompt filter.

## Version-Gating (iOS)

iOS allows you to reset ratings per version in App Store Connect. Use this strategically:

- **Reset after a major improvement** — If you fixed the top-complained issues
- **Do not reset** after a controversial change that users disliked
- After a reset, run an aggressive (but filtered) prompt campaign in the first 7 days
- Target your most engaged users first (longest session history)

## Recovering from a Rating Drop

### Diagnosis

1. Check which version caused the drop — correlate with release dates
2. Read the 1-star reviews for that period — find the common complaint
3. Fix the issue in the next release
4. Reply to every 1–3 star review (see `review-management` skill)

### Recovery Campaign

After the fix is shipped:
1. Reply to negative reviews: "Fixed in version X.X — please update and let us know"
2. Some users will update their rating after a reply
3. Run a prompt campaign targeted at your most loyal users (highest session count)
4. Do not prompt users who left a negative review

### Timeline

```
Day 0:   Issue identified — hotfix or patch in progress
Day 1–3: Reply to every negative review acknowledging the issue
Day 7:   Fix shipped — reply to previous negative reviews "Fixed in X.X"
Day 8+:  Enable prompt for sessions >= 5, no crash last 7 days
Week 3:  Monitor rating trend — should recover 0.2–0.5 stars in 2–4 weeks
```

## Prompt Frequency

| Platform | Maximum | Recommended |
|----------|---------|-------------|
| iOS | 3× per 365 days (Apple-enforced) | 1–2× per version |
| Android | No hard limit (Google throttles) | 1× per 30 days per user |

Never show the prompt twice in the same session.

## Output Format

### Rating Strategy Plan

```
Current rating: [X.X] ★  ([N] ratings)
Platform: iOS / Android / Both

Success moments identified:
1. [Event name] — fires when [condition]
2. [Event name] — fires when [condition]

Pre-prompt survey: Yes / No
  If yes: "Are you enjoying [App Name]?" → Yes / Not really

Prompt trigger logic:
  Sessions >= [N]
  Days since install >= [N]
  No crash in last [N] sessions
  [Activation event] completed: yes
  Already rated this version: no

Expected outcome: +[X] stars over [N] weeks

Recovery plan (if rating < 4.0):
  1. [Fix] — ship by [date]
  2. [Reply strategy] — [N] reviews to address
  3. [Prompt campaign] — start [date], target [segment]
```

## Related Skills

- `review-management` — Respond to reviews to recover rating
- `onboarding-optimization` — Fix activation issues that drive 1-star reviews
- `android-aso` — Play In-App Review API context
- `retention-optimization` — Engaged users give better ratings
ab-test-store-listingSkill

When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.

android-asoSkill

When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features. Use when the user mentions "Google Play", "Android", "Play Store", "Play Console", "short description", "full description indexed", "Google Play ASO", or wants Google Play-specific keyword, creative, or ratings strategy. For iOS App Store optimization, see aso-audit and metadata-optimization.

app-analyticsSkill

When the user wants to set up, interpret, or improve their app analytics and tracking. Also use when the user mentions "analytics", "tracking", "metrics", "KPIs", "App Store Connect analytics", "install tracking", "funnel", "attribution", or "how is my app performing". For A/B testing, see ab-test-store-listing. For retention metrics, see retention-optimization.

app-clipsSkill

When the user wants to implement, optimize, or use App Clips for app discovery and conversion. Use when the user mentions "App Clip", "app clip code", "mini app", "instant app", "App Clip card", "App Clip link", "no download required", "instant experience", or wants to understand how App Clips appear in App Store search. For general App Store discoverability, see aso-audit. For marketing campaigns, see ua-campaign.

app-icon-optimizationSkill

When the user wants to design, test, or improve their app icon to increase tap-through rate and conversions in App Store search and browse. Use when the user mentions "app icon", "icon design", "icon A/B test", "icon variants", "tap-through rate", "icon conversion", "icon refresh", or wants to know what makes a good app icon. For screenshot optimization, see screenshot-optimization. For full listing A/B tests, see ab-test-store-listing.

app-launchSkill

When the user wants to plan a launch strategy for a new app or major update. Also use when the user mentions "app launch", "launch plan", "launch checklist", "pre-launch", "launch day", or "how to launch my app". For ongoing ASO after launch, see aso-audit. For paid acquisition during launch, see ua-campaign.

app-marketing-contextSkill

When the user wants to create or update their app marketing context document. Also use when the user mentions "app context", "marketing brief", "app positioning", or when starting any ASO or app marketing project. This is the foundation skill — all other skills check for this context first.

app-preview-videoSkill

When the user wants to plan, script, produce, or optimize App Store Preview videos or Google Play promo videos — the autoplay videos that show in App Store/Play Store search and product pages. Use when the user mentions "App Preview", "preview video", "app store video", "promo video", "Play Store video", "video poster frame", "YouTube promo for Play Store", "30 second app video", "video script", "video specs", or "should I add a preview video". For static screenshots, see screenshot-optimization. For A/B testing the video, see ab-test-store-listing. For broader creative briefs, see screenshot-optimization (covers stills).