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

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

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

Установка длительности тайм-аута сессии

По умолчанию длительность тайм-аута сессии равна 10 секундам. Это минимально допустимое значение параметра sessionTimeout.

Чтобы изменить длительность тайм-аута, передайте значение в секундах в метод withSessionTimeout(int sessionTimeout) при создании расширенной конфигурации библиотеки.

// Creating an extended library configuration.
YandexMetricaConfig config = YandexMetricaConfig.newConfigBuilder(API_key)
        // Setting the length of the session timeout.
        .withSessionTimeout(15)
        .build();
// Initializing the AppMetrica SDK.
YandexMetrica.activate(getApplicationContext(), config);

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

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

public void YourApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // Initializing the AppMetrica SDK.
        ...
        // Automatic tracking user activity.
        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();
    }
    ...
}

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

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