1. 全域用户关联介绍

ID-Mapping 即用户关联,ID-Mapping 3.0 实现全域用户关联,将同一用户的不同 ID 打通,以便贯通所有用户行为数据,方便系统地进行用户行为分析,支持用户标识之间的自由关联和解绑。

以下是一些各业务端用户 ID 的示例:

2. ID key 获取

查找合适的 id-key 使用,可以按照以下图示在神策分析平台查找合适的 id key 使用,比如要绑定手机号,使用 $identity_mobile

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

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

详细的预置 id key 列表 

3. API 说明


SDK 升级 3.0 之后不能回退到 2.0 的版本

3.1. Web

ID-Mapping 3.0 的各端最低支持版本

Web JS SDK v1.22.3 

用户登录时调用,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的具体用户 ID。

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

Web JS SDK

sensors.loginWithKey('key','value')
JS

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

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

Web JS SDK

sensors.bind('$identity_mobile','187****8991')
CPP

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

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

Web JS SDK

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


3.2. 小程序

ID-Mapping 3.0 的各端最低支持版本

微信小程序 SDK v1.17.6

用户登录时调用,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的具体用户 ID。

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

小程序 SDK

sensors.loginWithKey('key','value')
JS

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

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

小程序

sensors.bind('$identity_mobile','187****8991')
CPP

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

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

小程序

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

多用户 ID 关联微信用户 Openid 时调用,参数为对应的关联用户 Openid。(v1.18.3 及以上版本支持)

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

小程序 SDK

sensors.bindOpenid('Openid')
JS

多用户 ID 取消关联微信用户 Openid 时调用,参数为对应的关联用户 Openid。(v1.18.3 及以上版本支持)

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

小程序 SDK

sensors.unbindOpenid('Openid')
JS

多用户 ID 关联微信用户 Unionid 时调用,参数为对应的关联用户 Unionid。(v1.18.3 及以上版本支持)

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

小程序 SDK

sensors.bindUnionid('Unionid')
JS

多用户 ID 取消关联微信用户 Unionid 时调用,参数为对应的关联用户 Unionid。(v1.18.3 及以上版本支持)

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

小程序 SDK

sensors.unbindUnionid('Unionid')
JS

3.3. Android

ID-Mapping 3.0 的各端最低支持版本

Android SDK v6.3.0

用户登录时调用,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的具体用户 ID。

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

android SDK

 SensorsDataAPI.sharedInstance().loginWithKey(String loginIDKey, String loginId);
JAVA

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

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

Android SDK

SensorsDataAPI.sharedInstance().bind("$identity_mobile","187****8991")
JAVA

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

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

Android SDK

SensorsDataAPI.sharedInstance().unbind("$identity_mobile","187****8991")
JAVA

3.4. iOS

ID-Mapping 3.0 的各端最低支持版本

iOS SDK v4.3.0

用户登录时调用,第一个参数从详细的预置 id key 列表中获取,第二个参数为对应的具体用户 ID。

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

iOS SDK

 [[SensorsAnalyticsSDK sharedInstance] loginWithKey:@"key" loginId:@"value"];
CPP

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

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

iOS SDK

[[SensorsAnalyticsSDK sharedInstance] bind:@"$identity_mobile" value:@"187****8991"];
JS

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

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

iOS SDK

[[SensorsAnalyticsSDK sharedInstance] unbind:@"$identity_mobile" value:@"187****8991"];
CPP


3.5. Java

ID-Mapping 3.0 的各端最低支持版本

Java SDK v3.4.3


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

bind 接口需要至少传入两个 ID 信息,单一 ID 信息无法完成绑定操作

Java SDK

SensorsAnalyticsIdentity identity = SensorsAnalyticsIdentity.builder()
        .addIdentityProperty("$identity_mobile", "123")
		.addIdentityProperty("$identity_email", "a@a.com")
        .build();
sa.bind(identity);
JAVA


用户 ID 取消关联时调用,参数 key 为取消关联的 key,value 为对应的取消关联用户业务 ID。

调用接口后,会发送相关的解绑事件。

Java SDK

SensorsAnalyticsIdentity identity = SensorsAnalyticsIdentity.builder()
        .addIdentityProperty("$identity_mobile", "123")
        .build();
sa.unbind(identity);
JAVA


3.6. C#

ID-Mapping 3.0 的各端最低支持版本

C# SDK v2.1.0


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

Bind 接口需要传递 Identity 列表,列表中至少要包含 2 个值。

C# SDK

List<SensorsAnalyticsIdentity> identities = SensorsAnalyticsIdentityHelper.CreateBuilder()
         .AddIdentityProperty("$identity_mobile", "123")
         .AddIdentityProperty("$identity_email", "a@a.com")
		 .Build();
sa.bind(identities)
C#


用户 ID 取消关联时调用,参数 key 为取消关联的 key,value 为对应的取消关联用户业务 ID。

调用接口后,会发送相关的解绑事件。

C# SDK

SensorsAnalyticsIdentity identity = new SensorsAnalyticsIdentity("$identity_mobile", "123")
sa.unbind(identity);
C#