규정 준수 가이드
1. 최신 SDK 버전 안내
새로운 규제 요건을 충족하는 최신 SDK 버전: 1.7.6
2. 권한 사용 규정 준수 요구 사항
| 권한 이름 | 권한 설명 | 사용 목적 | 권한 요청 시점 |
|---|---|---|---|
| ohos.permission.INTERNET | Internet 네트워크 사용 허용 | 데이터 전송 기능을 사용할 때 네트워크 데이터에 액세스하는 데 사용 | SDK 초기화 시 또는 데이터 전송 인터페이스 호출 시 |
| ohos.permission.GET_NETWORK_INFO | 앱의 네트워크 정보 가져오기 허용 | 데이터 전송 기능을 사용할 때 SDK가 네트워크 상태에 따라 데이터 전송 여부를 결정 | SDK 초기화 시 |
| ohos.permission.STORE_PERSISTENT_DATA | 앱의 영구 데이터 저장 허용 | 앱을 삭제한 후에도 유지되어야 하는 데이터 저장 | SDK 초기화 시 |
3. 지연 초기화 요구 사항
앱이 유저의 동의를 받기 전에 SDK가 유저의 개인 정보를 미리 처리하지 않도록, SDK는 유저가 '개인정보 처리방침'에 동의한 후 초기화해야 합니다.
예시 코드는 다음과 같습니다:
// 개인정보 처리방침 동의 여부에 따라 데이터 수집 활성화 여부 결정
if (isPrivacyPolicyAccepted) { // 유저가 '개인정보 처리방침'에 동의함
TDAnalytics.init(context, "appId", "serverUrl")
}
SDK는 초기화할 때 OS 버전, 디바이스 제조사, 운영 체제, 화면 해상도, 디바이스 모델, APP 버전, 네트워크 상태, 네트워크 통신사, 앱 설치 시간, 시스템 언어 등의 정보를 수집하며, 이는 통계 분석 기능에 사용됩니다.
4. SDK 선택적 개인 정보 설정 안내
개발자는 아래 SDK 선택적 개인 정보 설정 예시를 참고하여 설정할 수 있습니다. SDK를 초기화할 때 disablePresetProperties 파라미터를 설정하여 비활성화할 디바이스 정보 배열을 지정할 수 있습니다. disablePresetProperties의 기본값은 빈 배열이며, 이는 기본적으로 모든 시스템 속성을 수집한다는 뜻입니다. 특정 시스템 속성을 비활성화해야 하는 경우 비활성화할 시스템 속성을 disablePresetProperties 배열에 추가하면 됩니다.
다음은 SDK의 모든 이벤트에서 기본적으로 수집하는 시스템 속성입니다:
| 속성 이름 | 한국어 이름 | 속성 타입 | 수집 시점 | 설명 |
|---|---|---|---|---|
#ip | IP 주소 | 텍스트 | 서버 측 수집 | 유저의 IP 주소로, AE는 이를 기반으로 유저의 지리적 위치 정보를 가져옵니다 |
| #country | 국가 | 텍스트 | 서버 측 수집 | 유저가 있는 국가로, IP 주소를 기반으로 생성됩니다 |
#country_code | 국가 코드 | 텍스트 | 서버 측 수집 | 유저가 있는 국가의 국가 코드(ISO 3166-1 alpha-2, 즉 영문 대문자 2자리)로, IP 주소를 기반으로 생성됩니다 |
| #province | 성(Province) | 텍스트 | 서버 측 수집 | 유저가 있는 성/주로, IP 주소를 기반으로 생성됩니다 |
| #city | 도시 | 텍스트 | 서버 측 수집 | 유저가 있는 도시로, IP 주소를 기반으로 생성됩니다 |
| #os_version | OS 버전 | 텍스트 | 초기화 시 1회 수집 | iOS 11.2.2, Android 8.0.0 등 |
#manufacturer | 디바이스 제조사 | 텍스트 | 초기화 시 1회 수집 | 유저 디바이스의 제조사(예: Apple, vivo 등) |
| #os | 운영 체제 | 텍스트 | 초기화 시 1회 수집 | 예: Android, iOS, HarmonyOS 등 |
| #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회 수집 | 앱 패키지명 또는 프로세스명 |
#lib | SDK 타입 | 텍스트 | 초기화 시 1회 수집 | 연동한 SDK의 타입(예: Android, iOS 등) |
| #lib_version | SDK 버전 | 텍스트 | 초기화 시 1회 수집 | 연동한 SDK의 버전 |
| #network_type | 네트워크 상태 | 텍스트 | 초기화 시 1회 수집, 네트워크 상태 변경 시 수집 | 이벤트를 업로드할 때의 네트워크 상태(예: WIFI, 3G, 4G 등) |
#carrier | 네트워크 통신사 | 텍스트 | 초기화 시 1회 수집 | 유저 디바이스의 네트워크 통신사(예: China Mobile, China Telecom 등) |
#zone_offset | 시간대 오프셋 | 숫자 | 이벤트 발생 시 수집 | 데이터 시간과 UTC 시간의 차이(시간 단위) |
| #install_time | 앱 설치 시간 | 시간 | 초기화 시 1회 수집 | 유저가 앱을 설치한 시간으로, 값은 시스템에서 가져옵니다 |
#system_language | 시스템 언어 | 텍스트 | 초기화 시 1회 수집 | 유저 디바이스의 시스템 언어(ISO 639-1, 즉 영문 소문자 2자리), 예: zh, en 등 |
예를 들어 #os(운영 체제), #os_version(OS 버전)을 비활성화해야 하는 경우 설정 예시 코드는 다음과 같습니다:
let config = new TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#os", "#os_version"]
TDAnalytics.initWithConfig(context, config)
모든 시스템 속성을 비활성화해야 하는 경우 모든 속성을 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)
5. 개인정보 처리방침 공개 요구 사항 및 예시
ThinkingData SDK 서비스를 연동하고 사용하기 전에, 개인정보 처리방침에서 유저에게 당사 SDK의 이름, SDK 제공자 이름, 수집하는 개인 정보 유형, 사용 목적, 개인정보 처리방침 링크를 고지하고 유저의 동의를 받거나 기타 적법한 근거를 확보해야 합니다. 다음 방식을 참고하여 조항 내용을 제공할 수 있습니다:
서드파티 SDK 이름: ThinkingData SDK
서드파티 회사 이름: 数数信息科技(上海)有限公司
수집하는 개인 정보 유형: '개인정보 처리방침'의 개인정보 수집 및 획득 항목에 실제 상황에 따라 다음 내용을 기재합니다. 귀하가 활성화하여 사용할 때, 당사는 ThinkingData SDK를 통해 귀하의 디바이스 정보(IP 주소로 확인한 위치 정보, 국가, 국가 코드, 시/도, 도시, OS 버전, 디바이스 제조사, 운영 체제, 화면 해상도, 디바이스 모델, APP 버전, 네트워크 상태, 네트워크 통신사, 앱 설치 시간, 시스템 언어)를 수집합니다.
개인 정보 수집 시점: SDK 초기화 시 수집합니다.
사용 목적: 유저의 App 내 사용 효과를 통계 분석하는 데 사용합니다.
개인정보 처리방침 링크: ThinkingData SDK 개인정보 처리방침
6. 최종 유저 동의를 받는 권장 방식
App을 처음 실행할 때 개인정보 팝업을 표시해야 합니다. 개인정보 팝업에는 개인정보 처리방침 요약본을 게시하고 전문 링크를 첨부해야 하며, 최종 유저에게 개인정보 처리방침을 읽고 동의 여부를 선택하도록 명확하게 안내해야 합니다. 개인정보 팝업에는 동의 버튼과 동의 거부 버튼을 제공하고, 최종 유저가 직접 선택하도록 해야 합니다.
팝업 형식으로 유저의 동의를 받는 것을 권장합니다. 팝업 내용에는 ThinkingData SDK가 요청하는 권한과 수집하는 유저 관련 정보를 포함해야 합니다.
개인정보 처리방침 동의 팝업 예시:
민감 개인 정보 동의 팝업 예시:

