主题
常见问题 (FAQ) 🙋
Q1:如果多个事件共用一个事件属性,事件属性类型不一致可以入库吗?
事件属性类型不一致,不可以入库,属性的数据类型取决于上报的第一条数据的属性类型
javascript
-------------------------------事件1
{
"init_part_date": "2024-12-01",
"init_part_event": "event_name1", // 事件1
"properties": {
"area": "GLOBAL",
"codexlevel": 1,
"enchanting_power",
"is_new_user": false, // 布尔值
}
...
其他信息
...
}
-------------------------------事件2
{
"init_part_date": "2024-12-01",
"init_part_event": "event_name2", // 事件2
"properties": {
"area": "GLOBAL",
"codexlevel": 1,
"enchanting_power",
"is_new_user": 0, // 数值,不能正常入库,需要改成布尔值
}
...
其他信息
...
}
Q2: 属性类型上传错误解决方案
场景描述
信息
属性的数据类型取决于上报的第一条数据的属性类型,基于可能存在下面的场景:
1. 首次上报类型是文本(string
)
首次上报"注册时间"时将时间传成了文本,后续的数据会继续按照文本进行上报。
2. 首次上报类型不是文本(string
)
业务调整,原有类型不再支持,需要修改属性类型。比如order_id
的首次上报类型为数值,后续数据类型为文本。
解决方案
一、已经上传到YX的历史数据
- 先在代码中更正该属性数据类型.
- 联系管理员修改属性的数据类型.
- :修改类型后,已传入的该属性的数据会被清空,请谨慎评估.
二、保留已经上传到YX的历史数据
方式1: 虚拟属性做数据类型转换,仅适用于首次上报是文本类型
信息
- 延续原上报的类型到
YX
(如数值(number
)传成字符串(string
),继续按字符串(string
)类型上报) - 设置虚拟属性,转换属性的类型.例如:数值(
number
)传成字符串(string
),可以设置如下虚拟事件属性。 - 在分析时使用上一步设置的虚拟属性进行筛选或分组.
方式2: 保留旧属性+上报新属性
信息
- 传新的属性到
YX
,并区分属性名。比如原属性名为order_id
,新属性名可设为order_id_new
. - 原旧属性不再上传,设置虚拟属性,对新旧属性做判断,取两个字段中的非空值字段的值。虚拟属性SQL创建规则:
coalesce("旧属性名","新属性名")
. - 在分析时使用上一步设置的虚拟属性进行筛选或分组.