Skip to content

常见问题 (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的历史数据
  1. 先在代码中更正该属性数据类型.
  2. 联系管理员修改属性的数据类型.
    • :修改类型后,已传入的该属性的数据会被清空,请谨慎评估.
二、保留已经上传到YX的历史数据
方式1: 虚拟属性做数据类型转换,仅适用于首次上报是文本类型

信息

  1. 延续原上报的类型到YX(如数值(number)传成字符串(string),继续按字符串(string)类型上报)
  2. 设置虚拟属性,转换属性的类型.例如:数值(number)传成字符串(string),可以设置如下虚拟事件属性。
  3. 在分析时使用上一步设置的虚拟属性进行筛选或分组.

虚拟属性数值转文本

方式2: 保留旧属性+上报新属性

信息

  1. 传新的属性到YX,并区分属性名。比如原属性名为order_id,新属性名可设为order_id_new.
  2. 原旧属性不再上传,设置虚拟属性,对新旧属性做判断,取两个字段中的非空值字段的值。虚拟属性SQL创建规则:coalesce("旧属性名","新属性名").
  3. 在分析时使用上一步设置的虚拟属性进行筛选或分组.

虚拟属性取有值的字段