Как именно Firebase Analytics обрабатывает продолжительность / тайм-ауты сеанса?

Я впервые реализую базовую статистику использования в приложении для Android / iOS с помощью Firebase Analytics, но документы кажутся мне немного неоднозначными относительно того, как именно рассчитывается продолжительность сеанса и как истекает время ожидания сеансов, а также 24-часовой цикл для просмотра результатов не помогает в понимании методом проб и ошибок.

На данный момент меня интересует только очень простая статистика - время, которое пользователи проводят в приложении. Что именно происходит, когда приложение «свернуто» / «в фоновом режиме» - считается ли это активным использованием или таким же, как закрываемое приложение - сейчас не так важно, но если вам есть что добавить в этом отношении в контекст вопроса, пожалуйста.

Насколько я понимаю, такая простая статистика, вероятно, должна быть доступна прямо из коробки с Firebase Analytics, поэтому в настоящее время я не использую никаких настраиваемых событий или чего-либо более интересного, чем просто привязка Firebase Analytics к проектам, добавление файлов конфигурации, и вызов FirebaseAnalytics.getInstance (this); на Android и [настройка FIRApp]; на iOS.

Я вижу, как события first_open, session_start и app_remove отображаются в консоли, как и ожидалось, некоторые совокупные данные сеанса на панели управления и т. Д., И я также знаю, что доступен настраиваемый тайм-аут сеанса.

Но что мне неясно, так это то, когда именно истекает срок действия пользовательского сеанса - Firebase автоматически сохраняет его открытым, пока приложение открыто, или мне нужно обязательно публиковать какие-то искусственные события "keep-alive", чтобы предотвратить пользователя сеансы не истекают, пока пользователь все еще использует приложение.

Предполагая следующее:

  1. Я не отправляю явных настраиваемых событий с помощью Firebase, поскольку это явно не требуется для приложения.
  2. Я касаюсь Firebase только один раз за один запуск приложения - инициализирую его при запуске.
  3. Пользователь остается в приложении в течение длительного времени (скажем, 2 часа - намного дольше, чем 30-минутный тайм-аут сеанса по умолчанию), не взаимодействуя с ним - например, читая что-то, просматривая видео и т. д., ни одно из этих действий не генерирует никаких событий, которые может видеть Firebase, но приложение предотвращает блокировку экрана, приложение остается на переднем плане.

Будет ли это считаться одним двухчасовым сеансом для пользователя? Будет ли он считаться 30-минутным сеансом, поскольку сеанс истекает через 30 минут и не генерируются никакие события, чтобы поддерживать его в рабочем состоянии? Что-нибудь еще случится?

Дополнительный вопрос: что произойдет, если пользователь выйдет из приложения на время короче / дольше тайм-аута сеанса?

Бонусный бонусный вопрос: что-то изменится, если вместо выхода из приложения оно просто переведено в фоновый режим?

Спасибо!


person DeducibleSteak    schedule 06.12.2016    source источник
comment
Некоторые связанные документы: Расчет сеанса Блог о новых возможностях сеанса   -  person Kato    schedule 14.06.2019


Ответы (1)


Быстрый ответ: описанный вами сценарий приведет к одному двухчасовому сеансу.

Сеансы основаны на времени, в течение которого активность приложения является текущей. Отправлять события не нужно; период с момента возобновления действия до момента его приостановки считается временем взаимодействия. По истечении часа непрерывного взаимодействия событие взаимодействия будет зарегистрировано, но это не завершит сеанс. Сеанс истекает, когда существует непрерывный период (30 минут по умолчанию), в течение которого ни одно из действий приложения не является текущим действием. Если пользователь выходит из приложения на более короткий период, чем время ожидания сеанса, а затем перезапускает его, сеанс продолжается. Если пользователь выходит из приложения дольше тайм-аута сеанса, сеанс завершается. Никаких изменений между выходом из приложения и переводом в фоновый режим. Если это не то, на что смотрит пользователь, это не считается вовлечением для запущенного приложения.

person Dan Morenus    schedule 16.12.2016
comment
звучит справедливо, но есть ли у вас доказательства? Я имею в виду ссылки на документацию по Android или вы проводили какое-либо исследование? - person Kirill Karmazin; 14.03.2017
comment
PS. Вот общедоступный документ, который частично подтверждает приведенную выше информацию: firebase.google.com/docs/reference/android/com/google/firebase/ - person Dan Morenus; 16.03.2017
comment
Вот еще один документ, который объясняет больше: support.google.com/firebase/answer/9191807 ? hl = ru - person Dan Morenus; 31.01.2020