# マルチ - インスタンス
# 機能紹介
マルチ-インスタンス機能は、複数の SDK インスタンスを作成して、独自の Appid に基づいてデータ追跡を実行できます。つまり、データを複数の Appid に送信できます。
なお iOS SDK バージョン 2.1.0 では、新しい ライト-インスタンス 機能が追加され、同じ Appidの複数のサブライト-インスタンスの生成が対応できます。 ライト-インスタンスはメインインスタンスの Appid と一致していますが、アカウントなどの情報は不一致となります。
# マルチインスタンスを作成
iOS SDK 1.2.0以降のバージョンはSDK初期設定方法および複数SDKインスタンスの作成方法:
// initialize SDK
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:APP_ID withUrl:SERVER_URL];
[instance track:@"event_name" properties:eventProperties];
// [[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] track:@"event_name" properties:eventProperties];
// before 1.2.0
// [[ThinkingAnalyticsSDK sharedInstance] track:@"event_name" properties:eventProperties];
//ThinkingAnalyticsSDK *instance2 = [ThinkingAnalyticsSDK startWithAppId:APP_ID2 withUrl:SERVER_URL2];
注意:APP IDは異なる必要があります。マルチインスタンスの間のデータは共用しません
# ライトインスタンスを作成
iOS SDK 2.1.0バージョンは、ライトインスタンスのメソットで、同じAPPIDの元で複数インスタンスを作成できます。
//create an SDK instance first
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:APP_ID withUrl:SERVER_URL];
//call createLightInstance through previously-created instances to generate lightweight instances
ThinkingAnalyticsSDK *lightInstance = [instance createLightInstance];
[lightInstance login:@"123ABCabc@thinkingdata.cn"];
[lightInstance track:@"some_event" properties:eventProperties];
サブライトインスタンスはメインインスタントのAPPID、data receiverのURL及び一部設定は一致で、その他の情報は共用しません。
# マルチインスタンスの間のデータ共用
ほとんどのインターフェイスはインスタンス オブジェクトによって呼び出されるため、ほとんどのデータと設定は複数の APPID インスタンス、メインインスタンス、およびライトインスタンス間で共用されませんが、一部のデータと設定はすべてのインスタンスで有効になります。以下はすべての詳細:
- アカウント情報
- システムでデフォルトで生成したゲストID
#distinct_id
:共用 identify
を呼び出して設定した#distinct_id
:不共用login
を呼び出して設定した#account_id
:不共用
- イベントデータの
track
とユーザープロパティデータのuser_set
、user_setOnce
、user_add
、user_delete
:不共用 - 共通プロパティ
setSuperProperties
と動的共通プロパティsetDynamicSuperPropertiesTracker
:不共用 - SDK設定情報:
- データ送信ポリシー(送信間隔時間と毎回送信数):共用、一個目のインスタンスのAPPIDのプロジェクトデータによって決定される
- 送信のネット条件
setNetworkType
:共用
- 自動収集イベント
- 1つのインスタンス上で自動収集イベントを有効にするのを推奨
- 複数のAPP IDに自動収集イベントを送信対応
- 自動収集イベントの設定は一つのAPPIDインスタンスのみ有効可能
- イベント時間経過を記録
timeEvent
:不共有