新媒易动态
NEWS CENTER
NEWS CENTER
2021-04-23
在进行埋点方案设计时,为了对用户唯一性进行标识,需要在方案中写明如何采集用户匿名状态下的ID(设备ID)及登录状态下的登录ID,这里分别以first_id、second_id命名,后续文中涉及到的first_id、second_id均指匿名ID、登录ID。
基于采集到的与用户相关的first_id与second_id,在行为分析系统后台通过一定的关联规则,生成一个能够唯一标识用户的user_id,在以后的分析过程中,与用户量有关的指标均以user_id为基础进行统计分析。
匿名ID即设备ID,在不同类型的客户端上有所不同,且同一类型的客户端上,设备ID也并非是唯一的。例如 Web 端的 Cookies 有可能被各种安全卫士清空,而 iOS 端的 IDFV 在不同厂商的 App 间是不同的。
1)Android端
安卓系统经过多次升级,对权限控制越来越严格,唯一识别手机的方法也在不断发生变化。
Android端适合作为设备ID标识符的有OAID、Android_id、UUID、IMEI,IMEI是最适合做设备唯一标识的,但获取IMEI需要授予权限且Android 10以后不再开放IMEI的权限,App 卸载重装 UUID会发生变化。
综合起来,Android端比较适合作为标识符的是Android_id,如果 Android_Id 获取不到,则获取随机的UUID。
2)iOS端
苹果系统,可用于识别唯一设备的标识不像Andriod那样多。综合起来,苹果系统生成设备ID的标识符先后顺序应该是IDFA -> IDFV ->UDID,即优先获取IDFA,获取不到再获取IDFV,获取不到时,再获取UUID。
3)JavaScript
默认情况下使用 cookie_id,存贮在浏览器的cookie中。
4)微信小程序
一般使用UUID,但是删除小程序,UUID 会变。为了保证设备 ID 不变,建议获取并使用 openid。
如果选择使用 openid 的话,请注意操作暂存,由于获取 openid 是一个异步的操作,但是冷启动事件等会先发生,所以我们会把先发生的操作,暂存起来,等获取到 openid 后才会发送数据。
在介绍用户标识的实现方法前,先带大家了解一下,当前行为数据分析系统数据储存的模型。
目前主流的数据储存模型是用一张events表存储与用户相关的事件,其中event表中有个distinct_id字段,在事件发生时用户如处于匿名状态,则记录设备ID,登录状态下记录登录ID,用users表用来储存用户的匿名ID(设备ID)、登录ID、基于关联规则生成的user_id等用户属性。
这样通过events表和users表,就可以成功的把用户与事件联系在一起。
适用场景:适合没有用户注册体系,或者极少数用户会进行多设备登录的产品,如工具类产品、搜索引擎、部分电商等。
场景举例:
行为序列说明:
在上述场景中,仅使用设备 ID 识别用户的好处就是逻辑很简单,当然局限性也很明显:
适用场景:成功关联设备 ID 和登录 ID 之后,用户在该设备 ID 上或该登录 ID 下的行为就会贯通,被认为是一个user_id发生的。在进行事件、漏斗、留存等用户相关分析时也会算作一个用户。所以一般来说,当遇到以下场景时,考虑一对一的关联: