# 多实例
# 一、功能介绍
我们支持使用多个Appid,创建SDK实例,我们简称为多实例。通过多实例功能,您可以上报数据到不同的项目。
# 二、创建多实例
传入不同的 APP ID 完成 SDK 初始化,即可创建多个 SDK 实例:
//初始化配置1
var config_1 = {
appId: "app-id-1",
serverUrl: "https://youserverurl.1.com"
};
TDAnalytics.init(config_1);
//初始化配置2
var config_2 = {
appId: "app-id-2",
serverUrl: "https://youserverurl.2.com"
};
TDAnalytics.init(config_2);
//上报事件到配置1(不传app-id,默认上报到配置1)
TDAnalytics.track({
eventName: 'event_from_appid_1'
});
//上报事件到配置1(指定app-id-1)
TDAnalytics.track({
eventName: 'event_from_appid_1'
}, 'app-id-1');
//上报事件到配置2(指定app-id-2)
TDAnalytics.track({
eventName: 'event_from_appid_2'
}, 'app-id-2');
请注意多个 SDK 实例的 APP ID 必须不同,多实例之间的大多数数据是不共通的,详情可参考第四节“多实例间的数据、设置共享”。
# 三、多实例间的数据共享
大多数接口都是由实例对象所调用,因此绝大部分数据与设置在多 APPID 实例、父实例与轻量实例间是不共享的,但有部分数据与设置会对所有实例生效,以下是所有数据与设置在多实例间是否共享的详细说明:
- 账号相关信息
- 系统默认生成的访客 ID
#distinct_id
:共享 - 调用
identify
设置的访客 ID#distinct_id
:不共享 - 调用
login
设置的账号 ID#account_id
:不共享
- 事件上报
track
与用户属性上报user_set
、user_setOnce
、user_add
、user_delete
:不共享 - 公共属性
setSuperProperties
和动态公共属性setDynamicSuperPropertiesTracker
:不共享 - 记录事件时长
timeEvent
:不共享