Loading...
Loading...
Compare original and translation side by side
import StoreKit
// Call at the right moment
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}import StoreKit
// Call at the right moment
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}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 */ }
}
}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 */ }
}
}| 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 |
| 应用类型 | 合适的提示时机 | 不合适的提示时机 |
|---|---|---|
| 健身类 | 完成一次锻炼后 | 跳过训练课程后 |
| 生产力类 | 完成项目/任务后 | 保存失败或同步错误后 |
| 游戏类 | 通过关卡或击败BOSS后 | 失败或输掉比赛后 |
| 金融类 | 首次成功交易后 | 遇到令人困惑的错误后 |
| 冥想类 | 完成一次冥想会话后 | 冷启动时 |
| 购物类 | 成功完成购买/收货后 | 结账失败后 |
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评分请求条件:
✓ 会话次数 >= 3(非首次使用的用户)
✓ 安装后已过 >= 3天
✓ 至少完成过一次【激活事件】
✓ 上一次会话未出现崩溃
✓ 当前会话无负面信号(错误、取消操作)
✓ 尚未对当前版本评分"Are you enjoying [App Name]?"
[Yes, love it!] [Not really]SKStoreReviewRequest“你喜欢【应用名称】吗?”
[是的,超喜欢!] [不太喜欢]SKStoreReviewRequestreview-managementreview-managementDay 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第0天: 确定问题——紧急修复或补丁开发中
第1-3天: 回复每一条负面评论,告知用户已知晓问题
第7天: 修复方案上线——回复之前的负面评论“问题已在X.X版本中修复”
第8天及以后: 向满足会话次数>=5、近7天无崩溃的用户开放评分提示
第3周: 监控评分趋势——2-4周内评分应能恢复0.2-0.5星| 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 |
| 平台 | 上限 | 推荐频率 |
|---|---|---|
| iOS | 每年3次(苹果强制限制) | 每个版本1-2次 |
| Android | 无硬性限制(谷歌会限流) | 每位用户每30天1次 |
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]当前评分:[X.X] ★ (共[N]条评分)
平台:iOS / Android / 两者
已确定的成功时刻:
1. [事件名称] —— 触发条件:[具体条件]
2. [事件名称] —— 触发条件:[具体条件]
是否使用预提示调查:是 / 否
如果是:“你喜欢【应用名称】吗?” → 是 / 不太喜欢
评分请求触发逻辑:
会话次数 >= [N]
安装后已过天数 >= [N]
最近[N]次会话无崩溃
已完成【激活事件】:是
已对当前版本评分:否
预期效果:[N]周内评分提升+[X]星
恢复计划(若评分<4.0):
1. [修复内容] —— 上线日期:[具体日期]
2. [回复策略] —— 需处理[N]条评论
3. [评分提示活动] —— 启动日期:[具体日期],目标群体:[用户细分]review-managementonboarding-optimizationandroid-asoretention-optimizationreview-managementonboarding-optimizationandroid-asoretention-optimization