고유 식별자 권장사항

이 문서에서는 사용 사례에 따라 앱에 적합한 식별자를 선택하는 방법을 안내합니다.

Android 권한에 관한 일반적인 내용은 권한 개요를 참고하세요. Android 권한을 사용하기 위한 구체적인 권장사항은 앱 권한 권장사항을 참고하세요.

Android 식별자 사용 권장사항

사용자의 개인 정보를 보호하려면 앱의 사용 사례를 만족시키는 가장 제한적인 식별자를 사용하세요. 특히 다음 권장사항을 따르세요.

  1. 가능한 경우 사용자가 재설정할 수 있는 식별자를 선택하세요. 앱은 재설정할 수 없는 하드웨어 ID 이외의 식별자를 사용하는 경우에도 대부분의 사용 사례를 달성할 수 있습니다.
  2. 하드웨어 식별자 사용을 피합니다. 대부분의 사용 사례에서는 필수 기능을 제한하지 않고 IMEI(International Mobile Equipment Identity)와 같은 하드웨어 식별자를 사용하지 않을 수 있습니다.

    Android 10 (API 수준 29)에서는 IMEI 및 일련번호를 포함하여 재설정할 수 없는 식별자 관련 제한사항을 추가합니다. 이러한 식별자에 액세스하려면 앱이 기기 또는 프로필 소유자 앱이거나 이동통신사 특수 권한이 있거나 READ_PRIVILEGED_PHONE_STATE 독점 권한이 있어야 합니다.

  3. 사용자 프로파일링이나 광고 사용 사례에는 광고 ID만 사용합니다. 광고 ID를 사용할 때는 항상 광고 추적과 관련하여 사용자의 선택을 존중합니다. 광고 식별자를 개인 식별 정보에 연결해야 한다면 사용자의 명시적인 동의가 있는 경우에만 연결해야 합니다.

  4. 광고 ID 재설정을 브리지하지 않습니다.

  5. 결제 사기 방지 및 전화 통신을 제외한 다른 모든 사용 사례에는 가능한 경우 항상 Firebase 설치 ID (FID) 또는 비공개로 저장된 GUID를 사용합니다. 광고가 아닌 대부분의 사용 사례에서는 FID나 GUID만으로 충분합니다.

  6. 사용 사례에 적합한 API를 사용하여 개인 정보 보호 위험을 최소화합니다. 중요한 콘텐츠 보호에는 DRM API를 사용하고 악용 방지에는 Play Integrity API를 사용합니다. Play Integrity API는 개인 정보 보호 위험을 야기하지 않고 기기가 진품인지 확인할 수 있는 가장 쉬운 방법입니다.

이 가이드의 나머지 섹션에서는 Android 앱 개발과 관련하여 이러한 규칙을 자세히 설명합니다.

광고 ID 사용

광고 ID는 사용자가 재설정할 수 있는 식별자이며 광고 사용 사례에 적합합니다. 그러나 이 ID를 사용할 때 유의해야 할 몇 가지 핵심 사항이 있습니다.

광고 ID를 재설정할 때 사용자의 의도를 항상 존중합니다. 사용자의 동의 없이 이후의 광고 ID를 서로 연결하는 데 다른 식별자나 지문을 사용하여 사용자 재설정을 연결하면 안 됩니다. Google Play 개발자 콘텐츠 정책에 다음과 같이 명시되어 있습니다.

'재설정 시 사용자의 명시적인 동의 없이 새 광고 식별자를 이전 광고 식별자 또는 이전 광고 식별자에서 파생된 데이터에 연결하면 안 됩니다.'

연결된 개인 맞춤 광고 플래그를 항상 존중합니다. 광고 ID는 사용자가 ID와 연결된 추적의 양을 제한할 수 있다는 점에서 구성할 수 있습니다. 항상 AdvertisingIdClient.Info.isLimitAdTrackingEnabled() 메서드를 사용하여 사용자의 요구사항을 회피하지 않도록 해야 합니다. Google Play 개발자 콘텐츠 정책에 다음과 같이 명시되어 있습니다.

'...사용자의 '관심 기반 광고 선택 해제' 또는 '광고 개인 최적화 선택 해제' 설정도 준수해야 합니다. 사용자가 이 설정을 사용 설정한 경우 광고 식별자를 사용하여 광고 목적으로 사용자 프로필을 만들거나 개인 맞춤 광고로 사용자를 타겟팅해서는 안 됩니다. 허용되는 작업으로는 문맥 광고, 최대 게재빈도 설정, 전환 추적, 보고 및 보안, 사기 감지 등이 있습니다.'

광고 ID 사용과 관련하여 사용하는 SDK에 연결된 개인정보 보호 또는 보안 정책에 유의합니다. 예를 들어 Google 애널리틱스 SDK에서 enableAdvertisingIdCollection() 메서드에 true를 전달하는 경우 적용되는 모든 애널리틱스 SDK 정책을 검토하고 준수해야 합니다.

또한 Google Play 개발자 콘텐츠 정책에 따라 광고 ID는 '개인 식별 정보에 연결되거나 영구 기기 식별자 (예: SSAID, MAC 주소, IMEI 등)에 연결되면 안 됩니다.'

예를 들어, 다음 열로 데이터베이스 테이블을 채우기 위해 정보를 수집한다고 가정해 보겠습니다.

TABLE-01
timestamp ad_id account_id clickid
TABLE-02
account_id name dob country

이 예에서 ad_id 열은 두 테이블의 account_id 열을 통해 PII에 조인될 수 있으며, 사용자로부터 명시적인 권한을 받지 않았다면 Google Play 개발자 콘텐츠 정책에 위배됩니다.

광고주 ID와 PII 간의 연결이 항상 이렇게 명확하지는 않다는 점에 유의하세요. PII와 광고 ID 키 테이블에 '유사 식별자'가 나타날 수 있으며 이 또한 문제가 발생합니다. 예를 들어 TABLE-01과 TABLE-02를 다음과 같이 변경한다고 가정해 보겠습니다.

TABLE-01
timestamp ad_id clickid dev_model
TABLE-02
timestamp demo account_id dev_model name

이 경우에도 클릭 이벤트가 매우 드물더라도 이벤트와 기기 모델의 타임스탬프를 사용하여 광고주 ID TABLE-01과 TABLE-02에 포함된 PII 사이를 조인할 수 있습니다.

데이터 세트에 이러한 유사 식별자가 없다고 보장하기 어려운 경우가 많지만 가능한 경우 고유 데이터를 일반화하면 가장 명백한 조인 위험을 방지할 수 있습니다. 이 경우 이전 예에서는 타임스탬프의 정확도가 떨어질 수 있으므로 모든 타임스탬프에 동일한 모델을 가진 여러 기기가 표시됩니다.

그 외에 다음과 같은 해결 방법이 있습니다.

  • PII와 광고 ID를 명시적으로 연결하는 테이블을 설계하지 않습니다. 이는 위의 첫 번째 예에서 account_id 열을 TABLE-01에 포함하지 않음을 의미합니다.

  • 광고 ID 키 데이터와 PII에 모두 액세스할 수 있는 사용자 또는 역할의 액세스 제어 목록(ACL) 분리 및 모니터링. 두 소스에 동시에 액세스하는 기능을 엄격하게 제어하고 감사하면 (예: 테이블 간 조인 실행) 광고 ID와 PII 간의 연결 위험을 줄일 수 있습니다. 일반적으로 액세스 제어는 다음을 수행하는 것을 의미합니다.

    1. 광고주 ID 키 데이터와 PII의 액세스 제어 목록 (ACL)을 분리 유지하여 두 ACL에 있는 개인 또는 역할의 수를 최소화합니다.
    2. 액세스 로깅 및 감사를 구현하여 이 규칙의 예외를 감지하고 관리합니다.

광고 ID를 책임감 있게 사용하는 방법에 관한 자세한 내용은 AdvertisingIdClient API 참조를 확인하세요.

FID 및 GUID 사용

기기에서 실행 중인 앱 인스턴스를 식별하는 가장 간단한 솔루션은 Firebase 설치 ID (FID)를 사용하는 것이며, 이는 대부분의 비광고 사용 사례에 권장되는 솔루션입니다. 인스턴스 ID가 프로비저닝된 앱 인스턴스만 이 식별자에 액세스할 수 있으며, 인스턴스 ID는 앱이 설치된 동안에만 지속되므로 비교적 쉽게 재설정할 수 있습니다.

따라서 FID는 재설정할 수 없는 기기 범위의 하드웨어 ID에 비해 더 나은 개인 정보 보호 속성을 제공합니다. 자세한 내용은 firebase.installations API 참조를 확인하세요.

FID가 실용적이지 않은 경우 맞춤 전역 고유 ID (GUID)를 사용하여 앱 인스턴스를 고유하게 식별할 수도 있습니다. 가장 간단한 방법은 다음 코드를 사용하여 자체 GUID를 생성하는 것입니다.

Kotlin

var uniqueID = UUID.randomUUID().toString()

Java

String uniqueID = UUID.randomUUID().toString();

식별자는 전역적으로 고유하므로 특정 앱 인스턴스를 식별하는 데 사용할 수 있습니다. 여러 앱 간에 식별자를 연결하는 것과 관련된 문제를 방지하려면 GUID를 외부 (공유) 저장소 대신 내부 저장소에 저장하세요. 자세한 내용은 데이터 및 파일 저장소 개요 페이지를 참고하세요.

MAC 주소로 작업하지 않음

MAC 주소는 전역적으로 고유하며, 사용자가 재설정할 수 없으며, 초기화 후에도 유지됩니다. 이러한 이유로 사용자 개인 정보 보호를 위해 Android 버전 6 이상에서는 MAC 주소 액세스가 시스템 앱으로 제한됩니다. 서드 파티 앱은 이러한 앱에 액세스할 수 없습니다.

Android 11의 MAC 주소 사용 가능 여부 변경사항

Android 11 이상을 타겟팅하는 앱에서는 Passpoint 네트워크의 MAC 주소 무작위 지정이 Passpoint 프로필별로 이루어지며, 다음 필드를 기반으로 고유한 MAC 주소를 생성합니다.

  • 정규화된 도메인 이름 (FQDN)
  • 영역
  • Passpoint 프로필에 사용된 사용자 인증 정보를 기반으로 한 사용자 인증 정보:
    • 사용자 인증 정보: 사용자 이름
    • 인증서 사용자 인증 정보: 인증서 및 인증서 유형
    • SIM 사용자 인증 정보: EAP 유형 및 IMSI

또한 권한이 없는 앱은 기기의 MAC 주소에 액세스할 수 없습니다. IP 주소가 있는 네트워크 인터페이스만 표시됩니다. 이는 RTM_GETLINK Netlink 메시지 전송뿐만 아니라 getifaddrs()NetworkInterface.getHardwareAddress() 메서드에도 영향을 미칩니다.

다음은 앱이 이 변경사항으로 인해 영향받는 방식의 목록입니다.

  • NetworkInterface.getHardwareAddress()는 모든 인터페이스를 대상으로 null을 반환합니다.
  • 앱이 NETLINK_ROUTE 소켓에서 bind() 함수를 사용할 수 없습니다.
  • ip 명령어가 인터페이스에 관한 정보를 반환하지 않습니다.
  • 앱에서 RTM_GETLINK 메시지를 보낼 수 없습니다.

대부분의 개발자는 NetworkInterface, getifaddrs() 또는 Netlink 소켓과 같은 하위 수준의 API가 아닌 ConnectivityManager의 상위 수준 API를 사용해야 합니다. 예를 들어 현재 경로에 관한 최신 정보가 필요한 앱은 ConnectivityManager.registerNetworkCallback()를 사용하여 네트워크 변경사항을 수신 대기하고 네트워크에 연결된 LinkProperties.getRoutes()를 호출하여 이 정보를 가져올 수 있습니다.

식별자 특성

Android OS에서는 동작 특성이 다양한 여러 ID를 제공합니다. 사용해야 하는 ID는 다음 특성이 사용 사례에서 작동하는 방식에 따라 다릅니다. 그러나 이러한 특성은 개인 정보 보호에도 영향을 주므로 이러한 특성이 서로 상호작용하는 방식을 이해하는 것이 중요합니다.

범위

식별자 범위는 어떤 시스템이 식별자에 액세스할 수 있는지를 나타냅니다. 일반적으로 Android 식별자 범위는 다음 세 가지로 구분됩니다.

  • 단일 앱: ID가 앱 내부용이며 다른 앱에서는 액세스할 수 없습니다.
  • 앱 그룹: 사전 정의된 관련 앱 그룹에서 ID에 액세스할 수 있습니다.
  • 기기: 기기에 설치된 모든 앱에서 ID에 액세스할 수 있습니다.

식별자에 부여된 범위가 넓을수록 식별자가 추적 목적으로 사용될 위험이 커집니다. 반대로, 단일 앱 인스턴스에서만 식별자에 액세스할 수 있는 경우에는 다른 앱의 여러 트랜잭션에서 기기를 추적하는 데 식별자를 사용할 수 없습니다.

재설정 가능성 및 지속성

재설정 가능성과 지속성은 식별자의 수명을 정의하고 식별자를 재설정할 수 있는 방법을 설명합니다. 일반적인 재설정 트리거에는 인앱 재설정, 시스템 설정을 통한 재설정, 시작 시 재설정, 설치 시 재설정이 포함됩니다. Android 식별자의 수명은 다양할 수 있지만 일반적으로 ID의 수명은 ID 재설정 방식과 관련이 있습니다.

  • 세션 전용: 사용자가 앱을 다시 시작할 때마다 새 ID가 사용됩니다.
  • 설치 재설정: 사용자가 앱을 제거하고 다시 설치할 때마다 새 ID가 사용됩니다.
  • FDR 재설정: 사용자가 기기를 초기화할 때마다 새 ID가 사용됩니다.
  • FDR 지속: 초기화 후에도 ID가 유지됩니다.

사용자는 재설정 가능성을 통해 기존 프로필 정보와 연결이 해제된 새 ID를 만들 수 있습니다. 식별자가 더 오래, 더 안정적으로 유지될수록(예: 초기화 후에도 유지될수록) 사용자가 장기 추적에 노출될 위험이 커집니다. 앱을 재설치할 때 식별자가 재설정되면 지속성이 줄어들고, 앱이나 시스템 설정 내에서 ID를 재설정할 수 있는 명시적인 사용자 제어가 없더라도 ID를 재설정할 수 있는 수단이 제공됩니다.

고유성

고유성은 충돌 가능성을 나타냅니다. 즉, 연결된 범위 내에 동일한 식별자가 존재한다는 의미입니다. 기본적으로 전역 고유 식별자는 다른 기기나 앱에서도 충돌하지 않습니다. 그렇지 않으면 고유성 수준은 식별자의 엔트로피와 식별자를 생성하는 데 사용된 임의성의 소스에 따라 다릅니다. 예를 들어 설치 시 Unix 타임스탬프 (예: 1551414181)로 생성된 식별자보다 설치 날짜 (예: 2019-03-01)로 생성된 임의 식별자의 충돌 가능성이 훨씬 높습니다.

일반적으로 사용자 계정 식별자는 고유하다고 간주할 수 있습니다. 즉, 각 기기/계정 조합에는 고유 ID가 있습니다. 반면, 모집단 내에서 식별자가 고유하지 않을수록 개별 사용자를 추적하는 데 유용하지 않으므로 개인 정보 보호 기능이 강화됩니다.

무결성 보호 및 부인 방지(non-repudiability)

스푸핑 또는 재생하기 어려운 식별자를 사용하여 연결된 기기나 계정에 특정 속성이 있음을 증명할 수 있습니다. 예를 들어 기기가 스팸 발송자가 사용하는 가상 기기가 아님을 입증할 수 있습니다. 위장이 어려운 식별자는 부인 방지 기능도 제공합니다. 기기가 보안 키로 메시지에 서명하면 다른 사람의 기기에서 메시지를 보냈다고 주장하기가 어렵습니다. 부인 방지 기능은 사용자가 원하는 것(예: 결제 인증 시)이거나 후회하는 메시지를 보낼 때와 같이 바람직하지 않은 속성일 수 있습니다.

일반적인 사용 사례 및 사용하기 적합한 식별자

이 섹션에서는 IMEI와 같은 하드웨어 ID의 대안을 제공합니다. 하드웨어 ID는 사용자가 재설정할 수 없고 기기로 범위가 지정되므로 사용하지 않는 것이 좋습니다. 대부분의 경우 앱 범위 식별자로 충분합니다.

계좌

운송업체 상태

이 경우 앱은 이동통신사 계정을 사용하여 기기의 전화 및 문자 기능과 상호작용합니다.

권장되는 식별자: IMEI, IMSI, Line1

권장하는 이유

이동통신사 관련 기능에 필요한 경우 하드웨어 식별자를 활용할 수 있습니다. 예를 들어 이러한 식별자를 사용하여 이동통신사 또는 SIM 슬롯 간에 전환하거나 IP (Line1의 경우) - SIM 기반 사용자 계정을 통해 SMS 메시지를 전송할 수 있습니다. 하지만 권한이 없는 앱의 경우 계정 로그인을 사용하여 서버 측에서 사용자 기기 정보를 가져오는 것이 좋습니다. 그 이유 중 하나는 Android 6.0 (API 수준 23) 이상에서는 런타임 권한을 통해서만 이러한 식별자를 사용할 수 있기 때문입니다. 사용자가 이 권한을 사용 중지할 수도 있으므로 앱에서는 이러한 예외를 적절하게 처리해야 합니다.

모바일 구독 상태

이 경우 앱 기능을 기기의 특정 모바일 서비스 정기 결제와 연결해야 합니다. 예를 들어 SIM을 통한 기기의 모바일 구독을 기반으로 특정 프리미엄 앱 기능의 액세스를 인증해야 할 수도 있습니다.

권장되는 식별자: 기기에서 사용되는 SIM을 식별하는 Subscription ID API입니다.

정기 결제 ID는 기기에 사용되는 설치된 SIM (실제 SIM 포함)을 고유하게 식별하기 위한 색인 값 (1부터 시작)을 제공합니다. 이 ID를 통해 앱은 앱의 기능을 지정된 SIM의 다양한 정기 결제 정보와 연결할 수 있습니다. 이 값은 기기가 초기화되지 않는 한 지정된 SIM에서 안정적입니다. 그러나 동일한 SIM이 다른 기기에서 다른 정기 결제 ID를 갖거나 다른 기기에서 다른 SIM이 동일한 ID를 갖는 경우가 있을 수 있습니다.

권장하는 이유

일부 앱에서는 현재 이러한 목적으로 ICC ID를 사용하고 있을 수 있습니다. ICC ID는 전역적으로 고유하고 재설정할 수 없으므로 Android 10부터 READ_PRIVILEGED_PHONE_STATE 권한이 있는 앱으로 액세스가 제한되었습니다. Android 11부터 Android는 앱의 타겟 API 수준과 관계없이 getIccId() API를 통한 ICCID 액세스를 추가로 제한했습니다. 영향을 받는 앱은 정기 결제 ID를 대신 사용하도록 이전해야 합니다.

싱글 사인온(SSO)

이 경우 앱에서 사용자가 기존 계정을 조직과 연결할 수 있는 싱글 사인온(SSO) 환경을 제공합니다.

권장되는 식별자: 계정 관리자 호환 계정(예: Google 계정 연결)

권장하는 이유

Google 계정 연결을 사용하면 사용자가 사용자의 기존 Google 계정을 앱과 연결하여 조직의 제품 및 서비스에 원활하고 더 안전하게 액세스할 수 있습니다. 또한 커스텀 OAuth 범위를 정의하여 필요한 데이터만 공유하면 데이터 사용 방식을 명확하게 정의하여 사용자의 신뢰를 높일 수 있습니다.

Google Ads

타겟팅

이 경우 앱에서 사용자에게 더 관련성 높은 광고를 게재하기 위해 사용자의 관심분야에 대한 프로필을 작성합니다.

권장되는 식별자: 앱에서 광고 및 Google Play 업로드 또는 게시에 ID를 사용하는 경우 이 ID는 광고 ID여야 합니다.

권장하는 이유

이는 조직의 다양한 앱에서 사용할 수 있는 ID가 필요할 수 있는 광고 관련 사용 사례이므로 광고 ID를 사용하는 것이 가장 적합한 솔루션입니다. 광고 ID는 사용자가 재설정할 수 있으므로 Google Play 개발자 콘텐츠 정책에 따라 광고 사용 사례에는 광고 ID를 반드시 사용해야 합니다.

앱에서 사용자 데이터를 공유하는지 여부와 관계없이 광고 목적으로 사용자 데이터를 수집하고 사용하는 경우 Play Console 앱 콘텐츠 페이지에 있는 데이터 보안 섹션에서 광고 목적을 선언해야 합니다.

측정

이 경우 앱은 동일한 기기에 있는 조직의 앱 전반에서 사용자 행동을 기반으로 사용자 프로필을 만듭니다.

권장되는 식별자: 광고 ID 또는 Play 설치 리퍼러 API

권장하는 이유

이는 조직의 다양한 앱에서 사용할 수 있는 ID가 필요할 수 있는 광고 관련 사용 사례이므로 광고 ID를 사용하는 것이 가장 적합한 솔루션입니다. 광고 사용 사례에 ID를 사용하는 경우 ID는 사용자가 재설정할 수 있으므로 광고 ID여야 합니다. 자세한 내용은 Google Play 개발자 콘텐츠 정책을 참고하세요.

전환수

마케팅 전략의 성공 여부를 알아내기 위해 전환을 추적하고 있는 경우입니다.

권장되는 식별자: 광고 ID 또는 Play 설치 리퍼러 API

권장하는 이유

이는 조직의 다양한 앱에서 사용할 수 있는 ID가 필요할 수 있는 광고 관련 사용 사례이므로 광고 ID를 사용하는 것이 가장 적합한 솔루션입니다. 광고 ID는 사용자가 재설정할 수 있으므로 Google Play 개발자 콘텐츠 정책에 따라 광고 사용 사례에는 광고 ID를 반드시 사용해야 합니다.

리마케팅

이 경우 앱은 사용자의 이전 관심분야를 기반으로 광고를 표시합니다.

권장되는 식별자: 광고 ID

권장하는 이유

이는 조직의 다양한 앱에서 사용할 수 있는 ID가 필요할 수 있는 광고 관련 사용 사례이므로 광고 ID를 사용하는 것이 가장 적합한 솔루션입니다. 광고 ID는 사용자가 재설정할 수 있으므로 Google Play 개발자 콘텐츠 정책에 따라 광고 사용 사례에는 광고 ID를 반드시 사용해야 합니다.

앱 애널리틱스

이 경우 앱은 사용자의 동작을 평가하여 다음을 판단하는 데 도움을 줍니다.

  • 조직의 다른 제품 또는 앱 중 사용자에게 적합한 제품 또는 앱.
  • 사용자의 앱 사용에 대한 관심을 유지하는 방법
  • 로그아웃한 사용자 또는 익명 사용자의 사용 통계 및 분석을 측정합니다.

가능한 해결책은 다음과 같습니다.

  • 앱 세트 ID: 앱 세트 ID를 사용하면 사용자 데이터를 광고 목적으로 사용하지 않는 한 조직이 소유한 여러 앱에서 사용자 행동을 분석할 수 있습니다. Google Play 서비스에서 제공하는 기기를 타겟팅하는 경우 앱 세트 ID를 사용하는 것이 좋습니다.
  • Firebase ID (FID): FID는 FID를 생성한 앱으로 범위가 지정되므로 여러 앱에서 사용자를 추적하는 데 식별자가 사용되지 않습니다. 또한 사용자가 앱 데이터를 지우거나 앱을 재설치할 수 있으므로 쉽게 재설정할 수 있습니다. FID를 만드는 프로세스는 간단합니다. Firebase 설치 가이드를 참조하세요.

앱 개발

비정상 종료 보고

이 경우 앱은 사용자 기기에서 언제, 왜 비정상 종료되는지에 관한 데이터를 수집합니다.

권장되는 식별자: FID 또는 앱 세트 ID

권장하는 이유

FID는 FID를 생성하는 앱으로 범위가 지정되므로 여러 앱에서 사용자를 추적하는 데 식별자가 사용되지 않습니다. 또한 사용자가 앱 데이터를 지우거나 앱을 재설치할 수 있으므로 쉽게 재설정할 수 있습니다. FID를 만드는 프로세스는 간단합니다. Firebase 설치 가이드를 참조하세요. 앱 세트 ID를 사용하면 사용자 데이터를 광고 목적으로 사용하지 않는 한 조직이 소유한 여러 앱에서 사용자 동작을 분석할 수 있습니다.

실적 보고

이 경우 앱은 앱의 품질을 개선하기 위해 로드 시간 및 배터리 사용량과 같은 성능 측정항목을 수집합니다.

권장되는 식별자: Firebase Performance Monitoring

권장하는 이유

Firebase Performance Monitoring을 사용하면 가장 중요한 측정항목에 집중하고 최근 앱 변경사항이 미치는 영향을 테스트할 수 있습니다.

앱 테스트

이 경우 앱은 테스트 또는 디버깅 목적으로 앱의 사용자 환경을 평가합니다.

권장되는 식별자: FID 또는 앱 세트 ID

권장하는 이유

FID는 FID를 생성하는 앱으로 범위가 지정되므로 여러 앱에서 사용자를 추적하는 데 식별자가 사용되지 않습니다. 또한 사용자가 앱 데이터를 지우거나 앱을 재설치할 수 있으므로 쉽게 재설정할 수 있습니다. FID를 만드는 프로세스는 간단합니다. Firebase 설치 가이드를 참조하세요. 앱 세트 ID를 사용하면 사용자 데이터를 광고 목적으로 사용하지 않는 한 조직이 소유한 여러 앱에서 사용자 동작을 분석할 수 있습니다.

교차 기기 설치

이 경우 앱은 동일한 사용자의 여러 기기에 설치될 때 앱의 올바른 인스턴스를 식별해야 합니다.

권장되는 식별자: FID 또는 GUID

권장하는 이유

FID는 이러한 목적을 위해 명시적으로 설계되었습니다. FID의 범위는 앱으로 제한되므로 여러 앱에서 사용자를 추적하는 데 사용할 수 없으며 앱을 재설치하면 재설정됩니다. 드물지만 FID가 부족한 경우에는 GUID를 사용할 수도 있습니다.

보안

악용 감지

백엔드 서비스를 공격하는 여러 가짜 기기를 감지하려는 경우입니다.

권장되는 식별자: Google Play Integrity API 무결성 토큰

권장하는 이유

요청이 다른 기기를 스푸핑하는 에뮬레이터나 기타 코드가 아닌 정품 Android 기기에서 오는지 확인하려면 Google Play Integrity API를 사용하세요.

광고 사기

이 경우 앱은 앱에서의 사용자 노출 및 작업이 진실되고 검증 가능한지 확인합니다.

권장되는 식별자: 광고 ID

권장하는 이유

사용자가 ID를 재설정할 수 있으므로 Google Play 개발자 콘텐츠 정책에 따라 광고 사용 사례에는 광고 ID를 사용해야 합니다.

디지털 권한 관리 (DRM)

이 경우 앱이 지적 재산이나 유료 콘텐츠에 대한 허위 액세스를 보호하려고 합니다.

권장되는 식별자: FID 또는 GUID를 사용하면 사용자가 콘텐츠 제한을 우회하기 위해 앱을 다시 설치해야 하므로, 이는 대부분의 사람들을 단념하기에는 충분한 부담입니다. 이 방법으로 충분히 보호하지 못하는 경우 Android는 콘텐츠 액세스를 제한하는 데 사용할 수 있는 DRM API를 제공하며, 여기에는 APK별 식별자인 Widevine ID가 포함됩니다.

사용자 환경설정

이 경우 앱은 특히 로그인하지 않은 사용자를 위해 앱에 기기별 사용자 상태를 저장합니다. 같은 기기에서 동일한 키로 서명된 다른 앱으로 이 상태를 전송할 수 있습니다.

권장되는 식별자: FID 또는 GUID

권장하는 이유

재설치 후에도 정보를 유지하는 것은 권장되지 않습니다. 사용자가 앱을 재설치하여 환경설정을 재설정할 수 있기 때문입니다.