目录
此内容是否有帮助?

# Android SDK マルチインスタンスガイド

# 1、マルチインスタンス機能の紹介

Android SDK バージョン 1.3.0 では、マルチ APPID 特性が追加され、複数の SDK インスタンスの作成ができるようになり、それぞれの APPID にデータをアップロードすることができます。

Android SDK バージョン 2.1.0 では、ライトインスタンスの特性が追加され、同じ APPID に対して複数のサブライトインスタンスを生成することができ、サブライトインスタンスは親インスタンスの APPID と一致しますが、アカウントなどの情報は一致しません。

古いバージョン(1.3.0 より前のバージョン)の SDK を 1.3.0 以降のバージョンにアップグレードした場合、古いバージョンの SDK のローカルキャッシュにアップロードしていないデータがある場合は、最初にインスタンス化された APPID にアップロードされます。**1 つの**APPID インスタンス**しか**使用**しない****ユーザーに影響しません。**

# 2、マルチ SDK インスタンスの作成

異なる APP ID を取り込み、SDK の初期化を完了すると、マルチ SDK インスタンスを作成することができます。

// 初期化 SDK
ThinkingAnalyticsSDK instance1 = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);
ThinkingAnalyticsSDK instance2 = ThinkingAnalyticsSDK.sharedInstance(this, ANOTHER_TA_APP_ID, TA_SERVER_URL);

instance1.track("some_event",properties);
instance2.track("some_event",properties);

マルチ SDK インスタンスの APP ID は同一 ID になってはいけません。マルチインスタンス間のデータはほとんど共通ではないことにご注意ください。詳細は、第 4 節「マルチインスタンス間のデータと設定の共有」をご参照ください。

# 3、ライトインスタンスの作成

Android SDK バージョン 2.1.0 では、ライトインスタンスを通して同じ APPID に複数のインスタンスを作成することができます。

  //SDKインスタンスの作成
  ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

  //以前作成したSDKインスタンスで,createLightInstanceを呼び出し、ライトインスタンスを生成
  ThinkingAnalyticsSDK lightInstance = instance.createLightInstance();

  lightInstance.login("anotherAccount");
  lightInstance.track("some_event",properties);

サブライトインスタンスの APPID、アップロードアドレス、および一部の設定は親インスタンスと一致しますが、その他の情報は共有されません。詳細は、第 4 節「マルチインスタンス間のデータと設定の共有」をご参照ください。

# 4、マルチインスタンス間のデータと設定の共有

ほとんどのインターフェイスはインスタンスオブジェクトによって呼び出されるため、ほとんどのデータはマルチ APPID インスタンス、親インスタンス、ライトインスタンスの間に共有されません。以下はすべてのデータと設定はマルチインスタンス間に共有されるか否かについて説明します。

  1. アカウント関連情報
  • システムがデフォルトで生成したゲスト ID#distinct_id:共有する
  • identifyの呼び出しで設定したゲスト ID#distinct_id:共有しない
  • loginの呼び出しで設定したアカウント ID#account_id:共有しない
  1. イベントアップロードtrackとユーザープロパティアップロードuser_setuser_setOnceuser_adduser_delete:共有しない
  2. パブリックプロパティsetSuperPropertiesと動的パブリックプロパティsetDynamicSuperPropertiesTracker:共有しない
  3. SDK 構成情報はマルチインスタンス間で共有されるかどうか:
  • アップロードポリシー関連(つまり、アップロード間隔とバッチあたりのデータ量):共有する。最初にインスタンス化された APPID に対応するプロジェクトデータによって決定
  • アップロード時のネットワーク条件setNetworkType: 共有する
  • アップロードデータ Log の印刷EnableTrackLogging: 共有する
  1. イベントの自動収集
  • 自動収集イベントを 1 つのインスタンスでのみ有効にすることをお勧めします
  • 複数の APP ID に自動収集イベントをアップロード
  • 自動収集イベントに関連する構成がマルチインスタンスで共有されているかどうか:
    • 設定コントロール IDsetViewID:共有しない
    • カスタムコントロールプロパティsetViewPropertiesなど: 共有しない
    • ページの自動収集イベントの無視ignoreAutoTrackActivityなど:共有しない
    • ある種類のコントロールクリックイベントの無視ignoreViewType無視:共有しない
    • コントロールの無視ignoreView:共有しない
    • すべての注釈:appId パラメーターを設定することで有効なインスタンスを指定することができます。設定しない場合は、この構成はすべてのインスタンスに共有されます。例:
@ThinkingDataIgnoreTrackAppViewScreen(appId = "debug-appid")
  1. イベントの長さの記録timeEvent:共有しない