Интеграция функции отслеживания удалений в приложение для Android

Краткий обзор. Чтобы настроить отслеживание удалений в приложении для Android, необходимо интегрировать в приложение службу Firebase Cloud Messaging.

Материал по теме: Принципы измерения количества удалений

Измерение количества удалений для устройств на платформе Android

Чтобы отслеживать удаления приложений для Android, необходимо настроить функцию измерения количества удалений в AppsFlyer и внедрить в приложение службу Firebase Cloud Messaging (FCM). С апреля 2021 года AppsFlyer поддерживает как устаревший API FCM, так и API HTTP V1. FCM рекомендует устанавливать версию V1

Чек-лист внедрения функции измерения количества удалений 
Шаг Действие Ответственность
1 Подключите FCM к AppsFlyer

Выберите API интеграции:

Маркетолог/разработчик
2

Интегрируйте FCM в приложение

Процедура интеграции зависит от того, как вы используете FCM: только с AppsFlyer или с несколькими платформами.

  1. Внедрите FCM в приложение.
  2. Произведите одно из следующих действий:
  3. [Необязательно] Если вы используете ProGuard, выполните Активацию ProGuard.
разработчик
3 Протестируйте измерение количества удалений разработчик

Подключите API FCM к AppsFlyer

Выберите версию API FCM: HTTP V1 [рекомендуется] или устаревший HTTP. 

HTTP V1

Чтобы настроить измерение количества удалений через API FCM V1: 

  1. Чтобы получить идентификатор проекта:
    1. Откройте консоль FCM.
    2. Выберите проект. 
    3. Перейдите в раздел Project Overview (Обзор проекта) > Project settings (Настройки проекта).

      UninstallFirebase.png

    4. Скопируйте идентификатор проекта. Он вам потребуется на следующих этапах процесса. 
  2. Чтобы назначить AppsFlyer роль удаления:
    1. Перейдите на вкладку Service accounts (Аккаунты служб). 
    2. Нажмите Manage service account permissions (Управлять разрешениями аккаунта службы). 
      В браузере с Google Cloud Platform откроется новая вкладка.
    3. В боковом меню выберите Roles (Роли). 
    4. Нажмите +Create role (Создать роль).
    5. Заполните поля следующим образом:
      • Title (Название): введите AppsFlyer uninstalls (Удаления AppsFlyer).
      • ID: введите af_uninstalls
      • Role launch stage (Этап запуска роли): выберите General availability (Общая доступность). 
    6. Найдите и выберите cloudmessaging.messages.create.

      AddPermissions.png

    7. Нажмите Добавить.
    8. Нажмите Create (Создать). 
  3. Чтобы назначить AppsFlyer роль удаления FCM:
    1. В боковом меню выберите IAM.
    2. Нажмите + Add (Добавить).
    3. В поле New members (Новые участники) вставьте af-uninstalls-tracking@af-uninstalls-tracking.iam.gserviceaccount.com
    4. Выберите роль AppsFlyer uninstalls (Удаления AppsFlyer).
    5. Нажмите Save (Сохранить). 
      Аккаунту службы AppsFlyer назначена роль «Удаления AppsFlyer». 
  4. Чтобы включить измерение количества удалений в AppsFlyer:
    1. В AppsFlyer перейдите в раздел Конфигурация > Настройки приложения
    2. Если требуется, включите Uninstall measurement (Измерение количества удалений). 
    3. Выберите HTTP V1.

      UninstallHTTPV1.png

    4. Введите Project ID (Идентификатор проекта), который вы скопировали ранее.
    5. Нажмите Тестировать подключение.
      Появится сообщение об успехе (Success!). 
    6. Нажмите Сохранить настройки

Устаревший HTTP

Измерение количества удалений с использованием службы Firebase Messaging поддерживается в SDK для Android начиная с версии 4.7.0.

  1. Чтобы получить серверный ключ Firebase:
    1. Создайте на платформе Firebase проект приложения для Android (если это еще не сделано) или перенесите свой проект из Google Developer Console (следуйте инструкциям консоли). Чтобы получить дополнительную информацию, перейдите в Firebase
    2. Откройте консоль Firebase.
    3. На странице консоли Firebase перейдите в раздел "Project Settings" (нажмите на значок шестеренки рядом с заголовком "Project Overview" на левой панели страницы).

      firebase_cloud_messaging_server_key.png

    4. На вкладке службы Cloud Messaging вы увидите два серверных ключа.
    5. Скопируйте серверный ключ.
  2. Чтобы включить измерение количества удалений в AppsFlyer:
    1. В AppsFlyer перейдите в раздел Конфигурация > Настройки приложения
    2. Если требуется, включите Uninstall measurement (Измерение количества удалений). 
    3. Выберите Legacy HTTP (Устаревший HTTP).
      UninstallLegacy.png
    4. Введите серверный ключ Firebase/GCM, скопированный на предыдущем шаге.
    5. Нажмите Сохранить настройки

Интегрируйте FCM в приложение

Используйте следующие процедуры (при необходимости), чтобы интегрировать FCM в приложение и протестировать интеграцию.

Внедрение FCM в приложение

  • Последняя версия Firebase доступна здесь: официальная документация Firebase.
  • В случае появления ошибки "Could not find..." (Не удалось найти...), убедитесь, что программа Android SDK Manager использует последний репозиторий Google. 
Чтобы внедрить FCM в приложение:
  1. Загрузите файл google-services.json с консоли Firebase.
  2. Добавьте файл google-services.json в каталог модулей своего приложения,
  3. Добавьте правила в файл build.gradle корневого уровня, чтобы включить в проект плагин google-services:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. Добавьте зависимость GCM в файл build.gradle уровня приложения:

    dependencies {
       implementation 'com.google.firebase:firebase-messaging:17.3.4'
    }
    
    // ADD THIS AT THE BOTTOM 
    apply plugin: 'com.google.gms.google-services
    

Использование FCM только с SDK AppsFlyer

Если единственная цель внедрения FCM — измерение количества удалений в AppsFlyer, используйте службу appsFlyer.FirebaseMessagingServiceListener, встроенную в SDK. Она расширяет класс FirebaseFirebaseMessagingService, используемый для получения токена устройства FCM.

Чтобы добавить службу appsFlyer.FirebaseMessagingServiceListener в приложение:

<application
   <!-- ... -->
      <service
        android:name="com.appsflyer.FirebaseMessagingServiceListener">
        <intent-filter>
          <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
      </service>
   <!-- ... -->
</application>

Использование FCM с несколькими платформами

Если вы планируете использовать FCM с несколькими платформами и(или) SDK, необходимо добавить код, который будет получать токен устройства и передавать его на все соответствующие платформы. Для этого нужно добавить новый экземпляр службы FirebaseMessagingService (так же, как добавляется служба в SDK AppsFlyer):
import com.appsflyer.AppsFlyerLib;
import com.google.firebase.messaging.FirebaseMessagingService;

public class MyNewFirebaseManager extends FirebaseMessagingService {

    @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
    }
}
Чтобы включить эту службу, ее необходимо добавить в файл AndroidManifest.xml: если приложение использовало FCM еще до интеграции SDK AppsFlyer, то, скорее всего, эта служба уже добавлена, и разработчику просто нужно добавить в метод onNewToken() следующий код:
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), refreshedToken); 

Проверьте, добавилась ли соответствующая служба в файл AndroidManifest.xml.

<service
    android:name=".MyNewFirebaseManager">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Использование ProGuard с функцией измерения количества удалений

Если вы используете утилиту ProGuard, добавьте следующее правило:

-dontwarn com.appsflyer.**
-keep public class com.google.firebase.messaging.FirebaseMessagingService {
  public *;
}

Тестирование отслеживания удалений приложений для Android

  • Описанная процедура тестирования действительна для приложений, доступных в магазине Google Play, ожидающих публикации, скачиваемых напрямую и доступных в альтернативных магазинах приложений. 
  • Метрика Удаления приложения доступна на обзорном дэшборде.
  • Список пользователей, удаливших приложение, доступен в отчете с сырыми данными по удалениям.

Чтобы протестировать измерение количества удалений для устройств на Android:

  1. Установите приложение.
  2. Удалите приложение.  Важно! Приложение можно удалить сразу после установки.
    Событие удаления регистрируется в течение 24 часов, т.к. измерение удалений обрабатываются ежесуточно.
    Если приложение повторно установлено в течение суток,удаление не фиксируется.

Событие удаления приложения в течение 48 часов отобразится в отчетах по сырым данным и в агрегированном отчете об эффективности на вашем дэшборде AppsFlyer.

aggregated_performance_report_uninstalls_en-us.png.

Дополнительная информация

Если push-уведомления об удалениях на Android не бесшумные

Если вы замените метод FCM onMessageReceived на свою собственную логику, это может привести к тому, что push-уведомления об удалениях приложений станут не бесшумными. Это может повлиять на пользовательский опыт. Чтобы этого не допустить, проверьте, что сообщение содержит af-uinstall-tracking. См. пример ниже:

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        
        if(remoteMessage.getData().containsKey("af-uinstall-tracking")){
            return;
        } else {
           // handleNotification(remoteMessage);
        }
    }
Была ли эта статья полезной?