プリセットプロパティ
1. すべてのイベントに付与されるプリセットプロパティ
次のプリセットプロパティは、Android SDKのすべてのイベント(自動収集イベントを含む)に付与されます
| プロパティ名 | 画面表示名 | プロパティタイプ | 収集タイミング | 説明 |
|---|---|---|---|---|
#ip | IPアドレス | テキスト | サーバー側で収集 | ユーザーのIPアドレス。AEはこれを基にユーザーの位置情報を取得します |
| #country | 国 | テキスト | サーバー側で収集 | ユーザーの所在国。IPアドレスに基づいて生成されます |
#country_code | 国コード | テキスト | サーバー側で収集 | ユーザーの所在国の国コード(ISO 3166-1 alpha-2、つまり大文字の英字2文字)。IPアドレスに基づいて生成されます |
| #province | 省 | テキスト | サーバー側で収集 | ユーザーの所在する省・州。IPアドレスに基づいて生成されます |
| #city | 都市 | テキスト | サーバー側で収集 | ユーザーの所在都市。IPアドレスに基づいて生成されます |
| #os_version | OS バージョン | テキスト | 初期化時に1回収集 | iOS 11.2.2、Android 8.0.0など |
#manufacturer | デバイスのメーカー | テキスト | 初期化時に1回収集 | ユーザーのデバイスのメーカー。Apple、vivoなど |
| #os | OS | テキスト | 初期化時に1回収集 | Android、iOSなど |
| #device_id | デバイスID | テキスト | 初期化時に1回収集 | ユーザーのデバイスID。iOSではユーザーのIDFVまたはUUID、AndroidではandroidIDを取得 |
| #screen_height | 画面の高さ | 数値 | 初期化時に1回収集 | ユーザーのデバイスの画面の高さ。1920など |
| #screen_width | 画面の幅 | 数値 | 初期化時に1回収集 | ユーザーのデバイスの画面の幅。1080など |
| #device_model | デバイスモデル | テキスト | 初期化時に1回収集 | ユーザーのデバイスのモデル。iPhone 8など |
| #device_type | デバイスタイプ | テキスト | 初期化時に1回収集 | デバイスタイプ。"Tablet"、"Phone"など |
| #app_version | APPバージョン | テキスト | 初期化時に1回収集 | APPのバージョン |
| #bundle_id | アプリの一意の識別子 | テキスト | 初期化時に1回収集 | アプリのパッケージ名またはプロセス名 |
#lib | SDKタイプ | テキスト | 初期化時に1回収集 | 接続したSDKのタイプ。Android、iOSなど |
| #lib_version | SDKバージョン | テキスト | 初期化時に1回収集 | 接続したSDKのバージョン |
| #network_type | ネットワーク状態 | テキスト | 初期化時に1回収集、ネットワーク状態の変化時に収集 | イベント送信時のネットワーク状態。WIFI、3G、4Gなど |
#carrier | 通信キャリア | テキスト | 初期化時に1回収集 | ユーザーのデバイスの通信キャリア。中国移动、中国电信など |
#zone_offset | タイムゾーンオフセット | 数値 | イベント発生時に収集 | データ時刻のUTCからのオフセット時間数 |
| #install_time | アプリのインストール時間 | 時間 | 初期化時に1回収集 | ユーザーがアプリをインストールした時間。値はシステムから取得されます |
| #simulator | エミュレーターかどうか | ブール値 | 初期化時に1回収集 | デバイスがシミュレーターかどうか(true/false) |
#ram | デバイスのメモリ状態 | テキスト | イベント発生時に収集 | ユーザーのデバイスの現在の空きメモリと総メモリ。単位はGB。1.4/2.4など(3.2.0以降のバージョンではデフォルトで収集されません) |
#disk | デバイスのストレージ状態 | テキスト | イベント発生時に収集 | ユーザーのデバイスの現在の空きストレージ容量と総ストレージ容量。 単位はGB。30/200など(3.2.0以降のバージョンではデフォルトで収集されません) |
#fps | デバイスのフレームレート | 数値 | イベント発生時に収集 | ユーザーのデバイスの現在の1秒あたりのフレームレート。60など(3.2.0以降のバージョンではデフォルトで収集されません) |
#system_language | システム言語 | テキスト | 初期化時に1回収集 | ユーザーのデバイスのシステム言語(ISO 639-1、つまり小文字の英字2文字)。zh、enなど |
2. 自動収集イベントのプリセットプロパティ
以下のプリセットプロパティは、各自動収集イベントに固有のプリセットプロパティです
- APP起動イベント(ta_app_start)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
#resume_from_background | バックグラウンドからの復帰かどうか | ブール値 | APPが開かれたのか、バックグラウンドから復帰したのかを示します。値がtrueの場合はバックグラウンドからの復帰、falseの場合は直接開かれたことを示します |
| #start_reason | アプリの起動元 | テキスト | 内容はJSON文字列です。アプリがurlまたはintentの方式でAPPを開いた場合、urlの内容とintent内のdataデータが自動的に記録されます。サンプル:{url:"thinkingdata://","data":{}} |
#background_duration | バックグラウンド滞在時間 | 数値 | 2回のstartイベントが発生する間に、アプリがバックグラウンドにあった時間を記録します。 単位:秒 |
- APP終了イベント(ta_app_end)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #duration | イベント継続時間 | 数値 | 今回のAPPアクセス(起動から終了まで)の時間を示します。単位は秒です |
- APPページ閲覧イベント(ta_app_view)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #title | ページタイトル | テキスト | コントロールが属するActivityのタイトル。値はtitle属性の値です |
| #screen_name | ページ名 | テキスト | コントロールが属するActivityのパッケージ名.クラス名 |
| #url | ページアドレス | テキスト | 現在のページのアドレス。getScreenUrlを呼び出してurlを設定する必要があります |
| #referrer | 参照元アドレス | テキスト | 遷移前のページのアドレス。遷移前のページでgetScreenUrlを呼び出してurlを設定する必要があります |
- APPコントロールクリックイベント(ta_app_click)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #title | ページタイトル | テキスト | コントロールが属するActivityのタイトル。値はActivityのtitle属性の値です |
| #screen_name | ページ名 | テキスト | コントロールが属するActivityのパッケージ名.クラス名 |
| #element_id | 要素ID | テキスト | コントロールのID。デフォルトではandroid:idを使用します。setViewIDを呼び出して設定できます |
| #element_type | 要素タイプ | テキスト | コントロールの種類 |
| #element_selector | 要素セレクター | テキスト | コントロールのviewPathを連結したもの |
| #element_position | 要素の位置 | テキスト | コントロールの位置情報。コントロールにposition属性がある場合にのみ送信されます |
| #element_content | 要素の内容 | テキスト | コントロール上の内容 |
- APPクラッシュイベント(ta_app_crash)のプリセットプロパティ
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
| #app_crashed_reason | 例外情報 | テキスト | 文字列型。クラッシュ時のスタックトレースを記録します |
3. その他のプリセットプロパティ
上記のプリセットプロパティのほかに、対応するインターフェースを呼び出した場合にのみ記録されるプリセットプロパティもあります:
| プロパティ名 | 画面表示名 | プロパティタイプ | 説明 |
|---|---|---|---|
#duration | イベント継続時間 | 数値 | 計測機能timeEventを呼び出す必要があります。イベントの継続時間を記録します。単位は秒です |
#background_duration | バックグラウンド滞在時間 | 数値 | 計測機能timeEventを呼び出す必要があります。イベントの発生期間中に、アプリがバックグラウンドにあった時間を記録します。単位は秒です |
4. プリセットプロパティの取得
v2.7.0以降のバージョンでは、getPresetProperties()メソッドを呼び出してプリセットプロパティを取得できます。
サーバー側のトラッキングでApp側のプリセットプロパティが必要な場合は、このメソッドでApp側のプリセットプロパティを取得してから、サーバー側に渡すことができます。
- Java
- Kotlin
//プロパティオブジェクトを取得
TDPresetProperties presetProperties = TDAnalytics.getPresetProperties();
//イベントのプリセットプロパティを生成
JSONObject properties = presetProperties.toEventPresetProperties();
/*
{
"#carrier": "T-Mobile",
"#os": "Android",
"#device_id": "dd4a508df0dbff08",
"#screen_height": 2560,
"#bundle_id": "cn.thinkingdata.android.demo",
"#device_model": "sdk_gphone64_arm64",
"#screen_width": 1440,
"#system_language": "en",
"#install_time": "2022-08-19 17:31:52.398",
"#simulator": true,
"#manufacturer": "Google",
"#os_version": "12",
"#app_version": "1.0",
"#network_type": "3G",
"#zone_offset": 8,
"#ram": "0.8\/1.9",
"#disk": "0.1\/0.8",
"#fps": 60
}
*/
//特定のプリセットプロパティを取得
String bundle_id = presetProperties.bundleId;//パッケージ名
String os = presetProperties.os;//osタイプ。Androidなど
String system_language = presetProperties.systemLanguage;//携帯電話のシステム言語タイプ
int screen_width = presetProperties.screenWidth;//画面の幅
int screen_height = presetProperties.screenHeight;//画面の高さ
String device_model = presetProperties.deviceModel;//デバイスモデル
String device_id = presetProperties.deviceId;//デバイスの一意の識別子
String carrier = presetProperties.carrier;//携帯電話のSIMカードのキャリア情報。デュアルSIMの場合は、メインカードのキャリア情報を取得
String manufacture = presetProperties.manufacture;//携帯電話のメーカー(HuaWeiなど)
String network_type = presetProperties.networkType;//ネットワークタイプ
String os_version = presetProperties.osVersion;//システムのバージョン番号
String app_version = presetProperties.appVersion;//appのバージョン番号
double zone_offset = presetProperties.zoneOffset;//タイムゾーンオフセット値
String ram = presetProperties.ram;//メモリ使用状況
String disk = presetProperties.disk;//ストレージ使用状況
int fps = presetProperties.fps;//fps
String installTime = presetProperties.installTime;//アプリのインストール時間
boolean isSimulator = presetProperties.isSimulator;//デバイスがエミュレーターかどうか
//プロパティオブジェクトを取得
val presetProperties = TDAnalytics.getPresetProperties()
//イベントのプリセットプロパティを生成
val properties = presetProperties.toEventPresetProperties()
/*
{
"#carrier": "T-Mobile",
"#os": "Android",
"#device_id": "dd4a508df0dbff08",
"#screen_height": 2560,
"#bundle_id": "cn.thinkingdata.android.demo",
"#device_model": "sdk_gphone64_arm64",
"#screen_width": 1440,
"#system_language": "en",
"#install_time": "2022-08-19 17:31:52.398",
"#simulator": true,
"#manufacturer": "Google",
"#os_version": "12",
"#app_version": "1.0",
"#network_type": "3G",
"#zone_offset": 8,
"#ram": "0.8\/1.9",
"#disk": "0.1\/0.8",
"#fps": 60
}
*/
//特定のプリセットプロパティを取得
val bundle_id: String = presetProperties.bundleId //パッケージ名
val os = presetProperties.os //osタイプ。Androidなど
val system_language: String = presetProperties.systemLanguage //携帯電話のシステム言語タイプ
val screen_width: Int = presetProperties.screenWidth //画面の幅
val screen_height: Int = presetProperties.screenHeight //画面の高さ
val device_model: String = presetProperties.deviceModel //デバイスモデル
val device_id: String = presetProperties.deviceId //デバイスの一意の識別子
val carrier = presetProperties.carrier //携帯電話のSIMカードのキャリア情報。デュアルSIMの場合は、メインカードのキャリア情報を取得
val manufacture = presetProperties.manufacture //携帯電話のメーカー(HuaWeiなど)
val network_type: String = presetProperties.networkType //ネットワークタイプ
val os_version: String = presetProperties.osVersion //システムのバージョン番号
val app_version: String = presetProperties.appVersion //appのバージョン番号
val zone_offset: Double = presetProperties.zoneOffset //タイムゾーンオフセット値
val ram = presetProperties.ram //メモリ使用状況
val disk = presetProperties.disk //ストレージ使用状況
val fps = presetProperties.fps //fps
val installTime = presetProperties.installTime //アプリのインストール時間
val isSimulator = presetProperties.isSimulator //デバイスがエミュレーターかどうか
IP、国、都市の情報はサーバー側で解析して生成されるため、クライアントにはこれらのプロパティを取得するインターフェースはありません
5. プリセットプロパティの収集の無効化
シナリオによっては、コンプライアンスや実際の業務要件などを考慮して、一部のプリセットプロパティの収集を禁止したい場合があります。プロジェクトディレクトリのres/valuesディレクトリにta_public_config.xmlファイルを追加し、収集を無効にするプロパティの配列を設定できます。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- ThinkingAnalytics DisablePresetProperties start -->
<string-array name="TDDisPresetProperties">
<!-- <item>#disk</item>-->
<!-- <item>#fps</item>-->
<!-- <item>#ram</item>-->
<!-- <item>#app_version</item>-->
<!-- <item>#os_version</item>-->
<!-- <item>#manufacturer</item>-->
<!-- <item>#device_model</item>-->
<!-- <item>#screen_height</item>-->
<!-- <item>#screen_width</item>-->
<!-- <item>#carrier</item>-->
<!-- <item>#device_id</item>-->
<!-- <item>#system_language</item>-->
<!-- <item>#lib</item>-->
<!-- <item>#lib_version</item>-->
<!-- <item>#os</item>-->
<!-- <item>#bundle_id</item>-->
<!-- <item>#install_time</item>-->
<!-- <item>#start_reason</item>-->
<!-- <item>#simulator</item>-->
<!-- <item>#network_type</item>-->
<!-- <item>#zone_offset</item>-->
<!-- <item>#start_reason</item>-->
<!-- <item>#resume_from_background</item>-->
<!-- <item>#title</item>-->
<!-- <item>#screen_name</item>-->
<!-- <item>#url</item>-->
<!-- <item>#referrer</item>-->
<!-- <item>#element_type</item>-->
<!-- <item>#element_id</item>-->
<!-- <item>#element_position</item>-->
<!-- <item>#element_content</item>-->
<!-- <item>#element_selector</item>-->
<!-- <item>#app_crashed_reason</item>-->
<!-- <item>#background_duration</item>-->
<!-- <item>#duration</item>-->
</string-array>
<!-- ThinkingAnalytics DisablePresetProperties end -->
</resources>
デバイスIDをブロックした状態で初回イベントを使用する場合は、必ずfirst_check_idプロパティを指定してください
Android IDプロパティについては、コードレベルでの完全な分離に対応しています。分離後は、アプリ内にこのプロパティを取得する関連コードが含まれなくなります。詳細は自動収集プラグインの設定の章を参照してください

