# 프리셋 속성
# 1. 프리셋 속성 설명
iOS, Android에서 수집할 수 있는 프리셋 속성은 다음 문서를 참고하세요.
비네이티브 플랫폼(PC, Switch 등의 터미널)의 프리셋 속성:
속성명 | 이름 | 타입 | 설명 |
---|---|---|---|
#ip | IP 주소 | 문자열 | 유저의 IP 주소, TA는 사용자의 지리적 위치 정보 |
#country | 국가 | 문자열 | 유저의 국가 또는 지역은 IP 주소에 기반하여 생성됨 |
#country_code | 국가 코드 | 문자열 | 유저의 소재 국가 또는 지역의 국가별 지역 코드(ISO 3166-1 alpha-2, 즉 2대문자 영문자)는 IP 주소에 기반하여 생성됨 |
#province | 주 | 문자열 | 유저의 주, IP 주소에 기반하여 생성됨 |
#city | 도시 | 문자열 | 유저의 도시는 IP 주소에 기반하여 생성됨 |
#os_version | OS 버전 | 문자열 | iOS 11.2.2, Android 8.0.0 등 |
#manufacturer | 디바이스 제조사 | 문자열 | Apple 등 유저 디바이스의 제조사 |
#os | OS | 문자열 | Android, iOS 등 |
#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 | 앱 버전 | 문자열 | 앱 버전 |
#bundle_id | 앱 패키지명(유니크) | 문자열 | 앱 패키지명 또는 프로세스명 |
#lib | SDK 타입 | 문자열 | SDK의 타입: Android, iOS 등 |
#lib_version | SDK 버전 | 문자열 | SDK의 버전 |
#network_type | 네트워크 타입 | 문자열 | 데이터 전송 시의 네트워크 상태: WIFI, 4G, 5G 등 |
#carrier | 통신사 | 문자열 | 유저 디바이스의 통신사: SK, KT, LG 등 |
#zone_offset | 시간대 | 숫자 | 데이터 시간 UTC 시간과의 편차 시간 수 |
#install_time | 설치 시간 | 시간 | 앱의 설치 시간 |
#simulator | 시뮬레이터 | 숫자 | 디바이스가 시뮬레이터인지 true/false |
#ram | 디바이스의 ram 상태 | 문자열 | 유저 디바이스의 현재 남은 ram과 총 ram, 단위는 GB, 예: 1.4/2.4 |
#disk | 디바이스의 스토리지 상태 | 문자열 | 유저 디바이스의 현재 남은 스토리지와 총 스토리지, 단위는 GB 예: 30/200 |
#fps | 디바이스의 프레임레이트 | 숫자 | 디바이스의 현재 화면의 프레임레이트: 60 |
#system_language | 시스템 언어 | 문자열 | 유저 디바이스의 시스템 언어(ISO 639-1) 예: jp, en |
# 2. 프리셋 속성 획득
v2.2.0 및 그 이후 버전은 getPresetProperties()
를 호출하여 프리셋 속성을 획득할 수 있습니다.
다음 방법으로 서버의 트래킹은 앱 측의 일부 프리셋 속성을 획득하고, 서버 측으로 전송할 수 있습니다.
//속성 객체 획득
TDPresetProperties presetProperties = ThinkingAnalyticsAPI.GetPresetProperties();
//모든 프리셋 속성 획득
Dictionary<string, object> eventPresetProperties = presetProperties.ToEventPresetProperties();
/*
{
"#carrier": "T-Mobile",
"#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 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;//디바이스 제조사, 예: Samsung
string networkType = presetProperties.NetworkType;//네트워크 타입
string osVersion = presetProperties.OSVersion;//시스템 버전 번호
double zoneOffset = presetProperties.ZoneOffset;//타임존 오프셋 값
string appVersion = presetProperties.appVersion;//앱 버전
IP, 국가, 도시 정보는 서버 측에서 분석하여 생성되며, 클라이언트 측 호출로 제공되지 않습니다.
# 3. 프리셋 속성 수집 금지
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>