에어브릿지는 앱 이벤트를 최근 6개월 동안 1번이라도 트래킹한 유저를 대상으로 사일런트 푸시를 매일 KST(한국표준시) 0시~1시 사이에 보내서 앱 삭제 여부를 확인합니다. 앱 삭제 이벤트는 에어브릿지 리포트와 원본 데이터 추출 등으로 확인할 수 있습니다.
애플 개발자 센터와 구글 클라우드 콘솔의 인증 정보를 에어브릿지 대시보드에 입력해야 합니다.
애플 개발자 대시보드에서 아래 인증 정보 4가지를 확인해 주세요.
APNs 인증 키를 받기 위해서는 먼저 애플 개발자 센터에서 앱의 푸시 알람을 켜야 합니다.
애플 개발자 센터에서 [Identifiers]를 클릭합니다.
앱 삭제를 트래킹하는 앱을 찾아 클릭합니다. 해당 앱에서 ‘Push Notification’을 체크해 주세요.
애플 개발자 센터에서 [Keys]를 클릭합니다. ‘+’버튼을 클릭해 키를 새로 생성합니다. 그리고 APNs 인증 키(p8)를 다운로드합니다. APNs 인증 키는 최초로 키를 생성하는 과정에서만 다운로드할 수 있습니다. 다시 다운로드할 수 없습니다. 분실하면 다시 키를 발급받아야 합니다.
한번에 생성할 수 있는 APNs 인증 키의 최대 개수는 2개입니다.
[Keys]에서 새로 생성한 키를 클릭하면 Key ID를 확인할 수 있습니다.
애플 개발자 센터에서 [Certificates, Identifiers & Profiles]>[Identifiers]를 클릭합니다. 사용하는 앱을 찾아 클릭합니다. 클릭한 앱의 Bundle ID를 확인할 수 있습니다.
애플 개발자 센터의 [Account]>[Membership details]에서 Team ID (App ID Prefix)를 확인할 수 있습니다.
구글 클라우드 콘솔에서 아래 3가지 작업을 통해 인증 정보를 확인해 주세요.
아래 순서에 따라 안드로이드 앱 삭제 트래킹에 필요한 구글 클라우드 IAM 커스텀 역할을 만들어 주세요.
1. 구글 클라우드 콘솔에 로그인합니다. 드롭다운 목록에서 커스텀 역할을 만드는 프로젝트를 선택합니다.
2. [IAM 및 관리자]>[역할]로 이동합니다. ‘역할 만들기’를 클릭합니다.
3. 역할의 제목, ID, 역할 실행 단계를 아래와 같이 설정합니다.
제목: Airbridge Uninstalls
ID: abr_uninstalls
역할 실행 단계: 일반 안정화 버전
4. ‘권한 추가’를 클릭합니다.
5. ‘속성 이름 또는 값 입력’을 클릭합니다. cloudmessaging.messages.create를 검색하고 선택합니다. 체크박스를 클릭하고 ‘추가’를 클릭합니다.
6. ‘만들기’를 클릭하면 커스텀 역할이 만들어집니다.
아래 순서에 따라 비공개 키를 생성하는 서비스 계정을 만들어 주세요.
1. [IAM 및 관리자]>[서비스 계정]으로 이동합니다. ‘서비스 계정 만들기’를 클릭합니다.
2. 서비스 계정 이름을 ABR Uninstall Service Account로 설정합니다. ‘만들고 계속하기’를 클릭합니다.
3. ‘역할 선택’ 드롭다운 목록에서 Airbridge Uninstalls를 검색하고 선택합니다. ‘계속’을 클릭합니다.
4. ‘완료’를 클릭하면 서비스 계정이 만들어집니다.
아래 순서에 따라 인증 정보가 포함된 비공개 키 파일을 생성해 주세요.
1. [IAM 및 관리자]>[서비스 계정]으로 이동합니다. 서비스 계정 목록에서 이름이 ABR Uninstall Service Account인 서비스 계정의 이메일을 클릭합니다.
2. [키] 탭을 선택합니다. ‘키 추가’를 클릭하고 ‘새 키 만들기’를 선택합니다.
3. 키 유형을 JSON으로 선택하고 ‘만들기’를 클릭하면 비공개 키가 포함된 JSON 파일이 다운로드됩니다. JSON 파일을 안전한 위치에 저장합니다.
플랫폼별 인증 정보를 입력해 주세요.
에어브릿지의 [설정]>[앱 삭제 이벤트 트래킹]>[iOS 앱 삭제 트래킹]에 애플 개발자 센터에서 확인한 인증 정보를 모두 입력합니다.
인증 정보를 에어브릿지에 모두 입력한 이후에 푸시 토큰을 수집하는 앱 환경을 선택합니다.
선택하는 앱 환경에 따라 수집하는 푸시 토큰이 다릅니다. 예를 들어 Production 환경에서 수집한 푸시 토큰은 Development 환경에서 사용할 수 없습니다.
지원 앱: 애플 앱 스토어에서 다운로드한 앱 또는 TestFlight, Ad Hoc, Enterprise 방법으로 배포한 테스트용 앱 등
수집되는 푸시 포큰: 앱 삭제 트래킹에 실제로 사용하는 푸시 토큰
지원 앱: Production에서 지원하지 않는 개발용(테스트 목적의) 앱
수집되는 푸시 토큰: 개발 환경에서 사용하는 푸시 토큰
Development는 사일런트 푸시 테스트만 진행할 수 있습니다. 앱 삭제를 실제로 트래킹하기 위해서는 Production에서 진행해 주세요.
아래 순서에 따라 인증 정보를 입력해 주세요.
1. 에어브릿지 대시보드 [설정]>[앱 삭제 이벤트 트래킹]으로 이동합니다.
2. [안드로이드] 탭에 구글 클라우드 콘솔에서 다운로드한 JSON 파일을 업로드합니다.
3. 파일을 드롭하거나 클릭으로 파일을 선택할 수 있습니다.
플랫폼별 사일런트 푸시 테스트에 대한 자세한 내용은 아래와 같습니다.
사일런트 푸시 테스트는 사일런트 푸시가 정상적으로 전송되는지 확인할 수 있는 테스트입니다. ‘사일런트 푸시 테스트’를 클릭하면 입력한 인증 정보로 사일런트 푸시를 디바이스에 정상적으로 전송하는지 확인할 수 있습니다. 사일런트 푸시 테스트는 앱 삭제 이벤트를 측정하거나 생성하지 않기 때문에 에어브릿지 대시보드에서 앱 삭제를 확인할 수 없습니다.
앱 삭제 트래킹을 위해 필요한 인증 정보 중 하나인 Bundle ID는 사일런트 푸시 테스트로만 유효성을 검증할 수 있습니다. 따라서 사일런트 푸시 테스트 진행을 권장합니다.
사일런트 푸시 테스트를 진행하기 위해서는 APNs 푸시 토큰(디바이스 토큰)이 필요합니다. 앱 환경에 따라 수집하는 푸시 토큰이 다릅니다. 사일런트 푸시 테스트를 진행하기 전에 푸시 토큰과 앱 환경을 확인해야 합니다. APNs 푸시 토큰을 확인하는 방법은 애플 개발자 가이드를 참고해 주세요.
에어브릿지에서 디바이스로 사일런트 푸시를 전송하면 성공 메시지 또는 에러 코드를 확인할 수 있습니다. iOS 환경의 사일런트 푸시 테스트로 확인할 수 있는 주요 에러 코드는 아래와 같습니다. 에러 코드에 관한 자세한 내용은 애플 개발자 가이드를 참고해 주세요.
에러 코드 | 의미 |
---|---|
403 (InvalidProviderToken) | 잘못된 APNs 인증 정보입니다. 올바른 Key ID 혹은 Team ID를 입력한 후 다시 시도해주세요. |
400 (TopicDisallowed) | 잘못된 Bundle ID입니다. 인증 정보 입력란으로 돌아가 올바른 Bundle ID를 입력한 후 다시 시도해 주세요. |
400 (BadDeviceToken) | 잘못된 푸시 토큰입니다. 테스트 앱과 앱 환경 설정이 일치하는지 확인해 보세요. |
410 (Unregistered) | 잘못된 푸시 토큰입니다. 테스트 앱과 앱 환경 설정이 일치하는지 확인해 보세요. 또는 수일 전에 사용자가 앱을 삭제했을 수 있습니다. |
410 (ExpiredToken) | 잘못된 푸시 토큰입니다. 테스트 앱과 앱 환경 설정이 일치하는지 확인해 보세요. 또는 수일 전에 사용자가 앱을 삭제했을 수 있습니다. |
이미 앱이 삭제됐다는 의미를 가진 일부 에러 코드는 사일런트 푸시가 앱 삭제 이벤트를 정상적으로 트래킹해도 나올 수 있습니다. 하지만 사일런트 푸시 테스트의 목적은 사일런트 푸시가 정상적으로 전송되는 확인하는 것에 있습니다.
트래킹하는 앱을 최근 10일 동안 삭제하지 않은 테스트 디바이스로 사일런트 푸시 테스트를 진행해 주세요.
주의하세요
iOS 시뮬레이터(iOS Simulator)에서는 사일런트 푸시 테스트를 진행할 수 없습니다.
사일런트 푸시 테스트로 사일런트 푸시가 디바이스에 정상적으로 전송되는지 확인할 수 있습니다. 테스트를 진행하기 위해서는 ‘사일런트 푸시 테스트’를 클릭하고 테스트 디바이스의 FCM 등록 토큰을 입력해야 합니다. FCM 등록 토큰을 확인하는 방법은 파이어베이스 가이드를 참고해 주세요.
사일런트 푸시가 디바이스에 정상적으로 전송되면 앱을 설치한 디바이스에 대해 성공 메시지를 확인할 수 있습니다. 또는 앱을 삭제한 디바이스에 대해 404 에러 코드를 확인할 수 있습니다.
안드로이드 환경의 사일런트 푸시 테스트로 확인할 수 있는 주요 에러 코드는 아래와 같습니다. 에러 코드에 관한 자세한 내용은 파이어베이스 가이드를 참고해 주세요.
에러 코드 | HTTP 오류 코드 | 설명 |
---|---|---|
INVALID_ARGUMENT | 400 | 요청 매개변수가 잘못되었습니다. 패키지 이름 등이 정상적으로 입력되었는지 확인하세요. |
THIRD_PARTY_AUTH_ERROR | 401 | APN 인증서 또는 웹 푸시 인증 키가 유효하지 않거나 누락되었습니다. 인증 정보를 다시 확인하세요. |
SENDER_ID_MISMATCH | 403 | 인증된 발신자 ID가 등록 토큰의 발신자 ID와 다릅니다. 발신자 ID를 다시 확인하세요. |
UNREGISTERED | 404 | 등록 토큰이 잘못되었습니다. 에어브릿지 기준 앱이 삭제되었다는 뜻입니다. 앱 삭제 이벤트가 에어브릿지에 정상적으로 수집될 수 있습니다. |
QUOTA_EXCEEDED | 429 | 메시지 대상에 대한 전송 한도가 초과되었습니다. |
INTERNAL | 500 | 파이어베이스 서버에서 오류가 발생했습니다. 잠시 기다린 후에 테스트를 다시 진행하세요. 오류가 지속되면 파이어베이스에 문의하세요. |
UNAVAILABLE | 503 | 파이어베이스 서버가 과부하되어 요청이 제때 처리되지 않았습니다. 잠시 기다린 후에 테스트를 다시 진행하세요. |
사일런트 푸시 테스트는 에어브릿지에서 확인할 수 있는 앱 삭제 이벤트 수치에 어떠한 영향도 주지 않습니다. 따라서 사일런트 푸시 테스트로는 에어브릿지 리포트 또는 로우 데이터 추출에서 앱 삭제 이벤트 발생 여부를 확인할 수 없습니다.
앱 삭제를 트래킹하기 위해서는 에어브릿지 SDK 설정을 완료해야 합니다.
에어브릿지는 사일런트 푸시 알림을 통해 앱 삭제를 트래킹합니다. 따라서 앱이 푸시 알림을 받을 수 있도록 설정해 주세요.
푸시 토큰이 생성되면 해당 토큰을 registerPushToken
함수로 호출해 SDK에 전달해 주세요.
import 'package:airbridge_flutter_sdk/airbridge_flutter_sdk.dart';
...
Airbridge.registerPushToken(token);
주의하세요
iOS에서는 APNS 푸시 토큰을, Android에서는 파이어베이스 푸시 토큰을 전송해야 합니다.
에어브릿지가 앱 삭제 트래킹을 위해 보내는 사일런트 푸시 알람은 유저 앱에 나오지 않아야 하는 알람입니다. 앱은 해당 푸시 알람을 무시해야 합니다. 아래 코드를 참고해 주세요.
import 'package:airbridge_flutter_sdk/airbridge_flutter_sdk.dart';
...
if (Airbridge.isUninstallTrackingNotification(payload)) {
// app uninstall tracking push by airbridge.
// ignore these push notifications.
return
}
에어브릿지 대시보드에 인증 정보를 입력하고 에어브릿지 SDK 설정을 마치면 앱 삭제 트래킹 토글을 활성화할 수 있습니다. 토글을 활성화하면 앱 삭제 트래킹이 시작됩니다.
앱 삭제에 관한 자세한 내용은 에어브릿지 가이드에서 확인해 주세요.
도움이 되었나요?