# iOS SDK マルチインスタンスガイド
# 1、マルチインスタンス機能の紹介
iOS SDK バージョン 1.2.0 では、マルチ APPID 特性が追加され、複数の SDK インスタンスの作成ができるようになり、それぞれの APPID にデータをアップロードすることができます。
iOS SDK バージョン 2.1.0 では、ライトインスタンスの特性が追加され、同じ APPID に対して複数のサブライトインスタンスを生成することができ、サブライトインスタンスは親インスタンスの APPID と一致しますが、アカウントなどの情報は一致しません。
古いバージョン(バージョン 1.2.0 以前)の SDK を 1.2.0 以降のバージョンにアップグレードした場合、古いバージョンの SDK のローカルキャッシュにアップロードしていないデータがある場合は、最初にインスタンス化された APPID にアップロードされます。**1 つの**APPID インスタンス**しか**使用**しない****ユーザーに影響しません。**
# 2、マルチ SDK インスタンスの作成
本節では、iOS SDK 1.2.0 以降のバージョンの SDK の初期化方法とマルチ SDK インスタンスの作成方法について説明します。
//初期化
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:APP_ID withUrl:SERVER_URL];
// 後続は以下の2つのメソッドでSDKを使用
[instance track:@"event_name" properties:eventProperties];
// [[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] track:@"event_name" properties:eventProperties];
// 1.2.0以前,またはシングルインスタンスの場合は以下のようにSDKを使用
// [[ThinkingAnalyticsSDK sharedInstance] track:@"event_name" properties:eventProperties];
//マルチAPPIDインスタンスの初期化をサポート
//ThinkingAnalyticsSDK *instance2 = [ThinkingAnalyticsSDK startWithAppId:APP_ID2 withUrl:SERVER_URL2];
マルチ SDK インスタンスの APP ID は同一 ID になってはいけません。マルチインスタンス間のデータはほとんど共通ではないことにご注意ください。詳細は、第 4 節「マルチインスタンス間のデータと設定の共有」をご参照ください。
# 3、ライトインスタンスの作成
iOS SDK バージョン 2.1.0 では、ライトインスタンスを通して同じ APPID に複数のインスタンスを作成することができます。
//SDKインスタンスを作成
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:APP_ID withUrl:SERVER_URL];
//以前作成したSDKインスタンスで,createLightInstanceを呼び出し、ライトインスタンスを生成
ThinkingAnalyticsSDK *lightInstance = [instance createLightInstance];
[lightInstance login:@"123ABCabc@thinkingdata.cn"];
[lightInstance track:@"some_event" properties:eventProperties];
サブライトインスタンスの 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
と動的パブリックプロパティregisterDynamicSuperProperties
:共有しない - SDK 構成情報はマルチインスタンス間で共有されるかどうか:
- アップロードポリシー関連(つまり、アップロード間隔とバッチあたりのデータ量):共有する。最初にインスタンス化された APPID に対応するプロジェクトデータによって決定
- アップロード時のネットワーク条件
setNetworkType
: 共有する
- イベントの自動収集
- 自動収集イベントを 1 つのインスタンスでのみ有効にすることをお勧めします
- 複数の APP ID に自動収集イベントをアップロード
- 自動収集イベントに関連する設定はシングルインスタンスにのみ有効。詳細はiOS SDK 自動収集ガイドをご参照ください。
- イベントの長さの記録
timeEvent
:共有しない