---
code: openharmony_sdk_preset_properties
name: "预置属性"
wikiToken: Y7OVwynlEiOxL1ktH4jcCODFnKc
parentWikiToken: Ci0xwEVoxiX0GSkkVPLc7bZRnQf
updateTime: 1766487536000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=openharmony_sdk_preset_properties
---
# 预置属性

### 一、 所有事件带有的预置属性

以下预置属性，是 OpenHarmony SDK 中所有事件（包括自动采集事件）都会带有的预置属性

**属性名**

**中文名**

**属性类型**

**采集时机**

**说明**

#ip

IP 地址

文本

服务端采集

用户的 IP 地址，AE 将以此获取用户的地理位置信息

#country

国家

文本

服务端采集

用户所在国家，根据 IP 地址生成

#country_code

国家代码

文本

服务端采集

用户所在国家的国家代码(ISO 3166-1 alpha-2，即两位大写英文字母)，根据 IP 地址生成

#province

省份

文本

服务端采集

用户所在省份，根据 IP 地址生成

#city

城市

文本

服务端采集

用户所在城市，根据 IP 地址生成

#os_version

操作系统版本

文本

初始化时采集一次

iOS 11.2.2、Android 8.0.0 等

#manufacturer

设备制造商

文本

初始化时采集一次

用户设备的制造商，如 Apple，vivo 等

#os

操作系统

文本

初始化时采集一次

如 Android、iOS、HarmonyOS 等

#device_id

设备 ID

文本

初始化时采集一次

用户的设备 ID，iOS 取用户的 IDFV 或 UUID，Android 取 androidID

#screen_height

屏幕高度

数值

初始化时采集一次

用户设备的屏幕高度，如 1920 等

#screen_width

屏幕宽度

数值

初始化时采集一次

用户设备的屏幕高度，如 1080 等

#device_model

设备型号

文本

初始化时采集一次

用户设备的型号，如 iPhone 8 等

#device_type

设备类型

文本

初始化时采集一次

设备类型，如 "Tablet"、"Phone"

#app_version

APP 版本

文本

初始化时采集一次

您的 APP 的版本

#bundle_id

应用唯一标识

文本

初始化时采集一次

应用包名或进程名

#lib

SDK 类型

文本

初始化时采集一次

您接入 SDK 的类型，如 Android，iOS 等

#lib_version

SDK 版本

文本

初始化时采集一次

您接入 SDK 的版本

#network_type

网络状态

文本

初始化时采集一次，网络状态变化时采集

上传事件时的网络状态，如 WIFI、3G、4G 等

#carrier

网络运营商

文本

初始化时采集一次

用户设备的网络运营商，如中国移动，中国电信等

#zone_offset

时区偏移

数值

事件发生时采集

数据时间相对 UTC 时间的偏移小时数

#install_time

程序安装时间

时间

初始化时采集一次

用户安装应用的时间，值来源于系统

#system_language

系统语言

文本

初始化时采集一次

用户设备的系统语言(ISO 639-1，即两位小写英文字母)，如 zh, en 等

### 二、获取预置属性

可以调用 `getPresetProperties()` 方法获取预置属性。

服务端埋点需要 App 端的一些预置属性时，可以通过此方法获取 App 端的预置属性，再传给服务端。

```
TDAnalytics.getPresetProperties()

/**
{
    "#os": "HarmonyOS",
    "#os_version": 10,
    "#bundle_id": "com.example.tdharmonyosdemo",
    "#install_time": "2023-10-19 18:46:00.105",
    "#manufacturer": "HUAWEI",
    "#device_model": "NOH-AN00",
    "#device_type": "phone",
    "#screen_width": 1344,
    "#screen_height": 2772,
    "#system_language": "zh-Hans",
    "#carrier": "中国电信",
    "#app_version": "1.0.1",
    "#device_id": "9811b90b-ee24-45c1-950a-77ee0ffc7a1c",
    "#zone_offset": 8
}
*/

```

### 三、关闭预置属性

在某些场景下，出于合规、实际业务需求等的考量，您也许期望禁止某些预置属性的采集。您可以在SDK初始化的时候配置`disablePresetProperties` 参数，用于配置需要禁用采集的属性数组。示例代码如下：

```
**let **config = **new **TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#lib", "#lib_version", "#os", "#os_version", "#bundle_id", "#install_time", "#manufacturer", "#device_model",
"#device_type", "#screen_width", "#screen_height","#system_language","#carrier","#app_version","#device_id","#network_type","#ip"]
TDAnalytics.initWithConfig(context, config)
```
