【问题标题】:Android: is there a way to recognize test purchases at runtime?Android:有没有办法在运行时识别测试购买?
【发布时间】:2017-01-20 23:36:15
【问题描述】:
据此
https://support.google.com/firebase/answer/6317485?hl=en
in_app_purchase 事件将在用户完成应用内购买时自动跟踪。
问题发生在测试用户身上。
他们不收费(因为他们是在谷歌开发者控制台的“测试帐户”列表中输入的),但也会为他们跟踪 in_app_purchase 事件。
因此,分析和实际支付之间存在差异。
有没有办法将真实购买和“测试”购买分开?
或者,也许是一种禁用自动跟踪某些事件并手动发送它们的方法?以及在这种情况下如何在运行时识别“测试”购买(为了不发送 in_app_purchase 事件)
【问题讨论】:
标签:
android
in-app-purchase
firebase-analytics
【解决方案1】:
我知道这有点晚了,但把我的 2 美分放在这里:
我想您可能已经知道 Firebase Analytics 中针对 Android 的测试购买已被计算在内,如 here(请参阅 in_app_purchases),“注意:付费应用购买收入、订阅收入(仅限 Android)和退款是不会自动跟踪。您报告的收入可能与您在 Google Play 开发者控制台中看到的值不同。被标记为无效或沙盒(测试)的事件将被忽略。只有 iOS 事件被标记为沙盒”。
也就是说,没有办法在运行时识别此类购买并避免它们被报告给 Android 并填充您的产品应用数据。但是,目前只有两种方法可以处理它(在我看来):
- 将您的产品数据与测试数据分开:查看此document,了解如何在 Firebase 中设置单独的应用来记录您的测试数据。
- 为您的测试应用禁用分析收集:如here 所示,您可以暂时或永久禁用 Firebase Analytics 数据收集。它包括能够在运行时禁用和启用它的选项。
不过,考虑到您的情况,我会认为选项 #2 有点违反直觉,而是选择 #1。
在运行时禁用向 Google Analytics(分析)报告测试购买数据需要做两件事:
- 了解 Google Play 系统如何识别测试购买、用户设备针对此类事件发送什么事件以及识别/拦截该事件的能力。
- 防止事件在运行时报告给 Firebase Analytics 的选项。
在这种情况下,#2 目前绝对不是一个选项。因此,我们在这里所能做的就是联系 Firebase 支持并请求该功能。但在那之前,我看不到另一种方式。但如果其他人有,我很好奇并愿意接受建议。 :)