Fork me on GitHub

神策大数据2-用户识别

神策大数据2-如何正确标识用户

神策分析使用神策ID,即events表中的user_id和users表中的id,来对每个产品的用户进行标识,即神策ID等价于这两个用户名

神策ID是基于distinct_id按照一定规则生成,典型的两种distinct_id:

  • 设备ID
  • 登陆ID

用户未登录的情况下,神策会选取设备ID作为唯一标识;登录情况下,选取登录ID(users.second_id)或者userid,一个用户既有设备ID(也称匿名ID)又有登录ID

相关ID解释

ID名称 解释
神策ID events.user_id或者users.id
设备ID users.first_id
登录ID users.second_id

设备ID

设备ID并不是设备的唯一标识,不同的设备具有不同的SDK类型。神策针对不同的客户端SDK已经做了处理。

参考资料神策官网:https://manual.sensorsdata.cn/sa/latest/tech_knowledge_user-7540285.html

登陆ID

  • 登陆ID通常是业务数据库里的主键或其他唯一标识。
  • 相对来说更精确或更持久;
  • 用户在使用时未必有登陆或者注册,没有登陆ID
  • 登陆ID是users表中的second_id字段

方案1-只使用设备ID

适用场景

  • 适合没有用户注册体系
  • 极少数用户会进行多设备登陆的产品

局限性

  1. 用一个用户在不同设备使用会被视为不同用户:神策ID不同(设备不同)
  2. 不同的用户在相同的设备登陆会被视为相同用户:神策ID相同(设备相同)

实施

  1. 直接使用SDK产生的设备ID作为distinct_id;可以调用identity接口传入自定义的设备ID
  2. 针对有用户注册体系的产品,可以额外在Event里加入logi_user_id属性标识用户的正式ID

案例

  • distinct_id等价于users.first_id(设备ID)
  • 神策ID:events.users_id=users.id

方案2-关联设备ID和登陆ID(一对一,神策默认方式)

大部分情况下,一个用户一台设备,因此一个用户只会有一个设备ID和一个登录ID

适用场景

满足如下条件,建议考虑ID关联:

  1. 需要贯通用户在一个设备上的注册前后行为:时间为注册前后
  2. 需要贯通一个注册用户在不同设备上登陆之后的行为:区别为不同设备

局限性

  1. 一个设备ID只能和一个登陆ID关联,实际上一台设备可能有多个用户使用,也就是说:多个不同的用户ID可能共用了一个设备ID,不够准确
  2. 一个登陆ID只能和一个设备ID关联,实际上一个用户可能用一个登陆ID在多台设备上登陆,也就是说:一个用户ID在多个不同设备上登陆

实施

客户端接入:使用iOS、Android、JavaScript等SDK进行埋点

服务端接入:使用Java、Python、PHP等SDK,直接使用 BatchImporter / LogAgent / FormatImporter 等工具进行导入

案例

  • X:设备ID
  • A:登陆ID(会和X产生关联)
  • B:X和A已经关联,神策分配用户ID 2 来识别新用户,将登录ID B同时写入users.first_id 、users.second_id
  • 1、2:神策ID

B与X关联失败,因为X和A已经关联;所以重新分配了一个神策ID(2)

当用户更换设备为Y,未登录,则神策ID为3;一旦用户开始登陆,便会使用神策ID 1,因为A和X已经关联

方案3-关联设备ID和登录ID(多对一)

一个用户有多台设备,神策提供了多个设备ID对应一个登录ID的方案。

适用场景

一个用户在多个设备,比如PC端、APP端都可能需要进行登录

局限性

  1. 一个设备ID只能和一个登陆ID关联,实际上一台设备很可能有多个用户使用
  2. 一个设备ID和一个登录ID一旦关联,就不能解除(自动解除),实际上设备ID和登录ID应该是动态关联更合理

实施

实施同方案2,区别在于神策服务端的处理不同

  1. 已经关联过设备的登录ID,可以和新的设备ID进行关联,并存入users.$device_id_list
  2. 例行任务每天读取users表中需要修复的ID列表,即$device_id_list

案例

与方案二的区别在于:当用户在不同的设备上使用账号A进行登录的时候,设备ID Y和登陆ID A关联成功(方案二中失败),神策ID依旧为1,同时将设备ID Y 添加到users.$device_id_list

用户关联方式判断

1
2
3
4
5
6
7
select
id
,first_id
,second_id
,$device_id_list -- 结果为空说明为一对一方式
from users
where $device_id_list is not null;

本文标题:神策大数据2-用户识别

发布时间:2021年01月07日 - 00:01

原始链接:http://www.renpeter.cn/2021/01/07/%E7%A5%9E%E7%AD%96%E5%A4%A7%E6%95%B0%E6%8D%AE2-%E7%94%A8%E6%88%B7%E8%AF%86%E5%88%AB.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea