Измерение удалений
Обзор
Настройте измерение количества удалений в приложениях для Android с помощью SDK AppsFlyer и службы Firebase Cloud Messaging.
Интеграция измерения количества удалений для Android
В этом документе рассматривается интеграция измерения удалений для следующих сценариев:
- Приложения, которые уже используют FCM.
- Приложения, которые не используют FCM.
Последняя версия клиента FCM доступна здесь.
Apps using FCM
Чтобы добавить измерение количества удалений в работающую интеграцию FCM:
in the onNewToken()
в переопределении вызовите updateServerUninstallToken
:
@Override
public void onNewToken(String s) {
super.onNewToken(s);
// Sending new token to AppsFlyer
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), s);
// the rest of the code that makes use of the token goes in this method as well
}
Apps not using FCM
Чтобы интегрировать измерение количества удалений:
- Загрузить
google-services.json
from Firebase console. - Добавьте
google-services.json
в каталог модулей своего приложения - Добавьте следующие зависимости в файл корневого уровня
build.gradle
file:buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:4.2.0' // google-services plugin } }
- В файле уровня приложения
build.gradle
добавьте следующие зависимости:Примечание. В случае появления ошибки "Could not find method implementation()..." (Не удалось найти реализацию метода()...), убедитесь, что программа Android SDK Manager использует последний репозиторий Google.dependencies { // ... implementation 'com.google.firebase:firebase-messaging:23.0.3' implementation 'com.google.firebase:firebase-core:20.1.2' // ... }

- Если вы используете FCM только для измерения удалений в AppsFlyer, используйте службу
appsFlyer.FirebaseMessagingServiceListener
, встроенную в SDK. Она расширяет классFirebaseMessagingService
, используемый для получения токена устройства FCM, и вызываетupdateServerUninstallToken
. Чтобы добавить службуappsFlyer.FirebaseMessagingServiceListener
в приложение:В противном случае переопределите метод<application <!-- ... --> <service android:name="com.appsflyer.FirebaseMessagingServiceListener"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service> <!-- ... --> </application>
FirebaseMessagingService.onNewToken()
и вызовитеupdateServerUninstallToken
:@Override public void onNewToken(String s) { super.onNewToken(s); // Sending new token to AppsFlyer AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), s); // the rest of the code that makes use of the token goes in this method as well }
Примечание
Если вы используете утилиту ProGuard, добавьте следующее правило:
-dontwarn com.appsflyer.** -keep public class com.google.firebase.messaging.FirebaseMessagingService { public *; }
Тестирование измерения количества удалений для устройств на Android
Описанная процедура тестирования действительна для приложений, доступных в магазине Google Play, ожидающих публикации, скачиваемых напрямую и доступных в альтернативных магазинах приложений.
- Метрика Удаления приложения доступна на обзорном дэшборде.
- Список пользователей, которые удалили приложение, доступен в отчетах об удалении [по сырым данным].(https://support.appsflyer.com/hc/ru/articles/209680773-Raw-data-reporting-overview#доступность-отчета-о-пути-пользователя).
Чтобы протестировать измерение количества удалений для устройств на Android:
- Установите приложение.
- Удалите приложение. Приложение можно удалить сразу после установки.
- Подождите, пока сообщение об удалении появится на дэшборде. Это может занять до 48 часов.
Факторы, которые необходимо учитывать
- Событие удаления регистрируется в течение 24 часов, так как данные об удалении обрабатываются ежедневно.
- Если приложение переустанавливается в течение этого времени, событие удаления не регистрируется.
Переопределение FCM onMessageReceived
onMessageReceived
Переопределение FCM onMessageReceived
на свою собственную логику,
это может привести к тому, что push-уведомления об удалениях приложений станут не бесшумными. Это может повлиять на пользовательский опыт. Чтобы этого не допустить, проверьте, что сообщение содержит af-uninstall-tracking
. Рассмотрим следующий пример.
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(remoteMessage.getData().containsKey("af-uinstall-tracking")){ // "uinstall" is not a typo
return;
} else {
// handleNotification(remoteMessage);
}
}
Изменения сохранены около 1 месяца назад