Google Play应用内评论API:大概多久会显示对话框?

31

这份文档对于何时请求应用程序评论有所说明:

在用户体验应用程序或游戏后足够长的时间以提供有用的反馈后,触发应用内评论流程。

不要过度提示用户进行评论。这种方法有助于减少用户的沮丧感,并限制API使用(请参阅配额部分)。

但这样说很模糊,我们可以经常触发它吗(例如,在游戏的每个级别后)或者我们应该在应用内添加等待时间(例如,在每个级别之后,但最少等待一个月)?

iOS 上有类似的 API,观察到弹出窗口大约“每年显示三次”。了解类似的粗略估计将有助于设计正确使用 API 并消除不必要的用户沮丧。


1
“我们可以经常触发它(比如在游戏的每个关卡之后)吗?”听起来你真的很喜欢收到负面评价... - Marcin Orlowski
4
API有配额限制,如果该配额与iOS相似(允许每年约三次对话框),我们可以频繁触发它并让API处理。如果它允许更频繁的对话框(比如每周一次),我们需要实现自定义逻辑来避免负面评论。问题是是否需要自定义逻辑。 - David Vávra
1
虽然这是一个实现细节,确切的配额可能会有所变化,但我们已经更新了文档以更好地澄清。https://developer.android.com/guide/playcore/in-app-review#quotas - Marcel
2个回答

21

关于用户是否已经对您的应用程序进行了评级,或者评级对话框是否是通过In-App Review API本身显示的,我们无法得到响应。但您可以获得以下保证:

  • 如果应用程序已经被用户评价过,他们将不会再次被提示进行评价。
  • 您可以通过内部应用程序共享或内部测试轨道进行测试,而免受配额限制。

如果您担心可能会太频繁地显示对话框,我们建议您以持久方式记住上一次在本地调用launchReviewFlow的时间。

让我们以每个级别调用launchReviewFlow为例:

  • 根据级别的大小,这可能太多了。
  • 您将不知道是否已显示对话框。
  • 一旦用户对您的应用程序进行了评分,对话框将不再显示。

来源


3
有没有办法检查/听取用户提交的评论是否已被取消或解除或暂不处理? - Mayur Bhola
2
不,这不是该库的预期功能。 - Ben Weiss
8
用户已经评论过应用程序后,是否有文档说明 prompt 不会再次显示?我在这里找不到相关信息:https://developer.android.com/guide/playcore/in-app-review - Richeek
1
如果用户已经通过访问应用商店中的应用页面对应用进行了评分,那么如果我尝试向该特定用户显示“应用内”评论对话框,它会出现吗? - Aman Verma
3
不会。在这里提到:https://developer.android.com/guide/playcore/in-app-review/test#troubleshooting "用户已经对应用进行了评论。" - gopi1410
显示剩余2条评论

0
Google评论对话框API
API版本
implementation 'com.google.android.play:core:1.8.0'
有一个标志可以知道对话框是否打开/显示,我已经使用过它并且它有效,这个关键字是"isNoOp",当它为false时,对话框可见,当为true时,对话框不可见。
 private fun askForReview() {
        val manager = ReviewManagerFactory.create(this)
        manager.requestReviewFlow().addOnCompleteListener { request ->
            if (request.isSuccessful) {
                val reviewInfo = request.result
                logWarning("isSuccessful Result ${reviewInfo.toString()}")

                manager.launchReviewFlow(this, reviewInfo)
                    .addOnFailureListener {

                        logWarning("addOnFailureListener  data = ${it.fillInStackTrace()}")
                        logWarning("addOnFailureListener, reason=$it")

                    }.addOnCompleteListener {

                        logWarning("addOnCompleteListener isComplete = ${it.isComplete} - isSuccessful= ${it.isSuccessful}")
                        logWarning("addOnCompleteListener it = ${it.toString()}")
                        logWarning("addOnCompleteListener result = ${it.result.toString()}")
                        logWarning("addOnCompleteListener exception = ${it.exception.toString()}")

                        val isNoOp = reviewInfo.toString().substring(reviewInfo.toString().indexOf("isNoOp")+7,reviewInfo.toString().length-1)

                        logWarning("addOnCompleteListener data.isNoOp = $isNoOp")


                    }.addOnSuccessListener {
                        logWarning("addOnSuccessListener ${it.toString()}")
                    }

            } else {
                logWarning("isSuccessful == false")
                logWarning("In-app review request failed, reason=${request.exception}")
            }
        }
    }
    fun logWarning(logs:String?){
        if (logs != null) {
            Log.e("googlereview",logs)
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接