Android 제거 추적 설정

문서

안드로이드 앱 삭제 추적 설정

앱 제거를 추적하여 사용자 리텐션을 측정하고, 품질이 낮은 트래픽 소스를 식별하며, Singular SDK와의 Firebase 클라우드 메시징 연동을 사용하여 캠페인 성과를 최적화하세요.

Firebase 마이그레이션 필요: Firebase는 2024년 7월 22일에 레거시 HTTP API를 더 이상 지원하지 않으며 종료됩니다. 모든 구현은 HTTP v1 API를 사용해야 합니다. 아래의 HTTP v1 설정 지침을 참조하세요.


개요

제거 추적 작동 방식

Singular는 Firebase 클라우드 메시징을 통해 무음 푸시 알림을 보내고 전송 응답을 모니터링하여 앱이 디바이스에 계속 설치되어 있는지 확인하여 앱 제거를 감지합니다.

기술적 프로세스:

  1. 토큰 등록: Singular SDK가 FCM 토큰을 Singular 서버에 등록합니다.
  2. 무음 알림: Singular는 등록된 디바이스에 주기적으로 무음 푸시 알림을 보냅니다.
  3. 배달 피드백: FCM이 전송 성공 또는 실패를 보고합니다.
  4. 제거 감지: 배달 실패는 앱 제거를 나타냅니다.
  5. 이벤트 기록: 원래 인스톨 소스에 기인한 제거 이벤트

요구 사항

  • SDK 버전: 제거 추적을 위해 안드로이드 SDK 7.0 이상 필요
  • 파이어베이스 설정: 클라우드 메시징이 활성화된 활성 Firebase 프로젝트
  • Google Play 서비스: 기기에 구글 플레이 서비스가 설치되어 있어야 합니다.
  • 앱 업데이트: 사용자가 앱 제거 추적이 활성화된 업데이트된 앱 버전을 설치해야 합니다.
  • 권한: 안드로이드 13+는 FCM 토큰 생성을 위한 명시적 알림 권한이 필요합니다.

중요 고려 사항

핵심 사항

  • 방법론의 차이점: Singular의 앱 삭제 추적은 구글의 기본 제공 보고와 다릅니다. 구글은 OS에서 직접 제거를 보고하는 반면, Singular는 FCM 전송 피드백을 사용합니다. 수치는 플랫폼마다 다를 수 있습니다.
  • 어트리뷰션 보존: 제거는 원래 어트리뷰션 링크를 제거하지 않고 이벤트로 추적됩니다. 사용자가 여러 번 삭제했다가 다시 설치할 수 있으므로 삭제율이 100%를 초과할 수 있습니다.
  • 일괄 처리: 제거 감지는 FCM 응답 피드백을 기반으로 일괄 처리됩니다. 제거 데이터가 Singular 대시보드에 표시되는 데 최대 24시간이 소요될 수 있습니다.
  • 네트워크 종속성: 무음 푸시 알림을 사용하려면 네트워크 연결이 활성화되어 있어야 합니다. 장시간 오프라인 상태인 디바이스는 제거 감지가 지연될 수 있습니다.

도메인 제한 공유

Google 조직에서 도메인 제한 공유를사용하도록 설정한 경우, 제거 추적 기능을 사용할 수 있도록 Singular 조직에 액세스 권한을 부여하세요.

필수 구성: 도메인 제한 공유 정책의 허용된 값 목록에 Singular 조직의 조직 ID를 추가합니다.

구성 단계:

  1. 조직 정책에 액세스합니다: Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.
  2. 리소스를 선택합니다: 리소스 선택: 정책이 구성된 조직을 선택합니다.
  3. 제약 조건 찾기: "도메인 공유 제한" 제약 조건을 찾습니다.
  4. 정책 관리: "정책 관리" 버튼을 클릭합니다.
  5. Singular 조직 추가하기: 정책 값 아래에서 사용자 지정을 선택하고 다음을 추가합니다:
is:principalSet://iam.googleapis.com/organizations/626787461583

이렇게 하면 제거 감지를 위한 FCM 알림을 보낼 수 있는 Singular의 서비스 계정 액세스 권한이 부여됩니다.


HTTP v1 API 설정(권장)

OAuth 2.0 액세스 토큰을 통해 보안이 개선되고 크로스 플랫폼 메시징 지원이 강화된 Firebase 클라우드 메시징 HTTP v1 API를 사용하여 제거 추적을 구성하세요.

왜 HTTP v1인가? v1 API는 수명이 짧은 액세스 토큰, 보다 효율적인 크로스 플랫폼 사용자 지정, 새로운 기능에 대한 지속적인 Firebase 지원을 통해 더 나은 보안을 제공합니다. 레거시 HTTP API는 2024년 7월 22일에 종료됩니다.

1단계: Android SDK 7.x+ 연동하기

SDK 버전 업데이트

제거 추적 기능을 사용하려면 Android SDK 7.0 이상으로 업그레이드하세요.

그래들 구성:

Kotlin DSL
dependencies {
    // Singular Android SDK 7.x+
    implementation("com.singular.sdk:singular_sdk:12.6.2")
}

전체 연동 가이드: Android SDK 연동 가이드


2단계: AndroidManifest.xml 구성하기

FCM 수신기 추가

제거 감지를 위한 FCM 알림을 수신하도록 Android 매니페스트를 구성합니다.

XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.your.package">

    <!-- FCM Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

    <application>
        
        <!-- Singular FCM Receiver Service -->
        <service
            android:name="com.singular.sdk.SingularFcmService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

    </application>

</manifest>

자세한 매니페스트 구성: Android SDK 제거 추적 가이드


3단계: Firebase 프로젝트 생성

Firebase 초기화

Firebase 프로젝트를 설정하고 Singular 구성에 필요한 프로젝트 ID를 검색합니다.

  1. Firebase 콘솔을 엽니다: Firebase 콘솔로이동
  2. 프로젝트 만들기를 클릭합니다: 앱에 대한 새 Firebase 프로젝트를 선택하거나 생성합니다.
  3. 프로젝트 설정을 찾습니다: 톱니바퀴 아이콘 → 프로젝트 설정을 클릭합니다.
  4. 프로젝트 ID를 복사합니다: 일반 탭에서 프로젝트 ID를 복사합니다(나중에 Singular에 입력합니다).

Firebase Project Settings

Firebase Project ID


4단계: Firebase 클라우드 메시징 API 활성화하기

HTTP v1 API 활성화

프로젝트에서 최신 HTTP v1 프로토콜을 사용하려면 Firebase 클라우드 메시징 API(v1)를 활성화하세요.

  1. 클라우드 메시징으로 이동합니다: Firebase 콘솔에서 프로젝트 설정 → 클라우드 메시징 탭으로 이동합니다.
  2. API를 활성화합니다: Firebase 클라우드 메시징 API(v1) 옆의 "활성화"를 클릭합니다.
  3. 활성화를 확인합니다: API 상태가 "사용됨"으로 표시되는지 확인합니다.

Enable FCM API

중요: Firebase 클라우드 메시징 API(V1)는 레거시 클라우드 메시징 API와 다릅니다. 올바른 v1 버전을 사용 설정했는지 확인하세요.


5단계: 사용자 지정 IAM 역할 만들기

서비스 계정 권한 구성

제거 감지를 위한 FCM 알림을 보낼 수 있는 특정 권한이 있는 사용자 지정 IAM 역할을 만드세요.

  1. IAM 액세스: Firebase 프로젝트 설정 → 서비스 계정 → 서비스 계정 권한 관리로 이동합니다.
  2. 역할을 엽니다: 왼쪽 탐색 메뉴에서 "역할"을 선택합니다.
  3. 역할 만들기: "역할 만들기" 버튼을 클릭합니다.
  4. 역할 세부 정보를 구성합니다:
    • 제목을 입력합니다: Singular Uninstall Tracking
    • ID: singular_uninstalls
    • 역할 시작 단계: General Availability

Create Custom Role


필수 권한 추가

사용자 지정 역할에 FCM 메시지를 보낼 수 있는 권한을 부여합니다.

  1. 권한 추가: "권한 추가" 버튼을 클릭합니다.
  2. 필터 권한: "Firebase 클라우드 메시징 API 관리자"를 검색합니다.
  3. 권한을 선택합니다: cloudmessaging.messages.create 확인
  4. 역할에 추가: "추가" 버튼을 클릭합니다.
  5. 역할 만들기: "만들기"를 클릭하여 역할 생성을 완료합니다.

Add Permission


6단계: Singular 서비스 계정 할당

Singular에 액세스 권한 부여

제거 추적 작업을 승인할 수 있도록 Singular의 서비스 계정에 사용자 지정 역할을 할당합니다.

  1. IAM 페이지를 엽니다: 왼쪽 탐색 메뉴에서 "IAM"을 선택합니다.
  2. 액세스 권한을 부여합니다: 권한 탭에서 "액세스 권한 부여" 버튼을 클릭합니다.
  3. 담당자 추가: "새 담당자" 필드에 입력합니다:
    singular-uninstall-tracking@singular-uninstall-tracking.iam.gserviceaccount.com

Grant Access

Add Principal


사용자 지정 역할 할당

이전 단계에서 생성한 "Singular 제거 추적" 역할을 선택합니다.

  1. 역할을 선택합니다: "역할 할당"에서 "Singular 제거 추적"을 검색하여 선택합니다.
  2. 구성을 확인합니다: 설정이 아래 스크린샷과 일치하는지 확인합니다.
  3. 저장: "저장" 버튼을 클릭하여 권한을 적용합니다.

Assign Role

최종 구성:

Final IAM Configuration


7단계: Singular 앱 설정 구성

Singular에 프로젝트 ID 추가

제거 추적을 활성화하려면 Singular의 앱 구성에 Firebase 프로젝트 ID를 입력하세요.

  1. Singular 앱을 엽니다: Singular 앱 페이지로이동합니다.
  2. 앱을 선택합니다: 앱 선택: 목록에서 Android 앱을 선택합니다.
  3. 고급 설정: 고급 설정 섹션으로 스크롤합니다.
  4. 추적 제거를 클릭합니다: 추적 제거 설정을 찾습니다.
  5. 프로젝트 ID를 입력합니다: 3단계의 Firebase 프로젝트 ID를 붙여넣습니다.
  6. 저장: 저장을 클릭하여 구성을 적용합니다.

Singular Project ID Configuration

확인: 저장 후 Singular에서 프로젝트 ID 및 IAM 권한의 유효성을 검사합니다. 유효성 검사에 실패하면 Firebase에서 서비스 계정 구성을 다시 확인하세요.


제거 추적 테스트

업데이트된 앱을 프로덕션 환경에 릴리스하기 전에 제거 추적이 올바르게 구성되었는지 확인하세요.

테스트 절차

유효성 검사 단계

  1. 테스트 빌드를 설치합니다: 제거 추적이 활성화된 앱을 테스트 기기에 배포합니다.
  2. 앱 실행: 앱을 실행하여 SDK 초기화 및 FCM 토큰 등록을 트리거합니다.
  3. 토큰 등록을 확인합니다: Singular로 성공적인 FCM 토큰 등록을 위해 SDK 로그를 확인합니다.
  4. 배치 프로세스를 기다립니다: Singular가 첫 번째 무음 알림을 보낼 때까지 24-48시간 기다립니다.
  5. 앱 제거: 테스트 기기에서 앱 제거
  6. 대시보드 모니터링: 24-48시간 후 Singular 대시보드에서 제거 이벤트를 확인합니다.

테스트 타임라인: 제거 추적은 배치 기반이며 제거를 감지하고 보고하는 데 최대 48시간이 걸릴 수 있습니다. 이 지연은 예상되는 현상입니다.


SDK 로그 확인

Android 로그캣에서 올바른 구성을 확인하는 Singular SDK 메시지를 확인합니다.

예상되는 로그 메시지:

D/SingularSDK: FCM token registered successfully
D/SingularSDK: Uninstall tracking enabled
D/SingularSDK: Token sent to Singular servers

일반적인 문제

문제 원인 해결 방법
FCM 토큰이 생성되지 않았습니다. Firebase가 올바르게 구성되지 않음 google-services.jsonapp/디렉터리에 있고 빌드.gradle에 Firebase 플러그인이 적용되었는지 확인합니다.
로그에 권한 거부 오류 발생 IAM 역할이 올바르게 할당되지 않음 Singular 서비스 계정에 Firebase IAM에서 "Singular 제거 추적" 역할이 있는지 다시 확인합니다.
토큰이 Singular에 도달하지 않음 네트워크 연결 또는 SDK가 초기화되지 않음 FCM 토큰 등록 전에 앱에 인터넷 권한이 있고 Singular SDK가 초기화되었는지 확인합니다.
대시보드에 제거가 표시되지 않음 배치 처리 지연 또는 불충분한 시간 경과 앱 제거 후 48시간 동안 기다렸다가 추가 조사를 진행하세요.
Singular에서 API 유효성 검사 실패 Firebase에서 HTTP v1 API가 활성화되지 않음 클라우드 메시징 설정에서 Firebase 클라우드 메시징 API(V1)가 활성화되어 있는지 확인합니다.

레거시 HTTP API(사용 중단됨)

레거시 HTTP API는 2024년 7월 22일에 종료되었습니다. 모든 구현은 HTTP v1 API로 마이그레이션해야 합니다.

중단되었습니다: 레거시 HTTP API는 더 이상 작동하지 않습니다. 레거시 서버 키 구성을 사용하고 있는 경우에는 위의 지침에 따라 즉시 HTTP v1 API로 마이그레이션하세요.

마이그레이션 필요

현재 앱에서 서버 키 및 발신자 ID 구성이 포함된 레거시 HTTP API를 사용하는 경우 다음 마이그레이션 단계를 따르세요:

  1. 현재 구성을 검토합니다: Singular 앱 설정에 '프로젝트 ID' 대신 '서버 키' 필드가 표시되는지 확인합니다.
  2. HTTP v1 설정을 따릅니다: 위의 HTTP v1 API 설정 섹션의 모든 단계를 완료합니다.
  3. 앱 구성을 업데이트합니다: Singular 설정에서 서버 키를 Firebase 프로젝트 ID로 바꾸기
  4. 구현 테스트: 새로운 v1 API 구성에서 제거 추적이 작동하는지 확인합니다.
  5. 릴리스 업데이트: 프로덕션 사용자에게 업데이트된 앱 배포

마이그레이션 가이드: Firebase HTTP v1 API 마이그레이션


HTTP v1 API의 이점

  • 보안 강화: 정적 서버 키 대신 수명이 짧은 OAuth 2.0 액세스 토큰 사용
  • 더 나은 크로스 플랫폼 지원: Android, iOS 및 웹을 위한 연동 메시지 구조
  • 플랫폼별 오버라이드: 한 번의 요청으로 플랫폼별 알림 동작 사용자 지정
  • 미래 지향적: 지속적인 Firebase 지원 및 v1에서만 제공되는 새로운 기능 제공
  • 향상된 오류 처리: 문제 해결을 위한 보다 자세한 오류 응답 제공

제거 데이터 분석

Singular 보고서의 제거 데이터를 사용하여 캠페인 성과를 최적화하고 트래픽 품질 문제를 파악하세요.

사용 가능한 지표

제거 추적 지표

  • 제거 횟수: 앱 제거 횟수: 감지된 총 앱 제거 횟수
  • 제거율: 제거율: 제거로 이어진 인스톨의 백분율
  • 제거까지 걸린 일수: 설치와 제거 이벤트 사이의 평균 시간
  • 소스별 제거 횟수: 캠페인, 퍼블리셔, 광고 소재별 앱 제거 분석
  • 코호트 분석: 다양한 사용자 코호트별 앱 제거 패턴

사용 사례

캠페인 최적화:

  • 높은 제거율로 저품질 트래픽을 유도하는 캠페인 식별
  • 다양한 트래픽 소스에서 앱 제거율 비교
  • 예측된 사용자 리텐션에 기반한 입찰 전략 최적화

사기 탐지:

  • 인스톨 사기를 나타내는 비정상적인 제거 패턴 탐지
  • 제거율이 의심스러울 정도로 높은 퍼블리셔 플래그 지정
  • 봇 트래픽의 징후가 있는지 제거까지 걸리는 시간을 모니터링합니다.

사용자 리텐션 분석:

  • 시간 경과에 따른 앱 고착화 및 참여도 추적
  • 앱 업데이트 또는 기능 릴리스와 앱 제거의 상관관계 파악
  • 사용자 이탈에 기여하는 요인 파악

모범 사례

최적화 전략

  • 벤치마크 설정: 다양한 캠페인 유형에 대해 허용 가능한 제거율 임계값 설정
  • 트렌드 모니터링: 시간 경과에 따른 제거율을 추적하여 계절별 패턴이나 이상 징후를 파악하세요.
  • 세그먼트 분석: 사용자 인구 통계, 지역 및 디바이스별로 앱 제거율을 비교합니다.
  • 어트리뷰션 윈도우: 캠페인 성과를 평가할 때 제거 타이밍을 고려하세요.
  • 품질 점수: 트래픽 품질 점수 모델에 앱 제거율을 연동하세요.