如何在Firebase/Google Analytics分析仪表板中隐藏测试型应用内购买(In-App Purchases)数据?
别担心,我之前做项目时也碰到过这个糟心的问题——测试内购的数据混进真实收入统计里,完全打乱了数据分析的准确性。这里有几个实用的解决办法,你可以根据自己的情况选:
给测试用户/设备打标记,通过用户属性过滤
在测试设备或者测试账号登录时,给Firebase Analytics设置一个自定义用户属性,比如is_test_user,值设为true。之后在Firebase Analytics的仪表板里创建过滤器,把带有这个属性的用户数据直接排除掉。
举个Android代码的例子:val firebaseAnalytics = FirebaseAnalytics.getInstance(context) firebaseAnalytics.setUserProperty("is_test_user", "true")注意一定要确保这段代码只在测试环境触发,正式版本里要去掉或者通过编译开关控制,别不小心把真实用户也标记成测试用户了。
给测试内购事件添加自定义参数,过滤特定事件
当你发起测试内购时,在记录purchase事件的时候,额外加一个自定义参数,比如is_test_purchase,值设为true。之后在Analytics里创建基于这个参数的过滤器,把所有带有该标记的购买事件排除在外。
代码示例:val bundle = Bundle().apply { putString(FirebaseAnalytics.Param.CURRENCY, "USD") putDouble(FirebaseAnalytics.Param.VALUE, 9.99) // 添加测试标记 putString("is_test_purchase", "true") } firebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE, bundle)彻底隔离测试与生产环境
这个是最省心的方法——直接创建两个独立的Firebase项目:一个专门用于测试,一个用于正式生产。测试的时候用测试项目的配置文件,发布正式版本就换成生产项目的配置。这样测试数据完全不会流入生产环境的Analytics仪表板,根本不用费心过滤。
操作起来也简单,在Firebase控制台点击创建新项目就行,然后分别配置对应的Android应用,把各自的google-services.json文件替换到项目里。利用Google Analytics的视图过滤器
如果用的是GA4,可以在数据流的“过滤器”设置里创建排除规则:比如根据测试设备的ID、测试用户的ID,或者之前设置的自定义事件参数来过滤掉测试数据。设置的时候建议先开启“预览”模式,确认不会误删真实数据后再正式启用。
备注:内容来源于stack exchange,提问作者Dandre

