에어브릿지는 앱 이벤트를 최근 6개월 동안 1번이라도 트래킹한 유저를 대상으로 사일런트 푸시를 매일 KST(한국표준시간) 0시~1시 사이에 보내서 앱 삭제 여부를 확인합니다. 앱 삭제 이벤트는 에어브릿지 리포트와 로우 데이터 등으로 확인할 수 있습니다.
파이어베이스 클라우드 메시징(Firebase Cloud Messaging, FCM)을 사용해 안드로이드 환경에서 발생한 앱 삭제를 트래킹합니다.
알립니다
Airbridge Android SDK가 v2.6.0 이상이어야 합니다.
파이어베이스 클라우드 메시징(Firebase Cloud Messaging, FCM)의 인증 정보를 에어브릿지 대시보드에 입력해야 합니다.
파이어베이스 클라우드 메시징에서 아래 인증 정보 2가지를 확인해 주세요.
1. 파이어 베이스에서 신규 프로젝트를 생성하거나 기존 프로젝트를 선택합니다. 파이어베이스 클라우드 메시징의 가이드를 참고해 등록한 앱의 기본 설정을 완료해 주세요.
2. 생성한 프로젝트의 [프로젝트 개요] 옆에 있는 아이콘을 클릭해 [프로젝트 설정]으로 이동합니다. [프로젝트 설정]의 [클라우드 메시징]에서 ‘Cloud Messaging API(기존)’의 서버키와 발신자 ID를 복사합니다.
에어브릿지의 [Settings]>[Uninstall Tracking]>[안드로이드 앱 삭제 트래킹]에 파이어베이스 클라우드 메시징에서 복사한 서버키와 발신자 ID를 입력합니다.
‘사일런트 푸시 테스트’를 클릭하면 입력한 서버 키와 발신자 ID가 정상적으로 사일런트 푸시를 디바이스에 전송하는지 확인할 수 있습니다. 사일런트 푸시 테스트의 목적은 사일런트 푸시가 정상적으로 전송되는지를 확인하는 것에 있습니다. 사일런트 푸시 테스트는 에어브릿지 대시보드에 어떠한 영향을 주지 않습니다. 따라서 사일런트 푸시 테스트로 에어브릿지 리포트에서 앱 삭제 이벤트를 확인할 수 없습니다.
안드로이드 환경에서 사일런트 푸시 테스트를 진행하기 위해서는 파이어베이스 클라우드 메시징이 제공하는 테스트 디바이스의 푸시 토큰(push token)이 필요합니다. 파이어베이스 클라우드 메시징의 푸시 토큰을 확인하는 방법은 파이어베이스 클라우드 메시징 가이드를 참고해 주세요.
에어브릿지에서 테스트 디바이스로 사일런트 푸시를 전송하면 성공 메시지 또는 에러 코드를 확인할 수 있습니다. 안드로이드 환경의 사일런트 푸시 테스트로 확인할 수 있는 주요 에러 코드는 아래와 같습니다. 에러 코드에 관한 자세한 내용은 파이어베이스 클라우드 메시징 가이드를 참고해 주세요.
에러 메시지 | 의미 |
---|---|
BAD_REGISTRATION | 잘못된 푸시 토큰입니다. 푸시 토큰을 정상적으로 입력했는지 확인해 주세요. 코드 등을 추가하거나 삭제하지 마세요. |
DEVICE_UNREGISTERED | 잘못된 푸시 토큰이거나 앱을 삭제했습니다. 앱을 삭제했는지, 또는 토큰이 만료되지 않았는지 확인해 주세요. 또는 앱 업데이트에 맞춰 메시지를 받도록 설정했는지 등을 확인해 주세요. |
TIMEOUT | 서버키 유효성 검사에 실패했습니다. 서버키를 다시 입력해 주세요. |
이미 앱이 삭제됐다는 의미를 가진 DEVICE_UNREGISTERED 등 일부 에러 코드는 사일런트 푸시가 앱 삭제 이벤트를 정상적으로 트래킹해도 나올 수 있습니다. 하지만 사일런트 푸시 테스트의 목적은 사일런트 푸시가 정상적으로 전송되는 확인하는 것에 있습니다.
트래킹하는 앱을 최근 10일 동안 삭제하지 않은 테스트 디바이스로 사일런트 푸시 테스트를 진행해 주세요.
앱 삭제를 트래킹하기 위해서는 에어브릿지 SDK 설정을 완료해야 합니다. AndroidManifest.xml 에 아래처럼 추가해 주세요
<service
android:name="${packageName}.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
파이어베이스 클라우드 메시징(Firebase Cloud Messaging, FCM)에서 생성된 푸시 토큰(push token)
을 에어브릿지 SDK를 통해 전달합니다.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Airbridge.registerPushToken(token);
}
}
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
}
override fun onNewToken(token: String) {
super.onNewToken(token)
Airbridge.registerPushToken(token)
}
}
이미 파이어베이스 클라우드 메시징에서 푸시 토큰이 발급됐을 수 있습니다. 아래 설청을 추가해 기존 푸시 토큰도 함께 전달해 주세요.
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseMessaging.getInstance()
.getToken()
.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String token) {
Airbridge.registerPushToken(token);
}
});
}
}
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
...
FirebaseMessaging.getInstance()
.token
.addOnSuccessListener {
Airbridge.registerPushToken(it)
}
...
}
}
주의하세요
반드시 해당 함수가 Airbridge SDK의 초기화 작업 이후에 호출 될 수 있도록 작성해 주세요.
사일런트 푸시로 별도 데이터 없이 사일런트 알림이 전송됩니다. 하지만 파이어베이스 클라우드 메시징의 onMessageReceived 구현에 따라 사일런트 푸시의 알림이 유저에게 노출될 수 있습니다. 아래 예외 처리를 추가하면 사일런트 푸시가 유저에게 노출되지 않습니다.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage.getData().containsKey("airbridge-uninstall-tracking")) {
return;
} else {
// handleNotification(remoteMessage);
}
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Airbridge.registerPushToken(token);
}
}
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
if (remoteMessage.data.containsKey("airbridge-uninstall-tracking")) {
return
} else {
// handleNotification(remoteMessage)
}
}
override fun onNewToken(token: String) {
super.onNewToken(token)
Airbridge.registerPushToken(token)
}
}
에어브릿지 대시보드에 인증 정보를 입력하고 에어브릿지 SDK 설정을 마치면 앱 삭제 트래킹 토글을 활성화할 수 있습니다. 토글을 활성화하면 앱 삭제 트래킹이 시작됩니다.
앱 삭제에 관한 자세한 내용은 에어브릿지 가이드에서 확인해 주세요.
이 페이지가 도움이 되었나요?