Как пользоваться Google Play Install Referrer

Автор: | 25.11.2017

Понимание того, как люди находят ваше приложение и что они делают, когда его устанавливают, очень важно для хорошего маркетинга. Особенно в том случае, если вы проводите свою рекламную компанию. Сегодня многие компании и рекламные сети предлагают решения на основе реферальных данных, которые позволяют определить, сколько было переход по ссылкам на приложение и откуда.

С этой целью Google выпустил новый API под названием Google Play Install Referrer, с помощью которого ваше приложение получит точную и безопасную информацию о содержимом реферала прямо из Google Play. В частности, вы можете узнать следующие данные:

  • URL-адрес реферала
  • Временная отметка в секундах, когда произошёл клик по реферальной ссылке
  • Временная отметка в секундах, когда началась установка приложения

Новый API работает на любых устройствах, однако для его работы требуется версия Google Play 8.3.73 и выше. Также должна иметься учётная запись в Developer Console для использования Google Play Install Referrer.

Добавление Google Play Install Referrer в своё приложение

Для того, чтобы начать работу с API, вам нужно будет добавить в зависимости проекта бибилотеку InstallReferrerLibrary. Библиотека доступна на репозитории Maven, чтобы использовать её, откройте файл build.gradle модуля приложения и добавьте следующую строчку в блок dependencies.

dependencies {
  ...
  compile 'com.android.installreferrer:installreferrer:1.0'
}

Теперь вам нужно установить связь между приложением и Google Play, поскольку приложение и магазин общаются через сервис. Для этого в коде активности, например MainAcivity, нужно создать экземпляр класса InstallReferrerClient и вызвать метод startConnection().

private InstallReferrerClient mReferrerClient;
...
mReferrerClient = InstallReferrerClient.newBuilder(this).build();
mReferrerClient.startConnection(installReferrerStateListener);

В качестве параметра в метод startConnection() нужно передать слушатель InstallReferrerStateListener, который будет отлавливать результат выполнения операции. В данном примере мы объявили слушатель отдельно и передали его в параметры, однако можно сделать это и иначе, используя implements.

Затем нужно обработать результаты выполнения операций, для этого нужно переопределить метод onInstallReferrerSetupFinished(). Это нужно также для того, чтобы отслеживать потерю соединения с Google Play, например, когда он обновляется в фоновом режиме.

Код слушателя выглядит следующим образом:

private InstallReferrerStateListener installReferrerStateListener =
    new InstallReferrerStateListener() {
      @Override public void onInstallReferrerSetupFinished(int responseCode) {
        switch (responseCode) {
          case InstallReferrerClient.InstallReferrerResponse.OK:
            // Соединение установлено
            try {
              if (BuildConfig.DEBUG) Log.d("InstallReferrerState", "OK");
              ReferrerDetails response = mReferrerClient.getInstallReferrer();
              response.getInstallReferrer();
              response.getReferrerClickTimestampSeconds();
              response.getInstallBeginTimestampSeconds();
              mReferrerClient.endConnection();
            } catch (RemoteException e) {
              e.printStackTrace();
            }
            break;
          case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
            if (BuildConfig.DEBUG) Log.d("InstallReferrerState", "FEATURE_NOT_SUPPORTED");
            // API не поддерживается текущей версией Google Play
            break;
          case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
            if (BuildConfig.DEBUG) Log.d("InstallReferrerState", "SERVICE_UNAVAILABLE");
            // Соединение не может быть установлено
            break;
        }
      }

      @Override public void onInstallReferrerServiceDisconnected() {
        // Попробуйте перезапустите соединение, заново вызвав метод startConnection()
        mReferrerClient.startConnection(installReferrerStateListener);
      }
    };

В методе onInstallReferrerSetupFinished() приходит результат выполнения операции соединения. Если соединение установлено, мы можем получить данные о реферале, вызвав метод клиента getInstallReferrer() и передав в экземпляр класса ReferrerDetails. С помощью этого объекта мы уже может получить конкретные данные, о которых говорили в начале статьи (url-адрес и временные отметки).

После получения данных не забудьте вызвать метод endConnection() для закрытия соединения, чтобы избежать утечек памяти и производительности.

Полученную информацию уже можно обрабатывать так, как вам угодно. Например, выводить всплывающее сообщение, в котором будет указано, откуда пользователь перешёл в Google Play.

К примеру, добавим реферальную ссылку для приложения Фонарик. При переходе по этой ссылке вы попадёте в Google Play, затем, установив приложение и запустив его, увидите во всплывающем сообщении, что в источнике указан наш сайт.

На этом всё. Если хотите, вы также можете изучить официальную документацию для дополнительных сведений.

Как пользоваться Google Play Install Referrer: 2 комментария

  1. Дмитрий

    Спасибо конечно, но ваш пример не будет ничего показывать пользователю. для того чтобы это сделать, надо как минимум добавить в пример вызов тост уведомления.

  2. Jofrei

    Не работает. Возможно нужно что-то в настройках выставить? У меня samsung a50 2019.

Добавить комментарий для Дмитрий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *