Android Uninstall Tracking Setting

📘

Firebase Messaging을 통한 앱 삭제 추적은 Airbridge Android SDK v2.6.0 이후 버전 부터 사용 가능합니다.

❗️

Uninstall Tracking Feature를 사용하기 위해서는 Firebase 및 Firebase Cloud Messaging을 필수적으로 사용해야 합니다.

개요

Airbridge에서는 최근 6개월 이내 등록된 기기들을 대상으로 Google의 Firebase Messaging Service를 통해 앱의 설치 설치 유무를 판단합니다.

앱 삭제 측정 데이터는 Actuals Report, Raw Data Export 연동 등을 통해 고객사에 제공되어 집니다.

설정

Firebase 프로젝트 생성

Firebase Console 페이지로 이동하여 상단의 화면과 같이 해당 앱의 프로젝트를 생성합니다.

Firebase Cloud Messaging 서버 키 등록

앞서 생성되어진 프로젝트로 이동 후 좌측 패널의 프로젝트 설정 페이지로 이동 하여 상단의 화면과 같은 위치에서 확인이 가능합니다.

Firebase Cloud Messaging 설정

Firebase Cloud Messaging 공식 문서를 참고하여 앱의 기본 설정을 완료해 주세요.

Firebase Push Token 전송

Firebase Cloud Messaging 설정을 통해 생성되어지는 Push Token을 Airbridge 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)
    }
}

기존에 이미 Firebase Cloud Messaging Service를 통해 Push Token이 발급되었을 수 있습니다.

다음과 같은 설정을 함께 추가하여 기존에 생성된 Push Token도 전달해 주세요.

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseInstanceId.getInstance()
                .getInstanceId()
                .addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
                    @Override
                    public void onSuccess(InstanceIdResult instanceIdResult) {
                        Airbridge.registerPushToken(instanceIdResult.getToken());
                    }
                });
    }
}
class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        ...
        FirebaseInstanceId.getInstance()
            .instanceId
            .addOnSuccessListener { instanceIdResult -> registerPushToken(instanceIdResult.token) }
        ...
    }
}

❗️

반드시 해당 함수가 Airbridge SDK의 초기화 작업 이후에 호출 될 수 있도록 작성해 주세요.

앱 삭제 알림이 별도의 데이터 없이 사일런트(Slient) 알림으로 전송 되지만 Firebase Messaging Service의 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)
    }
}