跳转到主要内容
使用 OneSignal 应用内消息引导用户在不离开应用的情况下提交 App Store 或 Google Play 评价。本教程涵盖无代码和需要代码两种方案。
带有“立即评价”按钮的应用内消息,提示用户为应用评分

设置

1. 创建消息

导航到 Messages > In-App > New In-App 或打开现有的应用商店评价模板。 为评价按钮添加操作 ID:
OneSignal 应用内消息编辑器,显示按钮元素上的 Custom Action ID 字段设置为 review

2. 添加触发器

触发器控制消息显示的时机。您可以选择无代码或基于代码的方案。 无代码:设置受众以定向您希望获取评价的用户——例如,会话数较多且长期使用应用的用户。 基于代码:使用 SDK 的 addTrigger 方法,根据用户操作以编程方式显示消息。避免在用户正在执行重要任务时显示提示。 在本示例中,In-App Trigger 键为 ask_for_review,值为 show。键和值可以是任意内容,但必须与您传递给 addTrigger 的内容匹配: OneSignal.InAppMessages.addTrigger("ask_for_review", "show");
OneSignal 仪表板,显示应用内消息触发器设置为 ask_for_review 等于 show

3. 处理应用商店评价提示

您可以使用无代码或基于代码的方案引导用户留下评价。
  1. 更新细分以使用”Device Type is Android”过滤器。
  2. 复制应用内消息,并将复制版本的细分更新为使用”Device Type is iOS”过滤器。您应该有两个应用内消息,分别对应两个独立的细分。
  3. 在”Review Now”按钮上添加 URL Click Action,链接至您的应用商店页面:
使用 SDK 的 InAppMessages.addClickListener 方法检测评价按钮被点击的时机(通过检查 Action ID),然后调用 iOS 或 Android 原生评价 API 来展示评分模态框。
OneSignal.InAppMessages.addClickListener((event) async {
  if (event.result.actionId == 'review') {
    if (await inAppReview.isAvailable()) {
      inAppReview.requestReview();
    }
  }
});
本示例使用 in_app_review Flutter 包。请根据您的平台进行适配——iOS 请参见 RequestReviewAction,Android 请参见 Google Play In-App Reviews API

4. 安排和启用

Apple 每 365 天内最多显示原生评价提示三次。Google Play 强制执行基于时间的配额,但未公布确切限制——在短时间内(不足一个月)多次调用 API 可能不会显示对话框。 为了保持在这些限制内,将应用内安排设置为每 17 周显示一次:
OneSignal 应用内消息调度设置,显示总共 40 次显示,间隔 17 周
为了增加正面评价,请定向那些有良好体验的用户——例如,会话数较多的用户,或通过之前应用内消息提供正面反馈的用户。为这些用户设置 标签,并创建细分作为评价提示的受众。

FAQ

Apple 的原生评价提示多久可以出现一次?

Apple 每个用户每 365 天内最多显示 RequestReviewAction 提示三次。这由系统强制执行——您的应用无需自行追踪次数。参见 Requesting App Store Reviews

Google 的原生评价提示多久可以出现一次?

Google Play 强制执行配额,但未公布确切限制。在短时间内(不足一个月)多次调用 launchReviewFlow 可能不会显示对话框。该配额是 Google 可随时更改的实现细节。参见 In-App Reviews quotas

非原生应用(Flutter、React Native、Expo)可以使用此功能吗?

可以。使用平台专属插件调用原生评价 API——例如 Flutter 使用 in_app_review,Expo 使用 StoreReview。无论使用何种框架,OneSignal 应用内消息和点击监听器的使用方式相同。