Android:有没有办法在运行时识别测试购买?

根据这个

https://support.google.com/firebase/answer/6317485?hl=en

当用户完成应用内购买时,将自动跟踪in_app_purchase事件.

测试用户会出现此问题.
它们不收费(因为它们被输入谷歌开发者控制台的“测试帐户”列表中),但也会跟踪in_app_purchase事件.
因此,分析与实际支付之间存在差异.

有没有办法以某种方式分离真实和’测试’购买?

或者,也许是一种禁用自动跟踪某些事件并手动发送的方法?以及如何在运行时识别“测试”购买(为了不发送in_app_purchase事件)

最佳答案 我知道这有点晚了,但在这里放下我的2美分:

我想您可能已经知道Firebase Analytics中针对Android的测试购买会被记录,如here所述(请参阅in_app_purchases),“注意:付费应用购买收入,订阅收入(仅限Android)和退款不会自动跟踪.报告的收入可能与您在Google Play开发者控制台中看到的值不同.标记为无效或沙盒(测试)的事件将被忽略.只有iOS事件被标记为沙箱“.

也就是说,没有办法在运行时识别这些购买并避免它们被Android报告并填充您的prod应用数据.但是,目前只有几种方法可以处理它(在我看来):

>将您的产品数据与测试数据分开:查看此document,了解如何在Firebase中设置单独的应用程序以记录您的测试数据.
>禁用测试应用程序的分析收集:如here所示,您可以暂时或永久禁用Firebase Analytics数据的收集.它包括能够在运行时禁用和启用它的选项.

虽然,考虑到你的情况,我认为选项#2有点反直觉,而不是#1.

在运行时禁用向Analytics报告测试购买数据需要两件事:

>了解Google Play系统如何识别测试购买,从用户设备发送的针对此类事件的事件,以及识别/拦截该事件的能力.
>可以防止在运行时向Firebase Analytics报告事件.

在这种情况下,#2肯定不是目前的选项.因此,我们在此处所做的就是联系Firebase支持并请求该功能.但在那之前,我没有看到另一种方式.但是如果其他人有的话,我很好奇并愿意接受建议. 🙂

点赞