menu
Is this helpful?

# 프리셋 속성

# 1. 모든 이벤트에 포함되는 프리셋 속성

다음 프리셋 속성들은 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

앱 버전

문자열

초기화 시 1회 수집

앱 버전

#bundle_id

앱 패키지명(유니크)

문자열

초기화 시 1회 수집

앱 패키지 이름 또는 프로세스 이름

#lib

SDK 타입

문자열

초기화 시 1회 수집

SDK의 타입: Android, iOS 등

#lib_version

SDK 버전

문자열

초기화 시 1회 수집

SDK의 버전

#network_type

네트워크 타입

문자열

초기화 시 1회 수집하고, 네트워크 상태 변경 시 수집

데이터 전송 시 네트워크 상태: WIFI, 4G, 5G 등

#carrier

통신사

문자열

초기화 시 1회 수집

유저 디바이스의 통신사: SK, KT, LG 등

#zone_offset

시간대

숫자

이벤트 발생 시 수집

데이터 시간 UTC 시간과의 차이 시간 수

#install_time

설치 시간

시간

초기화 시 1회 수집

앱의 설치 시간

#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) 예: kr, en 등

# 2. 자동 수집 이벤트의 프리셋 속성

다음 프리셋 속성들은 자동 수집 이벤트에서 특유의 프리셋 속성입니다.

  • 앱 시작 이벤트(ta_app_start)의 프리셋 속성

속성 이름

이름

타입

설명

#resume_from_background

백그라운드에서 재시작 여부

문자열

APP의 시작이 직접 시작인지, 백그라운드에서 재시작인지. true는 백그라운드에서 재시작이고, false는 직접 시작입니다.

#start_reason

애플리케이션의 시작 원인

문자열

JSON 문자열입니다. 앱이 URL 또는 Intent를 사용하여 열릴 경우, URL의 내용과 Intent의 데이터를 자동으로 기록합니다. 예: {url:"thinkingdata://", "data":{}}

#background_duration

백그라운드 체류 시간

숫자

start 이벤트가 2회 발생한 간격 동안 앱이 백그라운드에 있던 시간, 단위: 초
- 앱 종료 이벤트(ta_app_end)의 프리셋 속성

속성 이름

이름

타입

설명

#duration

이벤트 시간 경과

숫자

APP 시작부터 종료까지의 시간 경과, 단위는 초
- 앱 브라우징 페이지 이벤트(ta_app_view)의 프리셋 속성:

속성 이름

이름

타입

설명

#title

페이지 제목

문자열

view가 속한 Activity의 제목으로, Activity의 title 속성으로 값이 부여됩니다.

#screen_name

페이지 이름

문자열

view가 속한 Activity의 패키지명, 카테고리명

#url

페이지 URL

문자열

현재 페이지의 URL, getScreenUrl을 호출하여 URL 설정이 필요합니다.

#referrer

리퍼러

문자열

이 페이지로 이동하기 전의 URL로, getScreenUrl을 호출하여 설정이 필요합니다.
- 앱 view 클릭 이벤트(ta_app_click)의 프리셋 속성

속성 이름

이름

타입

설명

#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 크래시 이벤트(ta_app_crash)의 프리셋 속성

속성 이름

이름

타입

설명

#app_crashed_reason

이상 정보

문자열

크래시 발생 시의 스택 트레이스가 기록됩니다.

# 3. 기타 프리셋 속성

위에서 언급된 프리셋 속성 외에, 호출 후 기록되는 프리셋 속성:

속성 이름

이름

타입

설명

#duration

경과 시간

숫자

timeEvent 함수를 호출하여, 이벤트의 경과 시간을 기록합니다. 단위는 초

#background_duration

백그라운드 경과 시간

숫자

timeEvent 함수를 호출하여, 이벤트의 경과 시간을 기록합니다. 단위는 초

# 4. 프리셋 속성 획득

v2.7.0 및 그 이후 버전에서는 getPresetProperties()를 호출하여 프리셋 속성을 가져올 수 있습니다.

다음 방법으로 서버 트래킹은 앱 측의 일부 프리셋 속성을 가져와 서버 측으로 전송할 수 있습니다.

    // 속성 객체 가져오기
   TDPresetProperties presetProperties = instance.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.bundle_id; // 패키지 이름
    String os = presetProperties.os; // OS 타입, 예: Android
    String system_language = presetProperties.system_language; // 모바일 시스템 언어 타입
    int screen_width = presetProperties.screen_width; // 화면 너비
    int screen_height = presetProperties.screen_height; // 화면 높이
    String device_model = presetProperties.device_model; // 디바이스 모델
    String device_id = presetProperties.device_id; // 디바이스의 고유 식별자
    String carrier = presetProperties.carrier; // SIM 카드 운영자 정보. 듀얼 카드 대기 모드에서 주 카드의 운영 정보를 가져와야 합니다.
    String manufacture = presetProperties.manufacture; // 휴대폰 제조사, 예: Huawei
    String network_type = presetProperties.network_type; // 네트워크 타입
    String os_version = presetProperties.os_version; // 시스템 버전 번호
    String app_version = presetProperties.app_version; // 앱 버전 번호
    double zone_offset = presetProperties.zone_offset; // 타임존 오프셋 값
    String ram = presetProperties.ram; // 저장소 사용량
    String disk = presetProperties.disk; // 디스크 사용량
    int fps = presetProperties.fps; // fps
    String installTime = presetProperties.installTime; // 앱 설치 시간
    boolean isSimulator = presetProperties.isSimulator; // 디바이스가 시뮬레이터인지 여부

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 측에서는 코드 레벨에서 완전히 격리할 수 있습니다. 격리된 후에는 앱 내에서 속성을 가져오는 코드가 전혀 남지 않습니다. 자세한 내용은 자동 수집 가이드에서 확인하실 수 있습니다.