# iOS SDK 利用ガイド
TIP
データをインポートする前に、インポート前の準備をご参照ください。
GitHub (opens new window)でiOS SDKソースコードを取得することができます。
iOS SDKに必要な最低システムバージョンはiOS 8.0です。
iOS SDK(Framework形式)サイズは約5.5 MBです。
**最新バージョン:**2.7.42.7.4
**更新時間:**2022-01-18
# 1、SDKの統合と初期化
# 1.1 自動SDK統合
- CocoaPodsでSDKをインストール
1.Podfileの作成と編集(既にある場合は直接編集):
Podfileを作成し、プロジェクト(. xcodeproj
)テキストの同ディレクトリのコマンドラインでコマンドを実行します:
pod init
Podfileの内容を次のように編集します:
platform :ios, '9.0'
target 'YourProjectTarget' do
pod 'ThinkingSDK' #ThinkingSDK
end
2.インストールコマンドを実行:
pod install
成功すると、次のような記録が現れます:
3.インポートに成功し、プロジェクトを開始
コマンドの実行が成功すると、. xcworkspace
テキストが生成され、iOS SDK
の導入に成功したことを示します。.xcworkspace
テキストを開き、プロジェクトを立ち上げます。(注意:同時 xcodeproj
テキストを同時に開くことはできません。)
- CarthageでSDKをインストール
1.Cartfileテキストに次のコードを追加します。
github "ThinkingDataAnalytics/ios-sdk"
2.carthage update --platform iOS
を実行し、ThinkingSDK. framework
をプロジェクトに追加します。
# 1.2 手動SDK統合
1.iOS SDK (opens new window)をダウンロードして解凍します。
2.ThinkingSDK. framework
をXCode Project Workspaceプロジェクトにドラッグします。
3.プロジェクト設定Targetsオプションの Build SettingsタブのOther linker flagsの設定を追加-ObjC
4.Build Phasesタブに切り替え、Link Binary With Libraries欄の下に次の依頼コードを追加します。
libz.dylib``、``Security.framework``、``SystemConfiguration.framework``、``libsqlite3.tbd
# 1.3 SDKの初期化
v1.2.0では、マルチAPPIDインスタンスの特性が追加されました。マルチAPPIDの使用ガイドについては、iOS SDKマルチAPPIDガイドをご参照ください。
AppDelegate. mに#import<ThinkingSDK/ThinkingAnalyticsSDK. h>
を追加します。
その後、application: didFinishLaunchingWithOptions:
に初期化を追加します。
以下の通り
パラメーターAPP_ID
はプロジェクトのAPP_IDであり、プロジェクトを申請するときに付与されます。ここにご入力ください。
パラメーターSERVER_URL
は、データアップロードのURLです。
クラウドサービスを使用している場合は、次のURLを入力してください。
https://ta-receiver.thinkingdata.io
オンプレミスサービスを使用している場合は、次のURLを入力してください。
https://数据采集地址
httpsプロトコルを使用するには、ご自身でSSL証明書を持つドメイン名を申請してください。TAスタッフはポート設定をサポートします。
初期化が完了したら、次の方法でSDKを使用することができます。
v2.7.3では、新しいインスタンス名特性が追加され、インスタンスの初期化時にインスタンス名nameが渡され、インスタンスを識別します。インスタンス名nameに基づいてインスタンスを取得することもできます。
# 1.4 バックグラウンド自動起動イベントの説明
iOS 12以降のバージョン(iOS 13はEnableSceneSupport
を使用していない)は、バックグラウンド自動起動イベントはデフォルトではカウントされず、trackRelaunchedInBackgroundEvents
で設定され、YES
は収集、NO
は収集しないことを表します。
iOS 13はEnableSceneSupport
を使用しており、launchOptions
パラメーターを渡す必要があります。
# 1.5 H5ページとの連携(任意)
H5ページのデータを収集するJavaScript SDKと連携する必要がある場合は、以下のインターフェイスを呼び出します。詳細はH5とAPP SDKの連携をご参照ください。
# 2、ユーザーIDの設定
SDKインスタンスは、ランダムなUUIDをユーザーのデフォルトのゲストIDとして使用します。ゲストIDは、ユーザーが未ログイン状態でユーザーを識別するIDになります。しかし、アプリを再インストールしたり、デバイスを変更したりすると、ゲストIDが変更されます。
# 2.1 ゲストIDの設定(任意)
ユーザーが未ログインの状態で製品を使用したり、未ログイン状態でのゲストIDを設定する必要がある場合は、identify:
を呼び出して設定することができます。
ゲストIDを置き換えたい場合、SDKの初期化が終了した直後に呼び出す必要があります。無効なアカウントを回避するため、複数回に呼び出さないようにご注意ください。
現在のゲストIDを取得するには、getDistinctId
を呼び出して取得することができます。
# 2.2 アカウントIDの設定
ユーザーがログインするとき、login:
:を呼び出してユーザーのアカウントIDを設定します。TAプラットフォームはアカウントIDを身分を識別IDとして優先し、設定後のアカウントIDは保存されます。login:
を複数回に呼び出すと以前のアカウントIDが上書きされます:
この方法はユーザーログインイベントがアップロードされません**。**
# 2.3 アカウントIDの削除
ユーザーがログアウトした後、logout
てアカウントIDを削除することができます。次のlogout
が呼び出されるまで、ゲストIDを識別IDとして使用します。
明示的なログアウトイベントでlogout
を呼び出すことをお勧めします。例えば、ユーザーがアカウントを削除する時に呼び出す必要があるが、アプリを閉じる時に呼び出す必要がありません。
この方法は、ユーザーのログアウトイベントがアップロードされません。
# 3、イベントの送信
SDKの初期化が完了した後、track:
、track: properties:
でイベントをアップロードすることができます。通常、20~100の異なるイベントをアップロードする必要があります。TAを初めて使用する場合は、いくつかの重要なイベントをアップロードすることをお勧めします。
# 3.1 イベントの送信
track:
、track: properties:
を呼び出してイベントをアップロードすることができます。前の内容をもとに、イベントのプロパティと情報送信の条件を設定することをお勧めします。
イベントの名前はNSString
型であり、アルファベットで始まり、数値、アルファベット、下線「_」を含むことができます。長さは最大50文字で大文字と小文字を区別しません。
- イベントのプロパティは
NSDictionary
オブジェクトであり、各要素は1つのプロパティを表します。 - Keyの値はプロパティの名前であり、
NSString
型で、アルファベットで始まり、数値、アルファベット、下線「_」を含むことができます。長さは最大50文字で大文字と小文字を区別しません。 - Valueはプロパティの値であり、
NSString
、NSNumber
、NSDate
、NSDate
、NSArray
、オブジェクトおよびオブジェクトグループを含むことができます。 - プール型のプロパティをアップロードするには、@YESと**@NOまたは[NSNumber numberWithBool: YES]と[NSNumber numberWithBool: NO]でデータを割り当てまてください。**
@true**、@false、@TRUE、@FALSEでプール型データを****割り当てることはできません。**
注意:
NSArrayタイプはv2.4.0からサポートされており、TAプラットフォームv2.5以降と併用する必要があります。
v2.7.3からオブジェクトとオブジェクトグループをサポートします。
v2.2.0では、イベントの時間トリガーとタイムシフトを設定するメソッドオーバーロードが追加され、NSDate型パラメーターを取り込むことでイベントの時間トリガーを設定し、NSTimeZone型パラメーターでタイムシフトを設定します。このパラメーターを取り込まないと、track
が呼び出された時のシステム時間とタイムシフトをイベントの時間トリガーとタイムゾーンオフセットとして取得します。
注意:イベントは時間トリガーを設定することができますが、受信側は次のように制限し、システム時間の10日前から3日後までのデータしか受信しません。期間を超えたデータは異常データとみなされ、データ全体は格納されません。
v2.3.1以降、SDKのデフォルトタイムゾーンを設定することで、複数のタイムゾーンでのイベント時間を揃えることができます。詳細はデフォルトタイムゾーンの設定をご参照ください。
v2.5.0以降、SDKタイムインターフェイスを校正することで、サーバー側の時間を使用してデータを収集します。詳細は時間校正をご参照ください。
# 3.2 パブリックイベントプロパティの設定
ユーザーの会員ランク、加入ルートなどの重要なプロパティは、イベントごとに設定する必要があり、パブリックイベントのプロパティとして設定することができます。パブリックイベントプロパティは各イベントに含まれるプロパティのことです。setSuperProperties
を呼び出してパブリックイベントプロパティを設定することができます。イベントを送信する前に、パブリックイベントプロパティを設定することをお勧めします。
パブリックイベントプロパティの形式は、イベントプロパティと一致します。
パブリックイベントプロパティはキャッシュに保存され、アプリを起動するたびに呼び出す必要はありません。setSuperProperties
を呼び出して設定済みのパブリックイベントプロパティをアップロードすると、プロパティが上書きされます。パブリックイベントプロパティはtrack:properties:
でアップロードされたプロパティのKeyと重複している場合、そのイベントのプロパティがパブリックイベントプロパティを上書きします。
パブリックイベントプロパティを削除するには、unsetSuperProperty
を呼び出して、指定したパブリックイベントプロパティを削除します。すべてのパブリックイベントプロパティを削除するには、clearSuperProperties
を呼び出します。すべてのパブリックイベントプロパティを取得するには、currentSuperProperties
を呼び出します。
# 3.3 動的パブリックプロパティの設定
v1.2.0では、動的パブリックプロパティの特性が新たに追加されました。パブリックプロパティはアップロード時にその時の値を取得し、会員等級などの可変なパブリックプロパティを便利にアップロードすることができます。registerDynamicSuperProperties
を使用して動的パブリックプロパティを設定すると、SDKはイベントアップロード時に自動的に実行し、戻り値のプロパティを取得し、イベントに追加します。次の例は、イベントをアップロードするたびに現在時間を取得し、タイムゾーンを切り替えます。イベントが発生するとSDKは戻り値の時間をイベントプロパティに追加します。
# 3.4 イベント時間の記録
あるイベントの継続時間を記録するにはtimeEvent
を呼び出して記録し、イベント名を設定します。このイベントをアップロードする際に、自動的にイベントプロパティに#duration
プロパティを追加し、記録時間を秒単位で表します。
# 4、ユーザープロパティ
TAプラットフォームが現在サポートしているユーザープロパティ設定インターフェイスはuser_set:
、user_setOnce:
、user_add:
、user_unset:
、user_delete
とuser_append
です。
# 4.1 user_set
通常のユーザープロパティは、user_set:
を呼び出して設定することができます。このインターフェイスを使用してアップロードしたプロパティは、元のプロパティ値を上書きします。過去にこのユーザープロパティが存在しなかった場合は、新しいユーザープロパティが作成され、アップロードしたプロパティ型と同様です。
user_set:設定するユーザープロパティはNSDictionaryオブジェクトであり、一つの要素が一つのプロパティを表します。
user_setで設定したユーザーのプロパティ型は、イベントプロパティと一致する必要があります。
# 4.2 user_set Once
アップロードするユーザープロパティが1回しか設定しない場合、user_setOnce:
を呼び出して設定することができます。このプロパティは既に値がある場合、この情報が無視されます。
user_setOnceで設定したユーザープロパティ型は、イベントプロパティと一致する必要があります。
# 4.3 user_add
数値型プロパティをアップロードするには、user_add:
を呼び出して、そのプロパティに対して累積操作を行います。そのプロパティが設定されていない場合は、0を割り当ててから計算します。
user_add: 設定したユーザープロパティ型およびKey値の制限は user_set:と一致するが、ValueはNSNumber型のみが許可されます。
# 4.4 user_unset
ユーザーのユーザープロパティ値を削除したい場合、user_unset:
を呼び出して指定したプロパティを空にすることができます。そのプロパティはクラスターで作成されていない場合、user_unset:
がそのプロパティを作成しません。
user_unset:の値は削除されたプロパティのKey値です。
# 4.5 user_delete
あるユーザーを削除したい場合、user_delete
を呼び出してユーザーを削除することができます。それ以降、このユーザーのユーザープロパティを参照することができなくなるが、発生したイベントを参照することができます。
# 4.6 user_append
v2.4.0から、user_append
を呼び出してNSArray のユーザープロパティを追加することができます。
# 5、イベントの自動収集
イベント自動収集の具体的な使い方については、iOS SDK自動収集ガイドをご参照ください。
# 6、SDK構成
# 6.1 アップロードするためのネットワーク条件の設定
デフォルトでは、SDKインスタンスは、ネットワークが2G、3G、4G、5G、Wifiの時にデータをアップロードします。以下の方法でアプロード可能のネットワーク条件を設定することができます。
# 6.2 データアップロードの一時停止/中止
v2.1.0では、SDKインスタンスのデータアップロードを停止する機能が追加されました。SDKインスタンスのアップロードを停止するインターフェイスが2種類あります。
# 6.2.1 SDKアップロードの一時停止(enableTracking)
ユーザーがテスト環境にいる、またはテストアカウントでログインしているなどの場合、データの収集やアップロードを一時的に停止したいことがあります。その場合、次のインターフェイスを呼び出してSDKインスタンスのアップロードを一時的に停止することができます。
特定のインスタンス(メインインスタンスとライトインスタンスを含む)を通してenableTracking:
を呼び出し、false
に取り込むことで、SDKインスタンスのアップロードを一時停止することができます。そのインスタンスに設定済の#distinct_id
、#account_id
、パブリックプロパティなどが保持されます。そのインスタンスが収集したがアップロード未完了のデータは引き続きアップロードされます。そのインスタンスはそれ以降新しいデータを収集したりアップロードしたりすることはできません。ゲストID、アカウントID、パブリックプロパティなどを設定することはできませんが、設定済のパブリックプロパティ、デバイスID、ゲストID、アカウントIDなどの情報を読み取ることはできます。
インスタンスの停止状態はenableTracking:
が呼び出されるまでローカルのキャッシュに保存されます。enableTracking
を呼び出して、true
に取り込むと、SDKインスタンスはデータ収集とアップロードを再開します。ライトインスタンスはキャッシュに保存されないため、アプリを開くたびにライトインスタンスの一時停止状態は保持されず、アップロードが再開されます。
# 6.2.2 SDKアップロードの中止(optOutTracking)
GDPRが適用される地域でユーザーがデータ収集権限を提供しないなどの特殊の場合、次のインターフェイスを呼び出してSDKインスタンスの機能を完全に停止することができます。
optOutTracking
はメインインスタンスからしか呼び出すことができません。enableTracking
との最大の違いは、インスタンスのローカルキャッシュ(ゲストID、アカウントID、パブリックプロパティ、およびアップロードしていないデータキューを含む)が削除されます。その後、インスタンスの収集とアップロード機能をオフにします。
SDK機能をオフにしている間にTAクラスタ内のユーザーデータを削除したい場合、optOutTrackingAndDeleteUser
を呼び出すと、SDKインスタンス機能を停止する前にuser_del
データをアップロードしてユーザーデータを削除することができます。
インスタンスの停止状態もoptInTracking
が呼び出されるまでローカルキャッシュに保存されます。それ以降はアップロードを続けることができますが、新しいインスタンスとなります。
# 6.3 データログの印刷
setLogLevel
を呼び出すことでオンにすることができます(デフォルトはオフ):
# 6.4 デバイスIDの取得
v2.0.0では、デバイスID(プリセットプロパティ#device_id
)のインターフェイスが追加されました。getDeviceId
を呼び出すことでデバイスIDを取得することができます。
[instance getDeviceId];
//デバイスIDをゲストIDに設定する必要があれば下記のように呼び出す
// [instance identify:[instance getDeviceId]];
# 6.5 HTTPS検証メソッドの設定:
v2.3.0以降、SDKではHTTPS検証メソッドを設定することができます。初期化時にTDConfigインスタンスを取得し、TDConfigで初期化を完了します。
# 6.6 デフォルトタイムゾーンの設定
ユーザーがイベントの発生時間を指定しない場合、SDKはデフォルトで、インターフェイス呼び出し時のシステム時間をイベント発生時間としてアップロードします。v2.3.1以降では、デフォルトのタイムゾーンインターフェイスを設定することでデフォルトのタイムゾーンを指定することができます。すべてのイベント(自動収集のイベントを含む)は設定されたタイムゾーンに沿ってイベント時間を揃えることができます。
// TDConfig インスタンスを取得
TDConfig *config = [[TDConfig alloc] init];
// デフォルトタイムゾーンを UTCに設定
config.defaultTimeZone = [NSTimeZone timeZoneWithName:@"UTC"];
// SDK初期化
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];
注意:指定したタイムゾーンでイベント時間を揃えると、システムのタイムゾーン情報がなくなります。システムタイムゾーン情報を保持したい場合は、イベントに関連するプロパティを手動で追加する必要があります。
# 6.7 Debugモードの有効化
v2.4.0以降、クライアントSDKは Debug モードをサポートし、TA Platform 2.5以降のバージョンと併用する必要があります。
Debugモードは、データ収集の品質とアプリの安定性に影響を与える可能性があります。データの結合テストに使用することができますが、オンライン環境で使用しないようにご注意ください。
現在のSDKインスタンスは、3つの実行モードがサポートしています。TDConfig
で定義されています。
/**
Debugモード
- ThinkingAnalyticsDebugOff : デフォルトでDebugモードをオフ
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
/**
デフォルトでDebugモードをオフ
*/
ThinkingAnalyticsDebugOff = 0,
/**
Debug_onlyモードをオンにし,データ検証のみ,格納しない
*/
ThinkingAnalyticsDebugOnly = 1 << 0,
/**
Debugモード,データは1つずつアプロード。問題発生時にログと異常値でユーザーに報告
*/
ThinkingAnalyticsDebug = 1 << 1
};
SDKインスタンスの実行モードを設定するには、TDConfig
でSDKの初期化を完了します:
// TDConfig インスタンスを取得
TDConfig *config = [[TDConfig alloc] init];
// 実行モードを Debug モードに設定
config.debugMode = ThinkingAnalyticsDebug;
// SDK初期化
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];
Debugモードが本番環境でオンラインにならないように、指定されたデバイスのみがDebugモードをオンにすることができます。クライアントのDebugモードが有効で、且つデバイスIDがTAプラットフォームの「埋め込みポイント管理」ページの「Debugデータ」に構成されているデバイスでのみDebugモードを有効にすることができます。
デバイスIDは、次の3つの方法で取得することができます。
- TAプラットフォームのイベントデータの#device_idプロパティ
- クライアントログ:SDKの初期化が完了すると、デバイスDeviceIdが印刷される
- インスタンスインターフェイスを介する呼び出し:デバイスIDの取得
# 6.8 時間校正
SDKはデフォルトでシステム時間をイベント発生時刻として使用し、ユーザーが手動でシステム時間を変更すると業務分析に影響を与える可能性があります。v2.5.0以降、サーバー側から取得した現在のタイムスタンプでSDK時間を校正することができます。それ以降、時間が指定されていない呼び出し(イベントデータやユーザープロパティ設定の操作を含む)はすべて校正後の時間をイベント発生時間とします。
NTPから時間を取得しSDKを校正する機能も提供しています。ユーザーがアクセスできるNTPサーバーアドレスを入力する必要があり、SDKは受信したNTPサーバーアドレスから現在の時間を取得し、SDK時間を校正します。ただし、デフォルトのタイムアウト時間(3秒)以内に正しい結果が得られない場合、システム時間を使用してデータをアップロードします。
注意:
- ネットワークが良好の状態で、ユーザーのデバイスがスムーズにサーバーの到着時間を取得できるように、NTPサーバーアドレスを慎重に選択する必要があります。
- NTPサービスを用いる時間校正は不確実性があるので、タイムスタンプによる時間校正を優先的にご検討ください。
上記の時間校正インターフェイスに加えて、v2.5.0は、すべてのユーザープロパティインターフェイスの時間関数オーバーロードを提供しています。ユーザープロパティ関連のインターフェイスを呼び出すときに、Dateオブジェクトを取り込むと、受信したDateオブジェクトを使用してデータの#time
フィールドを設定します。
# 7、関連のプリセットプロパティ
# 7.1 すべてのイベントのプリセットプロパティ
次のプリセットプロパティは、 iOS SDKのすべてのイベント(自動収集イベントを含む)に含まれるプリセットプロパティです。
プロパティ名 | 日本語 | 説明 |
---|---|---|
#ip | IPアドレス | ユーザーのIPアドレス。TAはユーザーの位置情報を取得。 |
#country | 国 | ユーザーの国。IPアドレスに基づいて生成。 |
# country_code | 国コード | ユーザーがいる国の国コード(ISO 3166-1 alpha-2、2大文字のアルファベット)。IPアドレスに基づいて生成。 |
#province | 省 | ユーザーがいる省。IPアドレスに基づいて生成。 |
#city | 都市 | ユーザーがいる都市。IPアドレスに基づいて生成。 |
#os_version | オペレーティングシステムのバージョン | iOS 1 1.2.2、Android 8.0.0など。 |
#manufacturer | 機器メーカー | Apple、vivoなど、ユーザーのデバイスのメーカー。 |
#os | オペレーティングシステム | Android、iOSなど |
#device_id | デバイスID | ユーザーのデバイスID、iOSはユーザーのIDFVかUUID、AndroidはandroidIDを取得。 |
#screen_height | 画面の高さ | ユーザーのデバイスの画面高さ。例:1920 |
#screen_width | 画面の幅 | ユーザーのデバイスの画面の幅。例:1080 |
#device_model | デバイスモデル | ユーザーデバイスのモデル。例:iPhone 8 |
#app_version | APPバージョン | アプリのバージョン |
#bundle_id | アプリケーション固有のID | アプリケーションのパッケージ名 |
#lib | SDKタイプ | SDKのタイプ。Android、iOSなど。 |
#lib_version | SDKバージョン | SDKのバージョン。 |
#network_type | ネットワーク状態 | イベントアップロード時のネットワーク状態。 WIFI、3G、4G など。 |
#carrier | ネットワークキャリア | ユーザーデバイスのネットワークキャリア。中国移動、中国電信など。 |
#zone_offset | タイムゾーンオフセット | UTC時間に対するデータ時間のオフセット時間数 |
# 7.2 自動収集イベントのプリセットプロパティ
以下のプリセットプロパティは、各自動収集イベントに特有のプリセットプロパティです。
- APP起動イベント(ta_app_start)のプリセットプロパティ
プロパティ名 | 日本語 | 説明 |
---|---|---|
#resume_from_background | バックグラウンドから起こすか | APPが起動されたかバックグラウンドから起こされたかを示す。trueはバックグラウンドから起こす。falseは直接に起動する。 |
- APPクローズイベント(ta_app_end)のプリセットプロパティ
プロパティ名 | 日本語 | 説明 |
---|---|---|
#duration | イベントの長さ | アプリの起動から終了までの時間を秒単位で表す。 |
- APPページビューイベント(ta_app_view)のプリセットプロパティ
プロパティ名 | 日本語 | 説明 |
---|---|---|
#title | ページタイトル | View Controller のタイトル。値は controller.navigationItem.title のプロパティ 値。 |
#screen_name | ページ名 | View Controller のタイプ名。 |
#url | ページアドレス | 現ページのアドレス。 getScreenUrl を呼び出してurlの設定を行う。 |
#referrer | 前ページアドレス | 前ページのアドレスに戻る。 getScreenUrl を呼び出してurlの設定を行う。 |
- APPコントロールクリックイベント(ta_app_click)のプリセットプロパティ
プロパティ名 | 日本語 | 説明 |
---|---|---|
#title | ページタイトル | View Controllerのタイトル。値は controller.navigationItem.title のプロパティ 値。 |
#screen_name | ページ名 | View Controllerのタイプ名。 |
#element_id | 要素ID | コントロールのID。 thinkingAnalyticsViewID で 設定可能。 |
#element_type | 要素の種類 | コントロールタイプ |
#element_selector | 要素セレクタ | コントロールの viewPath の補足 |
#element_position | 要素の位置 | コントロールの位置情報。コントロールタイプは UITableView か UICollectionView の時 にある。コントロールがクリックされた時の位置を表す。値は グループ番号 (Section): 行番号 (Row) |
#element_content | 要素の内容 | コントロールの内容。 |
- APPクラッシュイベント(ta_app_crash)のプリセットプロパティ
プロパティ名 | 日本語 | 説明 |
---|---|---|
#app_crashed_reason | 異常情報 | 文字型で、クラッシュ時のスタック軌跡を記録 |
# 7.3 その他のプリセットプロパティ
以上のプリセットプロパティに加えて、一部のプリセットプロパティを記録するにはそれに対応するインタフェースを呼び出す必要があります。
プロパティ名 | 日本語 | 説明 |
---|---|---|
#duration | イベントの長さ | 時間記録機能インターフェイス timeEvent を呼び出してイベントの長さを記録する。単位は秒。 |
#backgroud_duration | バックグラウンドイベントの長さ | #background_duration はv2.7.4から追加された新しいプロパティ。このプロパティは起動イベントと期間イベントにある。 単位は秒。 |
# 7.4 プリセットプロパティの取得
v2.7.0以降では、getPresetProperties
を呼び出してプリセットプロパティを取得することができます。
サーバー側の埋め込みポイントにアプリ側のプリセットプロパティが必要な場合、この方法でアプリ側のプリセットプロパティを取得してサービス側に渡します。
IP、国の都市情報はサーバー側で解析して生成されるので、クライアント側はこれらのプロパティを取得するインタフェースを提供しません。
# 7.5 パフォーマンス関連指標のプリセットプロパティ
v2.7.4以降、SDKはデフォルトでパフォーマンス関連のプリセットプロパティをアップロードします:
プロパティ名 | 日本語 | 説明 |
---|---|---|
#ram | 使用可能なメモリサイズ/メモリの合計 | 単位はGB |
#disk | 使用可能なディスク容量/ディスク総量 | 単位はGB |
#fps | FPS | 整数 |
#simulator | 携帯シミュレーターかどうか | ブール値 |
#install_time | アプリのインストール時間 |
# 7.6 プリセットプロパティのスイッチ
v2.7.4以降、SDKは指定されたプリセットプロパティのアップロードをブロックすることをサポートしています。
プロジェクトのinfo.plistテキストにTDDisPresetPropertiesフィールドを追加します。タイプはArrayです。追加したフィールドに対応するプリセットプロパティはアップロードされません。
"#fps", @"#ram", @"#disk", @"#start_reason", @"#simulator"などのプリセットプロパティをブロックするには、次のように設定します。
# 8、高度な機能
v2.6.0以降、SDKは、初期イベント、更新可能なイベント、書き換え可能なイベントとの3つの特殊イベントのアップロードをサポートしています。この3つのイベントは、TAシステム2.8以降のバージョンと併用する必要があります。特殊イベントは特定の場面でしか適用されないので、TAのクライアントとアナリストのもとに、特殊イベントのアップロードを行うようにしましょう。
# 8.1 初期イベント
初期イベントとは、あるデバイスや他のディメンションのIDに対して、一度しか記録されないイベントです。たとえば、デバイスで最初に発生したイベントを記録したい場合は、初期イベントを用いてデータをアップロードすることができます。
デバイス以外のディメンションで初回かどうかを判断するには、初期イベントにFIRST_CHECK_IDを設定します。たとえば、あるアカウントの初期イベントを記録する必要がある場合、アカウントIDを初期イベントのFIRST_CHECK_IDに設定します。
注意:サーバー側で初回かどうかをチェックするため、初期イベントはデフォルトで1時間遅れて格納します。
# 8.2 更新可能なイベント
更新可能なイベントを通して、特定の場面でのイベントデータの変更要件を満たすことができます。更新可能なイベントは、イベントを識別するIDを指定し、更新可能なイベントオブジェクトの作成時に読み込むする必要があります。TAプラットフォームは、イベント名とイベントIDに基づいて更新するデータを決定します。
# 8.3 書き換え可能なイベント
書き換え可能なイベントは更新可能なイベントと似ており、違いとしては書き換え可能なイベントは最新のデータで過去データを完全に上書きするので、過去データを削除し、最新のデータを格納することに相当します。TAプラットフォームは、イベント名とイベントIDに基づいて更新するデータを決定します。
# ChangeLog
省略します。詳細は中国語版をご参照ください。