目录
此内容是否有帮助?

# 预置属性

# 一、预置属性说明

各个平台采集的预制属性会有一定的差异,具体可以参考如下文档: Android平台iOS平台

非Native平台(如PC,Switch等终端)的预制属性:** **

属性名
中文名
属性类型
说明
#ip
IP 地址
文本
用户的 IP 地址,TA 将以此获取用户的地理位置信息
#country
国家
文本
用户所在国家,根据 IP 地址生成
#country_code
国家代码
文本
用户所在国家的国家代码(ISO 3166-1 alpha-2,即两位大写英文字母),根据 IP 地址生成
#province
省份
文本
用户所在省份,根据 IP 地址生成
#city
城市
文本
用户所在城市,根据 IP 地址生成
#os_version
操作系统版本
文本
如windows10
#manufacturer
设备制造商
文本
显卡的厂商名称
#os
操作系统
文本
如 MacOS,Windows等
#device_id
设备 ID
文本
用户的设备 ID
#screen_height
屏幕高度
数值
用户设备的屏幕高度,如 1920 等
#screen_width
屏幕宽度
数值
用户设备的屏幕高度,如 1080 等
#device_model
设备型号
文本
用户设备的型号,如 iPhone 8 等
#app_version
APP 版本
文本
您的 APP 的版本
#bundle_id
应用唯一标识
文本
应用包名
#lib
SDK 类型
文本
您接入 SDK 的类型,如 Android,iOS 等
#lib_version
SDK 版本
文本
您接入 SDK 的版本
#network_type
网络状态
文本
上传事件时的网络状态,如 Mobile,LAN
#carrier
网络运营商
文本
用户设备的网络运营商,如中国移动,中国电信等
#zone_offset
时区偏移
数值
数据时间相对 UTC 时间的偏移小时数
#system_language
系统语言
文本
用户设备的系统语言(ISO 639-1,即两位小写英文字母),如 zh, en 等

# 二、获取预置属性

v2.2.0 及以后的版本可以调用 ThinkingAnalyticsAPI.GetPresetProperties() 方法获取预置属性。服务端埋点需要 App 端的一些预置属性时,可以通过此方法获取 App 端的预置属性,再传给服务端。

//获取属性对象
TDPresetProperties presetProperties = ThinkingAnalyticsAPI.GetPresetProperties();

//生成事件预置属性
Dictionary<string, object> eventPresetProperties = presetProperties.ToEventPresetProperties();
/*
   {
        "#carrier": "中国电信",
        "#os": "iOS",
        "#device_id": "A8B1C00B-A6AC-4856-8538-0FBC642C1BAD",
        "#screen_height": 2264,
        "#bundle_id": "com.sw.thinkingdatademo",
         "#app_version": "0.1",
        "#manufacturer": "Apple",
        "#device_model": "iPhone7",
        "#screen_width": 1080,
        "#system_language": "zh",
        "#os_version": "10",
        "#network_type": "WIFI",
        "#zone_offset": 8,
        "#app_version":"1.0.0"
    }
*/

//获取某个预置属性
string bundleId = presetProperties.BundleId;//包名
string appVersion = presetProperties.AppVersion;//App版本号
string os = presetProperties.OS;//os类型,如Android、iOS
string systemLanguage = presetProperties.SystemLanguage;//手机系统语言类型
int screenWidth = presetProperties.ScreenWidth;//屏幕宽度
int screenHeight = presetProperties.ScreenHeight;//屏幕高度
string deviceModel = presetProperties.DeviceModel;//设备型号
string deviceId = presetProperties.DeviceId;//设备唯一标识
string carrier = presetProperties.Carrier;//手机SIM卡运营商信息,双卡双待时,取主卡的运营商信息
string manufacture = presetProperties.Manufacturer;//手机制造商 如HuaWei、Apple
string networkType = presetProperties.NetworkType;//网络类型
string osVersion = presetProperties.OSVersion;//系统版本号
double zoneOffset = presetProperties.ZoneOffset;//时区偏移值
string appVersion = presetProperties.appVersion;//App版本号

IP,国家城市信息由服务端解析生成,客户端不提供接口获取这些属性

# 三、关闭预制属性采集

在 v2.3.1 及以上版本,支持屏蔽指定预制属性的上报。通过在 Resources 目录添加 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>#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> -->
    </string-array>
    <!-- ThinkingAnalytics DisablePresetProperties end -->
</resources>

#