menu
Is this helpful?

# 多实例

# 一、功能介绍

我们支持使用多个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 实例、父实例与轻量实例间是不共享的,但有部分数据与设置会对所有实例生效,以下是所有数据与设置在多实例间是否共享的详细说明:

  1. 账号相关信息
  • 系统默认生成的访客 ID#distinct_id:共享
  • 调用 identify 设置的访客 ID#distinct_id:不共享
  • 调用login设置的账号 ID#account_id:不共享
  1. 事件上报track与用户属性上报user_setuser_setOnceuser_adduser_delete:不共享
  2. 公共属性setSuperProperties和动态公共属性setDynamicSuperPropertiesTracker:不共享
  3. 记录事件时长timeEvent:不共享