ID-Mapping 3.0 明确标识 ID 的语义,那就需要明确哪些 ID 参与用户关联,所以需要先将 ID key 确定,类似于强校验的先定义事件/属性。如果数据中带了没有定义的 ID ,整条事件会拒绝入库。

若找不到满足要求的合适 ID key,可以新建。

详细的预置 id key 列表 

1. API 介绍

本小节中只介绍全域用户关联的 API 功能,其他埋点接口参照基础 API 功能介绍

ID-Mapping 3.0 的最低支持版本

Web SDK v1.22.3

1.1.  用户登录

当用户注册成功或登录成功时,需要调用 SDK 的 login() 方法。

 sensors.login("登录 ID");
JS

1.2. 多用户 ID 关联

用于多个用户 ID 关联时调用,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的关联用户 ID。

调用接口后,对应的 key 和 value 会缓存在本地,后续采集的事件,均包含缓存的 ID 信息。

sensors.bind("$identity_mobile","187****8991")
JS

1.3. 多用户 ID 取消关联

用于多个用户 ID 取消关联时调用,第一个参数为取消关联的 key,第二个参数为对应的取消关联用户 ID。

调用接口后,会发送相关的解绑事件,同时会将本地缓存的 ID 信息中,对应的 key-value 清除(若存在)。

sensors.unbind("$identity_mobile","187****8991")
JS

1.4. 重置匿名 ID

用于重置匿名 iD,可以生成一个新的匿名 ID,也可以传入指定的匿名 ID。

注意:必须在匿名状态下才能使用(也就是 logout 后,或者没有 login 前),否则调用无效。

这个方法和 logout(true),identify 的区别在于这个除了会修改 IDM 2.0 中的 distinct_id 外,还会修改 IDM 3.0 identities 里的 $identity_cookie_id 的值。

// 重置匿名 ID
sensors.resetAnonymousIdentity();
// 修改为指定的匿名 ID
sensors.resetAnonymousIdentity('id-xxxxxxx-xxxxx');
JS

1.5. 获取用户 ID

获取全域用户的 ID。

var presetProperties = sensors.getPresetProperties(); // 可以获取数据体中的 identities 对象:SDKProperties.identities
// 如果是 ES6,同步等方式加载的,直接用上面方式获取即可。
// 如果是异步动态 Script 加载的,需要在 sensors.quick('isReady',function(){}) 在 ready 回调中获取;
JS