1. 用户关联

用户关联是为了对用户进行唯一标识,提高用户行为分析的准确性。目前神策提供了简易用户关联用于支撑业务场景。

2. 用户属性

具体根据业务需求参照以下链接。

3. 埋点事件采集

在 SDK 初始化完成之后,您可以通过以下接口进行数据埋点。

3.1. 追踪事件

具体根据业务需求参照以下链接。

3.2. 物品元数据上报

在神策推荐项目中,客户需要将物品元数据上报,以开展后续推荐业务的开发与维护。神策分析 SDK 提供了设置与删除物品元数据的方法。

item_id(物品 ID )与 item_type (物品所属类型)共同组成了一个物品的唯一标识。所有的 item 系列方法都必须同时指定物品 ID 及物品所属类型这两个参数,来完成对物品的操作。

3.2.1. 设置物品

直接设置一个物品,如果已存在则覆盖。除物品 ID 与 物品所属类型外,其他物品属性需在 $properties 中定义。

物品属性中,属性名称与属性值的约束条件与事件属性相同,详细说明请参考 数据格式

// 示例 
// 商品 Type
const itemType = 'book'
// 商品 ID
const itemId = '0321714113'
// 商品信息
const properties = {
  name: 'C++ Primer',
  price: 31.54,
}
// 添加商品
sa.itemSet(itemType, itemId, properties)
CODE

3.2.2. 删除一个物品

如果物品不可被推荐需要下线,删除该物品即可,如不存在则忽略。

除物品 ID 与 物品所属类型外,不解析其他物品属性。

// 示例 
// 商品 Type
const itemType = 'book'
// 商品 ID
const itemId = '0321714113'
// 删除商品
sa.itemDelete(itemType, itemId)// 商品 Type
CODE

4. 事件属性

如前文中的样例,追踪的事件可以设置自定义的事件属性,例如浏览商品事件中,将商品 ID、商品分类等信息作为事件属性。在后续的分析工作中,事件属性可以作为统计过滤条件使用,也可以作为维度进行多维分析。对于事件属性,神策分析有一些约束:

  • 事件属性是一个 map[string]interface{} 对象
  • map 中每个元素描述一个属性,Key 为属性名称,必需是 string 类型
  • map 中,每个元素的 Value 是属性的值,支持 stringintfloat64[]stringtime.Time

对于神策分析中事件属性的更多约束,请参考 数据格式

4.1. 系统预置属性

如前文中样例,事件属性中以 "$" 开头的属性为系统预置属性,在自定义事件属性中填入对应 "$" 开头的属性值可以覆盖这些预置属性:

  • $ip - 填入该属性,神策分析会自动根据 IP 地址解析用户的省份、城市信息,该属性值为 string 类型;
  • $time - 填入该属性,神策分析将事件时间设置为属性值的时间,该属性值取值为 int64 类型。请注意,神策分析默认会过滤忽略 365 天前或 3 天后的数据,如需修改请联系我们。

关于其他更多预置属性,请参考 数据格式 中 "预置属性" 一节。

4.2. 事件公共属性

特别地,如果某个事件的属性,在所有事件中都会出现,可以通过 RegisterSuperProperties() 将该属性设置为事件公共属性。例如将服务器的应用版本及机房地址设置为事件的公共属性,示例如下:


	superProperty := map[string]interface{}{
		"ServerVersion": "1.2",
		"Location":      "BeiJing",
	}
	sa.RegisterSuperProperties(superProperty)
CODE

使用 ClearSuperProperties() 会删除所有已设置的事件公共属性。使用 UnregisterSuperProperty() 会删除指定 Key 的公共属性。

当事件公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖事件公共属性。