Отслеживание активности пользователей

Понятие сессии

Одна сессия для AppMetrica это некоторый период взаимодействия пользователя с вашим приложением.

В стандартном сценарии, если пользователь вернулся в ваше приложение через продолжительный промежуток времени после того, как приложение переключилось в фоновый режим (пользователь свернул приложение, открыл системные настройки), начнется новая сессия.

Отслеживание жизненного цикла приложения

Если для приложения минимальная версия Android задана 4.0 или выше, то библиотека AppMetrica может отслеживать жизненный цикл приложения в автоматическом режиме — после инициализации библиотеки вызовите метод YandexMetrica.enableActivityAutoTracking(Application application):

public void YourApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // Инициализация AppMetrica SDK.
        ...
        // Автоматическое отслеживание активности пользователей.
        YandexMetrica.enableActivityAutoTracking(this);
        ...
    }
}

Если заданная в приложении минимальная версия Android ниже 4.0, используйте следующие методы: YandexMetrica.resumeSession(activity) и YandexMetrica.pauseSession(activity) в соответствующих методах ваших Activity: onResume() и onPause(). При использовании этих методов необходимо отслеживать, чтобы активная сессия всегда завершалась вызовом метода YandexMetrica.pauseSession(activity). Если метод не вызван, библиотека считает сессию активной и совершает регулярный обмен данными с серверной частью AppMetrica. Это может привести к некорректному отслеживанию длительности сессии и повышению энергопотребления.

Пример:

public class YourActivity extends Activity {
      ...
      @Override
      protected void onResume() {
          super.onResume();
          YandexMetrica.resumeSession(this);
      }

      @Override
      protected void onPause() {
          YandexMetrica.pauseSession(this);
          super.onPause();
      }
      ...
}

Для работы с объектом интерфейса IReporter используйте методы resumeSession() и pauseSession():

public class YoutLibraryActivity extends Activity {
    ...
    @Override
    protected void onResume() {
        super.onResume();
        YandexMetrica.getReporter(API_key).resumeSession();
    }

    @Override
    protected void onPause() {
        YandexMetrica.getReporter(API_key).pauseSession();
        super.onPause();
    }
    ...
}

Это поможет библиотеке правильно отслеживать:

  • количество активных пользователей,
  • продолжительность сессий,
  • частоту использования приложения.

Контроль продолжительности сессии

Чтобы задать промежуток времени, через который начнется новая сессия, после возвращения пользователя в приложение, используйте метод YandexMetricaConfig.withSessionTimeout() при активации YandexMetrica.

Для работы с объектом интерфейса IReporter активируйте репортер с расширенной конфигурацией, в которой задайте неободимый промежуток времени.