---
code: mp_sdk_multi_appid
name: "多实例"
wikiToken: ZVUlwUOV1iIJOXkNVu0cWkJInMb
parentWikiToken: SAjFwgHh1iFtXpkOhXcc6xXknhb
updateTime: 1768189334000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=mp_sdk_multi_appid
---
# 多实例

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

多个实例之间共享设备相关的预置属性（包括设备 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
});
```
