プリセットプロパティ
1. すべてのイベントに付与されるプリセットプロパティ
次のプリセットプロパティは、iOS SDKのすべてのイベント(自動収集イベントを含む)に付与されます
| プロパティ名 | 画面表示名 | プロパティタイプ | 収集タイミング | 説明 |
|---|---|---|---|---|
| #ip | IPアドレス | テキスト | サーバー側で収集 | ユーザーのIPアドレス。AEはこれを基にユーザーの位置情報を取得します |
| #country | 国 | テキスト | サーバー側で収集 | ユーザーの所在国。IPアドレスに基づいて生成されます |
| #country_code | 国コード | テキスト | サーバー側で収集 | ユーザーの所在国の国コード(ISO 3166-1 alpha-2、つまり大文字の英字2文字)。IPアドレスに基づいて生成されます |
| #province | 省 | テキスト | サーバー側で収集 | ユーザーの所在する省・州。IPアドレスに基づいて生成されます |
| #city | 都市 | テキスト | サーバー側で収集 | ユーザーの所在都市。IPアドレスに基づいて生成されます |
| #os_version | OS バージョン | テキスト | 初期化時に1回収集 | OSのバージョン番号を表示:15.6.1 |
| #manufacturer | デバイスのメーカー | テキスト | 初期化時に1回収集 | ユーザーのデバイスのメーカー。Appleなど |
| #os | OS | テキスト | 初期化時に1回収集 | iOSなど |
#device_id | デバイスID | テキスト | 初期化時に1回収集 | ユーザーのデバイスID。iOSではユーザーのIDFVまたはUUIDを取得します |
| #device_type | デバイスタイプ | テキスト | 初期化時に1回収集 | デバイスタイプ。iPhone、iPadなど |
| #screen_height | 画面の高さ | 数値 | 初期化時に1回収集 | ユーザーのデバイスの画面の高さ。667など |
| #screen_width | 画面の幅 | 数値 | 初期化時に1回収集 | ユーザーのデバイスの画面の幅。375など |
| #device_model | デバイスモデル | テキスト | 初期化時に1回収集 | ユーザーのデバイスのモデル。iPhone12,8など |
| #app_version | APPバージョン | テキスト | 初期化時に1回収集 | APPのバージョン |
| #bundle_id | アプリの一意の識別子 | テキスト | 初期化時に1回収集 | アプリパッケージ名 |
#lib | SDKタイプ | テキスト | イベント発生時に収集 | 接続したSDKのタイプ。Android、iOSなど |
| #lib_version | SDKバージョン | テキスト | イベント発生時に収集 | 接続したSDKのバージョン |
#network_type | ネットワーク状態 | テキスト | 初期化時に1回収集、ネットワーク状態の変化時に収集 | イベント送信時のネットワーク状態。WIFI、3G、4Gなど |
#carrier | 通信キャリア | テキスト | 初期化時に1回収集 | ユーザーのデバイスの通信キャリア。中国移动、中国电信など。iOS 16.4以降のシステムバージョンでは、このフィールドは収集されません |
#zone_offset | タイムゾーンオフセット | 数値 | イベント発生時に収集 | データ時刻のUTCからのオフセット時間数 |
#install_time | アプリのインストール時間 | 時間 | 初期化時に1回収集 | ユーザーがアプリをインストールした時間。値はシステムから取得されます |
| #simulator | エミュレーターかどうか | ブール値 | 初期化時に1回収集 | デバイスがシミュレーターかどうか(true/false) |
#ram | デバイスのメモリ状態 | テキスト | イベント発生時に収集 | ユーザーのデバイスの現在の空きメモリと総メモリ。単位はGB。1.4/2.4など |
#disk | デバイスのストレージ状態 | テキスト | イベント発生時に収集 | ユーザーのデバイスの現在の空きストレージ容量と総ストレージ容量。単位はGB。30/200など |
#fps | デバイスFPS | 数値 | イベント発生時に収集 | ユーザーのデバイスの現在の1秒あたりのフレームレート。60など(v3.2.0以降のSDKではデフォルトでこのフィールドを収集しません) |
#system_language | システム言語 | テキスト | イベント発生時に収集 | ユーザーのデバイスのシステム言語(ISO 639-1、つまり小文字の英字2文字)。zh、enなど |
| #relaunched_in_background | アプリがバックグラウンドにあるかどうか | ブール値 | イベント発生時に収集 | APPがバックグラウンドで起動された場合、収集されるイベントでこのプロパティはYESになります。 APPが通常どおり起動された場合、収集されるイベントにこのプロパティは含まれません。 |
2. 自動収集イベントのプリセットプロパティ
以下のプリセットプロパティは、各自動収集イベントに固有のプリセットプロパティです
- APP起動イベント(ta_app_start)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #resume_from_background | バックグラウンドからの復帰かどうか | ブール値 | APPが開かれたのか、バックグラウンドから復帰したのかを示します。値がtrueの場合はバックグラウンドからの復帰、falseの場合は直接開かれたことを示します |
#start_reason | アプリの起動元 | テキスト | APPの起動理由を表します。内容はJSON文字列です。現在、deeplink、プッシュ、3dtouchによる起動理由の収集に対応しています。データ例は{url:"thinkingdata://","data":{}}を参照してください |
#background_duration | バックグラウンド滞在時間 | 数値 | 2回のstartイベントの間に、アプリがバックグラウンドに滞在した時間を記録します。単位は秒です |
- APP終了イベント(ta_app_end)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #duration | イベント継続時間 | 数値 | 今回のAPPアクセス(起動から終了まで)の時間を示します。単位は秒です |
- 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 | 例外情報 | テキスト | 文字列型。クラッシュ時のスタックトレースを記録します |
3. その他のプリセットプロパティ
上記のプリセットプロパティのほかに、対応するインターフェースを呼び出した場合にのみ記録されるプリセットプロパティもあります:
| プロパティ名 | 日本語名 | プロパティタイプ | 説明 |
#duration | イベントの所要時間 | 数値 | 計測機能のインターフェースtimeEventを呼び出す必要があります。イベントの継続時間を記録します。単位は秒です |
| #background_duration | バックグラウンド滞在時間 | 数値 | 計測機能のインターフェースtimeEventを呼び出す必要があります。イベントの発生期間中に、アプリがバックグラウンドに滞在した時間を記録します。単位は秒です |
4. プリセットプロパティの取得
v2.7.0以降のバージョンでは、getPresetPropertiesメソッドを呼び出してプリセットプロパティを取得できます。
サーバー側のトラッキングでApp側のプリセットプロパティが必要な場合は、このメソッドでApp側のプリセットプロパティを取得してから、サーバー側に渡すことができます。
- Objective-C
- Swift
//プロパティオブジェクトを取得
TDPresetProperties *presetProperties = [TDAnalytics getPresetProperties];
//イベントのプリセットプロパティを生成
NSDictionary *properties = [presetProperties toEventPresetProperties];
/*
{
"#carrier": "中国电信",
"#os": "iOS",
"#device_id": "A8B1C00B-A6AC-4856-8538-0FBC642C1BAD",
"#screen_height": 2264,
"#bundle_id": "com.sw.thinkingdatademo",
"#manufacturer": "Apple",
"#device_model": "iPhone7",
"#screen_width": 1080,
"#system_language": "zh",
"#os_version": "10",
"#network_type": "WIFI",
"#zone_offset": 8,
}
*/
//特定のプリセットプロパティを取得
NSString *bundle_id = presetProperties.bundle_id;//パッケージ名
NSString *os = presetProperties.os;//OSの種類。iOSなど
NSString *system_language = presetProperties.system_language;//スマートフォンのシステム言語の種類
NSNumber *screen_width = presetProperties.screen_width;//画面の幅
NSNumber *screen_height = presetProperties.screen_height;//画面の高さ
NSString *device_model = presetProperties.device_model;//デバイスモデル
NSString *device_id = presetProperties.device_id;//デバイスの一意の識別子
NSString *carrier = presetProperties.carrier;//スマートフォンのSIMカードの通信キャリア情報。デュアルSIMの場合は、メインSIMの通信キャリア情報を取得
NSString *manufacture = presetProperties.manufacturer;//スマートフォンのメーカー。Appleなど
NSString *network_type = presetProperties.network_type;//ネットワークの種類
NSString *os_version = presetProperties.os_version;//システムのバージョン番号
NSNumber *zone_offset = presetProperties.zone_offset;//タイムゾーンオフセット
let presetProperties = TDAnalytics.getPresetProperties();
//イベントのプリセットプロパティを生成
let properties = presetProperties.toEventPresetProperties();
//特定のプリセットプロパティを取得
let bundle_id = presetProperties.bundle_id;//パッケージ名
let os = presetProperties.os;//OSの種類。iOSなど
let system_language = presetProperties.system_language;//スマートフォンのシステム言語の種類
let screen_width = presetProperties.screen_width;//画面の幅
let screen_height = presetProperties.screen_height;//画面の高さ
let device_model = presetProperties.device_model;//デバイスモデル
let device_id = presetProperties.device_id;//デバイスの一意の識別子
let carrier = presetProperties.carrier;//スマートフォンのSIMカードの通信キャリア情報。デュアルSIMの場合は、メインSIMの通信キャリア情報を取得
let manufacture = presetProperties.manufacturer;//スマートフォンのメーカー。Appleなど
let network_type = presetProperties.network_type;//ネットワークの種類
let os_version = presetProperties.os_version;//システムのバージョン番号
let zone_offset = presetProperties.zone_offset;//タイムゾーンオフセット値
IP、国、都市の情報はサーバー側で解析して生成されるため、クライアントにはこれらのプロパティを取得するインターフェースはありません
5. プリセットプロパティの収集の無効化
シナリオによっては、コンプライアンスや実際の業務要件などを考慮して、一部のプリセットプロパティの収集を禁止したい場合があります。プロジェクトのinfo.plistファイルにTDDisPresetPropertiesフィールド(タイプはArray)を追加すると、追加したフィールドに対応するプリセットプロパティは送信されなくなります。たとえば、@"#fps", @"#ram", @"#disk", @"#start_reason", @"#simulator"などのプリセットプロパティをブロックする場合は、次の図のように設定します:
デバイスIDをブロックした状態で初回イベントを使用する場合は、必ずfirst_check_idプロパティを指定してください

