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