# プリセットプロパティ
# 全てのイベントが付帯するプリセットプロパティ
以下のプリセットプロパティはAndroid SDK 中で全てのイベント(自動収集イベント含め)が付帯するプリセットプロパティとなります。
| プロパティ名 | 名称 | タイプ | 収集タイミング | 説明 |
|---|---|---|---|---|
| #ip | IP アドレス | 文字列 | サーバー側で収集 | ユーザのIPアドレス、TAはユーザの地理的位置情報 |
| #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などのユーザーデバイスのメーカー |
| #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回収集 | APPパッケージ名もしくはプロセス名 |
| #lib | SDK タイプ | 文字列 | 初期化時に1回収集 | SDKのタイプ:Android,iOSなど |
| #lib_version | SDK バージョン | 文字列 | 初期化時に1回収集 | SDKのバージョン |
| #network_type | ネットワークタイプ | 文字列 | 初期化時に1回収集し、ネットワーク状態の変化時に収集 | データ送信時のネットワーク状態:WIFI、4G、5Gなど |
| #carrier | キャリア | 文字列 | 初期化時に1回収集 | ユーザーデバイスのキャリア:Docomo、Softbankなど |
| #zone_offset | タイムゾーン | 数値 | イベント発生時に収集 | データ時間UTC時間との偏位時間数 |
| #install_time | インストール時間 | 時間 | 初期化時に1回収集 | APPのインストール時間 |
| #simulator | シミュレーター | 数値 | 初期化時に1回収集 | デバイスはシミュレーター true/false |
| #ram | デバイスのram状態 | 文字列 | イベント発生時に収集 | ユーザーデバイスの現在残りramと総ram、単位はGB、1.4/2.4 |
| #disk | デバイスのストレージ状態 | 文字列 | イベント発生時に収集 | ユーザーデバイスの現在残りストレージと総ストレージ、単位はGB 30/200 |
| #fps | デバイスのフレームレート | 数値 | イベント発生時に収集 | ユーザーデバイスの現在画面のフレームレート:60 |
| #system_language | システム言語 | 文字列 | 初期化時に1回収集 | ユーザーデバイスのシステム言語(ISO 639-1)jp, enなど |
# 自動収集イベントのプリセットプロパティ
以下のプリセットプロパティは、自動収集イベントの中で特有のプリセットプロパティとなります。
- APP 起動イベント(ta_app_start)のプリセットプロパティ
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #resume_from_background | バックグラウンドから再開かどうか | 文字列 | APPの起動は直接起動なのか、バックグラウンドから再開なのか。trueはバックグラウンドから再開で、falseは直接起動となります。 |
| #start_reason | アプリケーションの起動元 | 文字列 | JSON文字列です。アプリがURLまたはIntentを使用して開かれる場合、URLの内容とIntentのデータを自動的に記録します。例:{url:"thinkingdata://","data":{}} |
| #background_duration | バックグラウンド滞在時間 | 数値 | startイベントが2回発生した間隔内で、アプリがバックグラウンドにある時間、 単位:秒 |
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #duration | イベント時間経過 | 数値 | APP起動からの時間経過(起動からクローズ)、単位は秒 |
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #title | ページタイトル | 文字列 |
viewが属しているActivityのタイトルで、Activityのtitleプロパティで値を付与されます |
| #screen_name | ページ名称 | 文字列 |
viewが属しているActivityのパッケージ名、カテゴリ名 |
| #url | ページURL | 文字列 |
現在ページのURL、getScreenUrlを呼び出してURLの設定を行う必要があります。 |
| #referrer | リファラー | 文字列 |
本ページに移動する前のURLで、getScreenUrlを呼び出して設定が必要です。 |
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #title | ページタイトル | 文字列 |
viewが属しているActivityのタイトルで、Activityのtitleプロパティで値を付与されます |
| #screen_name | ページ名称 | 文字列 |
viewが属しているActivityのパッケージ名、カテゴリ名 |
| #element_id | エレメント ID | 文字列 |
viewのID、デフォルトでandroid:idを使用、setViewIDを呼び出しして設定可能です。 |
| #element_type | エレメントタイプ | 文字列 | viewのタイプ |
| #element_selector | エレメントセレクター | 文字列 |
viewのviewPathのスプライシング |
| #element_position | エレメント位置 | 文字列 |
viewの位置情報、viewがpositionプロパティが存在する時に送信されます |
| #element_content | エレメント内容 | 文字列 | view上の内容 |
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #app_crashed_reason | 異常情報 | 文字列 | クラッシュ発生時のスタックトレースを記録されます |
# その他プリセットプロパティ
上記以外のプリセットプロパティとして、一部呼び出ししてから記録されるプリセットプロパティ:
| プロパティ名 | 名称 | タイプ | 説明 |
|---|---|---|---|
| #duration | 経過時間 | 数値 | 時間経過機能timeEventを呼び出して、イベントの経過時間を記録される。単位は秒 |
| #background_duration | バックグラウンドの経過時間 | 数値 | 時間経過機能timeEventを呼び出して、イベントの経過時間を記録される。単位は秒 |
# プリセットプロパティを取得
v2.7.0とそれ以降のバージョンはgetPresetProperties()を呼び出ししてプリセットプロパティを取得できます。
以下の方法でサーバのトラッキングはApp側の一部プリセットプロパティを取得し、サーバ側に転送できます。
//get property objects
TDPresetProperties presetProperties = instance.getPresetProperties();
//Preset properties of Event
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
}
*/
//get a certain preset properties
String bundle_id = presetProperties.bundle_id;//package name
String os = presetProperties.os;//os type, e.g., Android
String system_language = presetProperties.system_language;//type of mobile phone system language
int screen_width = presetProperties.screen_width;//screen width
int screen_height = presetProperties.screen_height;//screen height
String device_model = presetProperties.device_model;//device model
String device_id = presetProperties.device_id;//unique identifier of device
String carrier = presetProperties.carrier;//information about operator of the SIM card. Operation information of the primary card should be get under dual-card dual-standby mode
String manufacture = presetProperties.manufacture;//mobile phone manufacturer, e.g., HuaWei
String network_type = presetProperties.network_type;//network type
String os_version = presetProperties.os_version;//system version number
String app_version = presetProperties.app_version;//app version number
double zone_offset = presetProperties.zone_offset;//timezone offset value
String ram = presetProperties.ram;//storage usage
String disk = presetProperties.disk;//disk usage
int fps = presetProperties.fps;//fps
String installTime = presetProperties.installTime;//app installation time
boolean isSimulator = presetProperties.isSimulator;//the device is a simulator or not
IP、国都市の情報はサーバ側で解析して生成され、クライアントからの呼び出しが提供されていません。
# プリセットプロパティ収集を禁止
特定の場合で、プリセットプロパティ収集を禁止したい場合、プロジェクトカテゴリの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>
Android IDプロパティについて、TE側はコードレベルでの完全隔離が対応できます。隔離された後で、APP内ではプロパティを取得するコードは一切なくなります。詳しくは自動収集にて参照ください。
