Android 앱 제거 추적 설정
Android에서 앱 제거를 추적하여 사용자 유지율을 측정하고, 품질이 낮은 트래픽 소스를 식별하며, Singular SDK와 연동된 Firebase Cloud Messaging을 사용하여 캠페인 성과를 최적화하세요.
Firebase 마이그레이션 필수: Firebase는 레거시 HTTP API를 2024년 7월 22일 폐지하고 서비스를 종료했습니다. 모든 구현은 HTTP v1 API를 사용해야 합니다. 아래 HTTP v1 설정 지침을 참조하세요.
개요
앱 삭제 추적 작동 방식
Singular는 Firebase Cloud Messaging을 통해 무음 푸시 알림을 전송하고 배달 응답을 모니터링하여 앱이 기기에 설치된 상태인지 확인함으로써 앱 제거를 감지합니다.
기술적 프로세스:
- 토큰 등록: Singular SDK가 FCM 토큰을 Singular 서버에 등록합니다.
- 무음 알림: Singular는 등록된 기기에 주기적으로 무음 푸시 알림을 전송합니다
- 전달 피드백: FCM이 전달 성공 또는 실패를 보고합니다
- 삭제 감지: 실패한 전달은 앱 삭제를 의미합니다
- 이벤트 기록: 원본 설치 출처에 귀속된 삭제 이벤트
필수 사항
- SDK 버전: 제거 추적을 위해서는 Android SDK 7.0 이상이 필요합니다
- Firebase 설정: Cloud Messaging이 활성화된 활성 Firebase 프로젝트
- Google Play 서비스: 기기에 Google Play 서비스가 설치되어 있어야 함
- 앱 업데이트: 사용자는 제거 추적이 활성화된 업데이트된 앱 버전을 설치해야 함
- 권한: Android 13 이상에서는 FCM 토큰 생성을 위해 명시적 알림 권한이 필요합니다
중요 고려 사항
주요 포인트:
- 방법론 차이: Singular의 삭제 추적은 Google의 내장 보고와 다릅니다. Google은 OS에서 직접 삭제를 보고하는 반면, Singular는 FCM 전달 피드백을 사용합니다. 플랫폼 간 수치가 다를 수 있습니다.
- 어트리뷰션 보존: 앱 삭제은 원본 어트리뷰션 링크를 제거하지 않은 이벤트로 추적됩니다. 사용자가 여러 번 앱 삭제 및 재설치할 경우, 앱 삭제 비율이 100%를 초과할 수 있습니다.
- 배치 처리: 앱 삭제 감지는 FCM 응답 피드백에 기반한 배치 방식으로 수행됩니다. Singular 대시보드에 앱 삭제 데이터가 표시되기까지 최대 24시간이 소요될 수 있습니다.
- 네트워크 의존성: 무음 푸시 알림은 활성 네트워크 연결이 필요합니다. 장기간 오프라인 상태인 기기는 앱 삭제 감지 지연이 발생할 수 있습니다.
도메인 제한 공유
Google 조직에서 도메인 제한공유 기능이 활성화된 경우, Singular 조직에 액세스 권한을 부여하여 앱 삭제 추적 기능을 활성화하십시오.
필수 설정: 도메인 제한 공유 정책의 허용 값 목록에 Singular의 조직 ID를 추가하십시오.
구성 단계:
- 조직 정책에 접근: Google Cloud Console에서 조직 정책 페이지로 이동
- 리소스 선택: 정책이 설정된 조직을 선택하세요
- 제약 조건 찾기: "도메인 제한 공유" 제약 조건을 찾습니다.
- 정책 관리: "정책 관리" 버튼을 클릭하세요
- Singular 조직 추가: 정책 값에서 사용자 지정을 선택하고 다음을 추가합니다:
is:principalSet://iam.googleapis.com/organizations/626787461583
이를 통해 Singular 서비스 계정이 앱 삭제 감지를 위한 FCM 알림을 전송할 수 있습니다.
HTTP v1 API 설정 (권장)
OAuth 2.0 액세스 토큰을 통한 향상된 보안 및 강화된 크로스 플랫폼 메시징 지원으로 Firebase Cloud Messaging HTTP v1 API를 사용하여 앱 삭제 추적을 구성합니다.
HTTP v1을 선택해야 하는 이유? v1 API는 단기 유효 기간의 액세스 토큰을 통한 향상된 보안, 효율적인 크로스 플랫폼 맞춤 설정, 새로운 기능에 대한 지속적인 Firebase 지원을 제공합니다. 기존 HTTP API는 2024년 7월 22일에 중단되었습니다.
1단계: Android SDK 7.x 이상 연동
SDK 버전 업데이트
앱이 Singular Android SDK 버전 7.0 이상을 사용 중인지 확인하세요. 아직 Singular SDK를 연동하지 않았다면, 앱 삭제 추적 설정 전에 Android SDK 연동 가이드를 완료하세요.
전체 연동 가이드: Android SDK 연동 가이드
2단계: AndroidManifest.xml FCM 설정 확인
FCM 서비스 및 권한 확인
앱이 Firebase Cloud Messaging과 이미 연동되었으며, Android 매니페스트에 FCM 메시지를 수신하기 위한 FirebaseMessagingService가 선언되었는지 확인하십시오.
<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>
<!-- App Firebase Messaging Service -->
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
중요: ` .MyFirebaseMessagingService `를 ` FirebaseMessagingService`를 확장하는 클래스의 완전한 정규화된 이름으로 교체하십시오.
앱 내에서 ` com.google.firebase.MESSAGING_EVENT ` 인텐트를 처리하는 서비스는 하나만 존재해야 합니다.
자세한 매니페스트 구성: Firebase FCM Android 매니페스트 가이드.
3단계: Firebase 프로젝트 생성
Firebase 초기화
Firebase 프로젝트를 설정하고 Singular 구성에 필요한 프로젝트 ID를 확인하세요.
- Firebase 콘솔 열기: Firebase 콘솔로이동
- 프로젝트 생성: 앱용 Firebase 프로젝트를 선택하거나 새로 생성합니다.
- 프로젝트 설정 찾기: 톱니바퀴 아이콘 → 프로젝트 설정
- 프로젝트 ID 복사: 일반 탭에서 프로젝트 ID 복사 (나중에 Singular에 입력할 예정)
4단계: Firebase Cloud Messaging API 활성화
HTTP v1 API 활성화
프로젝트에서 최신 HTTP v1 프로토콜을 사용하려면 Firebase Cloud Messaging API(v1)를 활성화하세요.
- 클라우드 메시징으로 이동: Firebase 콘솔에서 프로젝트 설정 → 클라우드 메시징 탭으로 이동
- API 활성화: Firebase Cloud Messaging API (V1) 옆의 "활성화"를 클릭하세요
- 활성화 확인: API 상태가 "활성화됨"으로 표시되는지 확인
중요: Firebase Cloud Messaging API(V1)는 기존 Cloud Messaging API와 다릅니다. 올바른 v1 버전을 활성화했는지 확인하세요.
단계 5: 사용자 지정 IAM 역할 생성
서비스 계정 권한 구성
Singular가 제거 감지를 위한 FCM 알림을 전송할 수 있도록 특정 권한을 가진 사용자 지정 IAM 역할을 생성합니다.
- IAM에 접근: Firebase 프로젝트 설정 → 서비스 계정 → 서비스 계정 권한 관리
- 역할 열기: 왼쪽 탐색 메뉴에서 "역할" 선택
- 역할 생성: "역할 생성" 버튼 클릭
-
역할 세부 정보 구성:
-
제목:
Singular Uninstall Tracking -
ID:
singular_uninstalls -
역할 실행 단계:
General Availability
-
제목:
필수 권한 추가
FCM 메시지 전송을 위한 사용자 정의 역할 권한 부여.
- 권한 추가: "권한 추가" 버튼을 클릭하세요.
- 권한 필터링: "Firebase Cloud Messaging API 관리자" 검색
-
권한 선택: 확인
cloudmessaging.messages.create - 역할에 추가: "추가" 버튼 클릭
- 역할 생성: "생성"을 클릭하여 역할 생성을 완료합니다
6단계: Singular 서비스 계정 할당
Singular에 접근 권한 부여
Singular의 서비스 계정에 사용자 정의 역할을 할당하여 제거 추적 작업을 승인합니다. 추적 작업을 승인합니다.
- IAM 페이지 열기: 왼쪽 탐색 메뉴에서 "IAM" 선택
- 권한 부여: 권한 탭에서 "권한 부여" 버튼 클릭 권한
-
주체 추가: "새 주체" 필드에 다음을 입력:
singular-uninstall-tracking@singular-uninstall-tracking.iam.gserviceaccount.com
사용자 정의 역할 할당
이전 단계에서 생성한 "Singular Uninstall Tracking" 역할을 선택합니다.
- 역할 선택: "역할 할당"에서 "Singular Uninstall Tracking"을 검색하여 선택합니다.
- 구성 확인: 설정이 아래 스크린샷과 일치하는지 확인하십시오.
- 저장: 권한 적용을 위해 "저장" 버튼 클릭
최종 구성:
7단계: Singular 앱 설정 구성
Singular에 프로젝트 ID 추가
Singular 앱 구성에서 Firebase 프로젝트 ID를 입력하여 삭제 추적을 활성화하세요.
- Singular 앱 열기: Singular 앱 페이지로이동
- 앱 선택: 목록에서 안드로이드 앱을 선택하세요
- 고급 설정: 고급 설정 섹션으로 스크롤
- 앱 삭제 추적: 앱 삭제 추적 설정을 찾으세요
- 프로젝트 ID 입력: 3단계에서 복사한 Firebase 프로젝트 ID를 붙여넣으세요
- 저장: 설정을 적용하려면 저장을 클릭하세요
검증: 저장 후 Singular가 프로젝트 ID 및 IAM 권한을 검증합니다. 검증에 실패할 경우 Firebase의 서비스 계정 구성을 다시 확인하세요.
앱 삭제 추적 테스트
업데이트된 앱을 프로덕션에 배포하기 전에 앱 삭제 추적이 올바르게 설정되었는지 확인하십시오.
테스트 절차
검증 단계
- 테스트 빌드 설치: 테스트 기기에 앱 삭제 추적이 활성화된 앱 배포
- 앱 실행: 앱을 열어 SDK 초기화 및 FCM 토큰 등록을 트리거합니다.
- 토큰 등록 확인: SDK 로그에서 Singular를 통한 FCM 토큰 등록 성공 여부 확인
- 배치 처리 대기: Singular가 첫 번째 무음 알림을 전송할 때까지 24~48시간 대기
- 앱 제거: 테스트 기기에서 앱 삭제
- 대시보드 모니터링: 24~48시간 후 Singular 대시보드에서 앱 삭제 이벤트 확인
테스트 일정: 제거 추적은 배치 기반으로 진행되며 제거 감지 및 보고까지 최대 48시간이 소요될 수 있습니다. 이러한 지연은 정상적인 동작입니다.
SDK 로그 확인
Singular SDK 메시지가 올바르게 구성되었는지 Android logcat에서 확인하십시오.
예상 로그 메시지:
D/SingularSDK: FCM token registered successfully
D/SingularSDK: Uninstall tracking enabled
D/SingularSDK: Token sent to Singular servers
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| FCM 토큰이 생성되지 않음 | Firebase가 올바르게 구성되지 않음 |
google-services.json 가 app/디렉터리에 있는지 확인하고
build.gradle에 Firebase 플러그인이 적용되었는지 확인하십시오
|
| 로그에 권한 거부 오류 발생 | IAM 역할이 올바르게 할당되지 않음 | Firebase IAM에서 Singular 서비스 계정에 "Singular Uninstall Tracking" 역할이 있는지 재확인하십시오 |
| 토큰이 Singular에 도달하지 않음 | 네트워크 연결 문제 또는 SDK 초기화 실패 | 앱에 인터넷 권한이 부여되었는지, Singular SDK가 FCM 토큰 등록 전에 초기화되었는지 확인 |
| 대시보드에 앱 삭제이 표시되지 않음 | 배치 처리 지연 또는 충분한 시간 경과되지 않음 | 앱 삭제 후 48시간이 완전히 경과한 후 추가 조사 진행 |
| Singular에서 API 검증 실패 | Firebase에서 HTTP v1 API가 활성화되지 않음 | Cloud Messaging 설정에서 Firebase Cloud Messaging API(V1)가 활성화되었는지 확인하십시오 |
레거시 HTTP API (사용 중단됨)
레거시 HTTP API는 2024년 7월 22일에 중단되었습니다. 모든 구현은 HTTP v1 API로 마이그레이션해야 합니다.
중단됨: 레거시 HTTP API는 더 이상 작동하지 않습니다. 레거시 서버 키 구성을 사용 중인 경우, 위의 지침을 따라 즉시 HTTP v1 API로 마이그레이션하십시오.
마이그레이션 필요
현재 레거시 HTTP API를 서버 키 및 발신자 ID 구성과 함께 사용하는 경우 다음 마이그레이션 단계를 따르세요:
- 현재 구성 검토: Singular 앱 설정에서 "프로젝트 ID" 대신 "서버 키" 필드가 표시되는지 확인하십시오.
- HTTP v1 설정 수행: 상단의 HTTP v1 API 설정 섹션에 있는 모든 단계를 완료하십시오
- 앱 설정 업데이트: Singular 설정에서 서버 키를 Firebase 프로젝트 ID로 교체하세요
- 구현 테스트: 새 v1 API 설정에서 앱 삭제 추적이 정상 작동하는지 확인
- 업데이트 배포: 업데이트된 앱을 실제 사용자에게 배포하세요
마이그레이션 가이드: Firebase HTTP v1 API 마이그레이션
HTTP v1 API의 장점
- 보안 강화: 정적 서버 키 대신 단기 유효한 OAuth 2.0 액세스 토큰 사용
- 향상된 크로스 플랫폼 지원: Android, iOS, 웹을 위한 연동 메시지 구조
- 플랫폼별 오버라이드: Singular 요청으로 플랫폼별 알림 동작 맞춤 설정
- 미래 대비: Firebase의 지속적인 지원 및 신규 기능은 v1에서만 제공
- 개선된 오류 처리: 문제 해결을 위한 상세한 오류 응답
앱 삭제 데이터 분석
Singular 보고서에서 제거 데이터를 활용하여 캠페인 성과를 최적화하고 트래픽 품질 문제를 파악하세요.
사용 가능한 지표
앱 삭제 추적 지표
- 앱 삭제 수: 감지된 앱 앱 삭제 총 횟수
- 앱 삭제 비율: 설치 후 앱 삭제로 이어진 설치 건수의 비율
- 앱 삭제까지 소요된 일수: 설치 이벤트와 앱 삭제 이벤트 사이의 평균 시간
- 소스별 삭제: 캠페인, 퍼블리셔, 크리에이티브별 삭제 현황
- 코호트 분석: 서로 다른 사용자 코호트별 앱 삭제 패턴
사용 사례
캠페인 최적화:
- 낮은 품질의 트래픽을 유도하고 높은 삭제율을 보이는 캠페인 식별
- 다양한 트래픽 소스별 삭제율 비교
- 예측된 사용자 유지율을 기반으로 입찰 전략 최적화
사기 탐지:
- 설치 사기를 나타내는 비정상적인 삭제 패턴 탐지
- 의심할 정도로 높은 삭제율을 보이는 퍼블리셔 표시
- 봇 트래픽 징후를 위한 제거까지 소요 시간 모니터링
사용자 유지 분석:
- 시간 경과에 따른 앱 충성도 및 참여도 추적
- 앱 업데이트 또는 기능 출시와 제거 간의 상관관계 분석
- 사용자 이탈에 기여하는 요인 식별
모범 사례
최적화 전략
- 기준 설정: 다양한 캠페인 유형에 대한 허용 가능한 삭제율 임계값 설정
- 추세 모니터링: 시간 경과에 따른 삭제율 추적 계절적 패턴 또는 이상 현상 식별
- 세분화 분석: 사용자 인구통계, 지역, 기기별 삭제율 비교
- 어트리뷰션 기간: 캠페인 성과 평가 시 앱 삭제 시점을 고려
- 품질 점수 부여: 트래픽 품질 점수 모델에 앱 삭제률 반영