Amplitude Java SDK设置用户属性时出现$price等零值属性如何解决
Amplitude Java SDK 上报非预期营收属性的解决方案
问题根因
你使用的1.2.3版本Amplitude Java SDK中,Event类默认会将营收相关的$price、$quantity、$revenue三个属性初始化为0值,即便你没有主动赋值,事件上报序列化时也会携带这三个属性。
解决方案
你可以选择以下任意一种方式解决:
- 方案1:显式置空对应属性
构造事件后、上报前,主动将三个营收属性设为null,SDK会自动忽略空值字段不上报,代码修改示例如下:
该方案改造成本最低,不会影响其他业务逻辑。event.userProperties = userProps; // 新增以下三行代码 event.price = null; event.quantity = null; event.revenue = null; client.logEvent(event); - 方案2:升级SDK版本
Amplitude官方在后续的2.x及更高稳定版中已经修复了该默认值问题,没有其他依赖冲突的前提下,你可以直接升级SDK版本:compile group: 'com.amplitude', name: 'java-sdk', version: '2.1.0' // 替换为官方最新稳定版即可 - 方案3:自定义事件过滤规则
如果既不想改字段也不想升版本,可以自定义事件序列化逻辑,上报前过滤掉值为0的营收类特殊属性。
注意事项
如果后续需要上报营收类事件,正常给三个属性赋值即可,上述修改不会影响营收事件的正常上报。
内容的提问来源于stack exchange,提问作者Manan Shah
相关产品推荐
相关产品推荐

