メインコンテンツまでスキップ

マルチインスタンス

最終更新 2026/10/03

1. 機能の紹介​

複数のAppidを使用してSDKインスタンスを作成できます。これをマルチインスタンスと呼びます。マルチインスタンス機能を使用すると、異なるプロジェクトにデータを送信できます。

2. マルチインスタンスの作成​

異なるAPP IDを渡してSDKを初期化すると、複数のSDKインスタンスを作成できます:

// SDKを初期化
TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL);
TDAnalyticsAPI.track("some_event",properties, TA_APP_ID);

TDAnalytics.init(this, ANOTHER_TA_APP_ID, TA_SERVER_URL);
TDAnalyticsAPI.track("some_event",properties, ANOTHER_TA_APP_ID);

TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL, NAME);
TDAnalyticsAPI.track("some_event",properties, NAME);

複数のSDKインスタンスのAPP IDは、それぞれ異なる必要があります。マルチインスタンス間では、ほとんどのデータは共有されません。詳細は、4節「マルチインスタンス間のデータ共有」を参照してください。

3. ライトインスタンスの作成​

ライトインスタンスを使用すると、同じAPPIDで複数のインスタンスを作成できます

//まずSDKインスタンスを作成
TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL);
//作成済みのインスタンスからlightInstanceを呼び出して、ライトインスタンスを生成
String uuid = TDAnalytics.lightInstance();
TDAnalyticsAPI.login("anotherAccount",uuid);
TDAnalyticsAPI.track("some_event",properties,uuid);

子ライトインスタンスのAPPID、データ受信URL、一部の設定は親インスタンスと同じですが、その他の情報は共有されません。詳細は、4節「マルチインスタンス間のデータ共有」を参照してください。

4. マルチインスタンス間のデータ共有​

ほとんどのインターフェースはインスタンスオブジェクトから呼び出されるため、大部分のデータと設定は、複数APPIDのインスタンス間や、親インスタンスとライトインスタンスの間で共有されません。ただし、一部のデータと設定はすべてのインスタンスに適用されます。各データと設定がマルチインスタンス間で共有されるかどうかの詳細は次のとおりです:

  1. アカウント関連の情報
  • システムがデフォルトで生成するゲストID#distinct_id:共有
  • identifyを呼び出して設定したゲストID#distinct_id:共有しない
  • loginを呼び出して設定したアカウントID#account_id:共有しない
  1. イベントの送信trackとユーザープロパティの送信user_set、user_setOnce、user_add、user_delete:共有しない
  2. 共通イベントプロパティsetSuperPropertiesと動的共通イベントプロパティsetDynamicSuperPropertiesTracker:共有しない
  3. SDKの設定情報がマルチインスタンス間で共有されるかどうか:
  • 送信ポリシー関連(送信間隔と1バッチあたりのデータ量):共有。最初にインスタンス化したAPPIDに対応するプロジェクトのデータによって決まります
  • 送信時のネットワーク条件setNetworkType:共有
  • 送信データのログ出力EnableTrackLogging:共有
  1. 自動収集イベント
  • 自動収集イベントは、1つのインスタンスでのみ有効にすることをお勧めします

  • 複数のAPP IDへの自動収集イベントの送信に対応しています

  • 自動収集イベントの関連設定がマルチインスタンス間で共有されるかどうか:

    • コントロールIDの設定setViewID:共有しない
    • コントロールのカスタムプロパティsetViewPropertiesなど:共有しない
    • 特定ページの自動収集イベントの無視ignoreAutoTrackActivityなど:共有しない
    • 特定タイプのコントロールのクリックイベントの無視ignoreViewType:共有しない
    • 特定コントロールの無視ignoreView:共有しない
    • すべてのアノテーション:appIdパラメータを設定して、適用するインスタンスを指定できます。設定しない場合は、すべてのインスタンスでその設定が共有されます。例:
@ThinkingDataIgnoreTrackAppViewScreen(appId = "debug-appid")
  1. イベント時間の記録timeEvent:共有しない
このページは役に立ちましたか?