跳到主要内容

多实例

最近更新 2026/10/03

从 v1.3.0 开始,本 SDK 支持多实例。我们称通过上文描述的方法完成初始化的实例为主实例,通过本节描述的方法创建的实例为子实例。

多个实例之间共享设备相关的预置属性(包括设备 ID),其他的属性均不共享,包括:

  • #distinct_id 访客 ID
  • #account_id 账号 ID
  • 公共事件属性、动态公共属性
  • timeEvent 监控的事件

您可以通过创建子实例,向另一个项目中上报数据,或者以另一套用户 ID 上报数据。

//初始化配置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');

如果需要每个实例的持久化数据分开存储,可以在config中设置persistenceName自定义存储路径

var config = {
appId: "app-id-1",
serverUrl: "https://youserverurl.1.com",
persistenceName:"persistence_name" //可以自定义,每个实例需要不一致
};
TDAnalytics.init(config);

如果您需要给同一个AppId创建子实例,可以使用initInstance设置实例别名,这两个实例上报数据到同一个appId,但是使用不同的初始化配置信息。例如配置1使用的是普通模式上报数据,配置2使用Batch模式上报数据。

示例代码如下:

//初始化配置1
TDAnalytics.init({
appId: "app-id-1",
serverUrl: "https://youserverurl.1.com"
});

//初始化配置2
TDAnalytics.initInstance("td",{
appId: "app-id-1",
serverUrl: "https://youserverurl.1.com",
enableBatch: true
});
这篇文档对你有帮助吗?