[앱 삭제 측정 방법]나는 네가 어제 앱을 삭제 했다는것을 알고 있다

Ted Park
박상권의 삽질블로그
7 min readJul 26, 2021

앱 설치율도 중요하지만, 앱 삭제율도 중요합니다.
사용자가 앱을 지웠는지 어떻게 알 수 있을까요?
Android/iOS 모두 적용되는, 사용자가 앱을 삭제한것을 측정하는 방법에 대해 공유합니다.

저는 사용자들에게 앱을 홍보하는 마케터입니다.(사실 아닙니다)

저는 우리 앱을 페이스북, 인스타그램, 구글, 밴드, 네이버 등의 여러 채널을 통해서 앱을 광고하고 있습니다.

항상 마케팅을 집행하면서 어떤 채널을 통해서 우리앱을 설치했는지
Referrer를 통해서 이를 확인하고 효과를 측정합니다.

상황

  1. A 채널에 100만원, B채널에 100만원의 마케팅 비용을 사용함
  2. A채널을 통해서 1만명의 사용자가 앱을 설치함
  3. B채널을 통해서 2만명의 사용자가 앱을 설치함
  • 기존의 마케팅 성과 측정
1. A 채널의 CPI(Cost Per Install)는 100원이고 B채널의 CPI는 50원이네?
2. B채널의 광고성과가 A채널보다 2배나 높은걸?
3. B채널의 광고효과가 훨씬 좋으니까 B로 광고비를 더 많이 태워야겠다!

하지만 이 성과측정에는 함정이 있었습니다.
삭제율을 고려하지 않았기 때문입니다.

A채널을 통해 설치한 1만명중 삭제한 사용자는 2천명,
B채널을 통해 설치한 2만명중 삭제한 사용자는 1만5천명이었던 것입니다.

만약 이 사실까지 알았다면,
A채널의 삭제율은 20%, B채널의 삭제율은 75%라는것을 파악하고 있었을 겁니다. (잔존율은 80%, 25%)

언뜻 CPI만 비교했을때는 B채널의 광고효과가 더 좋았다고 생각할 수도 있었겠지만,
삭제율까지 고려했다면 B채널의 광고효과가 더 좋았다고 판단할 수 없었을것입니다.

상황극(?)을 통해서 삭제율 측정이 왜 중요한지에 대해서 말씀드려봤습니다.
그 밖에도 삭제율 측정을 해야 하는 이유는 많습니다.

- 삭제한 사용자를 대상으로 리타게팅 광고
- 사용자 별로 사용 시나리오를 파악하고 어느 시점에 삭제했는지 분석
- 오류 발생에 따른 사용자 삭제 영향도 파악

사용자가 앱을 삭제했는지 알 수 있는 방법은 무엇일까요?

만약 여러분이 안드로이드 개발자라면

android.intent.action.PACKAGE_REMOVED 브로드캐스트 리시버를 이용해서 앱 삭제를 모니터링할 수 있지 않을까?”

라고 생각하셨을 수도 있겠지만
위의 개념은 다른 앱에서 일어나는 이벤트를 모니터링 할 수 있고
내 앱이 삭제되는것을 알 수는 없습니다.

푸시 알림을 통해 삭제 여부 알아내기

“엥? 앱을 삭제하는데 갑자기 푸시요?”

라고 생각 하셨을 수도 있겠지만 사실입니다.

요즘은 대부분 FCM(Firebase Cloud Messaging)을 사용해서 Android/iOS 모두 푸시를 보내고 있습니다.

이 FCM을 사용해서 사용자의 앱 삭제여부를 알아낼 수 있습니다.

1. Token 등록

  • 앱을 설치하고 FCM에 등록하면 푸시 전송을 위한 token을 받아오게 됩니다.
  • 이때 받아온 push token을 서버에 등록해둡니다.

2. 삭제 확인 푸시 전송

  • 서버에서 매일 주기적으로 삭제확인을 위한 Silent Push를 보냅니다.
  • iOS
    : iOS는 푸시를 보내는 순간 Notification이 만들어지기 때문에 background notification이라는 개념으로 Silent Push를 보내야 합니다
    : content-available: 1,
    : apns-push-type: background
    : apns-priority: 5
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app
  • Android
    : iOS와 다르게 Notification을 직접 만들기 때문에 이 경우에는 Notification자체를 안만들면 됩니다.
    : FCM data를 삭제확인과 관련된 내용임을 알리는 값을 보내고 해당 푸시일때는 아무작업을 하지 않도록 합니다.

3. 앱 삭제 여부 확인

  • 만약 사용자가 앱을 삭제했다면 FCM 푸시 전송은 실패하게 됩니다.
  • 즉, 푸시 전송이 실패했다면 사용자가 앱을 지웠다는 뜻입니다.
  • 오류 코드가 200이면서 error:NotRegistered 라면 앱을 삭제한것입니다.
https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes

4. 통계 기록

  • 위의 결과로 사용자가 앱을 삭제했다는 것을 알게되었다면 DB에 기록합니다.
  • 위의 통계를 기반으로 사용자들의 삭제율도 파악할 수 있고
  • 어떤 사용자들이 어떤 상태일때 삭제했는지도 알 수 있게 됩니다.

과정 요약

위의 기능들을 직접 서버개발자가 구현할 수도 있겠지만 귀찮습니다.

그리고 서버개발자가 없거나 개인앱을 운영하고 있어서 위와 같은 구현을 하기 힘들다면 외부 서비스들을 사용하면 됩니다.

보통 많이 사용하는 마케팅툴 서비스들에서 위의 삭제율 측정 기능을 제공해줍니다.

(Appsflyer 예시)

특히 이런 외부 마케팅툴 들은 앱 설치 Referrer에 따른 통계와 함께 앱 삭제율정보도 편하게 보여주기 때문에 너무 좋습니다.

이상으로 앱 삭제 측정 방법에 대해서 공유해드렸습니다.

모든 사용자가 앱을 삭제하지 않고 계속 사용했으면 좋겠지만 현실은 그렇지 않을겁니다ㅜㅜ

그럴 수록 우리는 몇%의 사용자가 앱을 삭제하고 있는지를 알아야 합니다.
그 통계로부터 앱 삭제율을 낮추기 위한 여러가지 개선작업을 하면 되니까요

앱 삭제 측정을 통해 사용자 잔존율을 높인 좋은 case가 있다면 댓글로 공유해주세요

감사합니다.
건강하세요.

안드로이드 개발자들이 모여있는 오픈채팅방에 참여해보세요 .
Q&A 및 팁을 공유하는 방입니다.

--

--