События Firebase Analytics из iOS не отображаются

Я тестирую новую Firebase на базе Google и реализовал удаленные уведомления и отчеты о сбоях. Однако у меня огромные проблемы с тем, чтобы заставить Google Analytics работать.

Я отслеживаю события с помощью FIRAnalytics.logEventWithName(...) и сохраняю свойства пользователя с помощью FIRAnalytics.setUserPropertyString(...). Однако, что бы я ни делал, данные в консоли Firebase Analytics не отображаются.

Что ж, я получаю некоторые события, но они не отправляются мной (например, first_open и session_start). Кроме того, эти данные, кажется, падают через очень долгое время.

Кроме того, когда я отслеживаю события и сохраняю пользовательские данные, я получаю следующее:

Upload task scheduled to be executed in approx. (s): 3102.294599890709

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


person Daniel Saidi    schedule 24.05.2016    source источник
comment
В Android обновление событий в Firebase занимает слишком много времени. Наверное, раз в день.   -  person CoolMind    schedule 02.12.2020


Ответы (10)


События Firebase группируются и загружаются один раз в час, чтобы предотвратить чрезмерную разрядку батареи на устройствах. В iOS, когда вы запускаете приложение в фоновом режиме перед 1-часовой целью загрузки, события будут отправляться в это время в фоновом режиме.

Вы можете включить ведение журнала отладки для iOS (https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console), чтобы узнать, когда события загружаются в консоль отладки.

После загрузки событий происходит задержка примерно на 3 часа, прежде чем данные появятся на панели управления Firebase Analytics. Также дневной диапазон по умолчанию исключает «сегодня», поэтому вы видите только вчерашние события. Вы можете переключить средство выбора даты, чтобы включить «Сегодня», если хотите увидеть последние события.

Основная причина задержки / пакетной загрузки данных - экономия заряда батареи. Каждый раз при использовании сети модем мобильной сети устройства переводится в режим высокой мощности и остается в этом режиме некоторое время. Регулярное использование сети серьезно сказывается на сроке службы батареи. Группирование загрузок вместе и задержка загрузки значительно снижает влияние на батарею.

person djabi    schedule 24.05.2016
comment
Спасибо, что прояснили это. Как пользователь Google Analytics, я привык к анализу в реальном времени, чтобы иметь возможность видеть, что люди делают в моих приложениях прямо сейчас ... особенно во время разработки, чтобы видеть, что мои действия вызывают события правильно. Вчера я пытался найти информацию о предполагаемом поведении Firebase, но не нашел. Если бы у меня была небольшая коробочка с информацией, которую вы мне только что дали, это сэкономило бы мне часы на попытки заставить ее работать ... хотя на самом деле она уже вела себя так, как задумано. Я думаю, им следует учитывать загрузку в реальном времени при отладке. - person Daniel Saidi; 25.05.2016
comment
Да, мы рассматриваем возможность загрузки в режиме реального времени в режиме отладки. У меня нет времени, когда это может быть доступно. - person djabi; 25.05.2016
comment
Чувак, читая мой комментарий, я звучу как избалованный негодяй. Я действительно имел в виду, что это конструктивный совет, но это звучало так, будто я действительно ною. Не поймите меня неправильно - я очень взволнован службой Firebase и с нетерпением жду возможности следить за вами и любыми будущими обновлениями, которые вы можете добавить! - person Daniel Saidi; 26.05.2016
comment
Есть ли способ установить этот период / интервал пакетной обработки? - person DixieFlatline; 10.06.2016
comment
Нет, не сейчас. Как я уже упоминал в предыдущем комментарии, мы рассматриваем возможность добавления поддержки реального времени, но в настоящее время это недоступно. По какой причине вы хотите контролировать период / интервал дозирования? - person djabi; 11.06.2016
comment
@djabi: что делать, если пользователь не находится в приложении так долго. Они открывают приложение, запускают эти настраиваемые события и убивают приложение. эти значения кэшируются где-то для загрузки позже. Я пытаюсь показать эти настраиваемые события в течение 2 дней. Пока успехов нет - person Alix; 24.06.2016
comment
@djabi есть ли способ вручную запустить загрузку событий? Поскольку загрузка запускается методами делегата приложения, это делает невозможным отслеживание аналитики для чего-то вроде расширения клавиатуры, где нет делегата приложения, верно? - person alivingston; 19.07.2016
comment
alivingston, Если устройство подключено, то любое событие нужно загружать не позднее, чем через час после захвата. Если вы включите ведение журнала отладки, следуя firebase.google.com/docs/analytics/android/ вы можете увидеть запланированное время загрузки и фактическую загрузку. Если вы не видите данные в течение 2 дней, вероятно, что-то не так с настройкой или вы выключили устройство / эмулятор, на котором были записаны события. - person djabi; 22.07.2016
comment
@djabi просто для пояснения: если пользователь открывает приложение, делает что-то, что регистрирует события, затем убивает, а не фон, приложение до того, как истечет час, и события будут запущены, что произойдет с те события в сценарии, что они не открывают приложение снова в течение месяца? - person loudmouth; 05.09.2016
comment
IOS не позволяет приложению запускать код после завершения процесса. Данные будут загружены в следующий раз, когда процесс приложения будет запущен пользователем или для обработки другого запроса, например push-уведомления. Мне нужно это проверить, но я считаю, что iOS будет запускать приложение в фоновом режиме до завершения процесса. Это должно загрузить любые ожидающие данные, если у устройства есть возможность подключения. - person djabi; 08.09.2016
comment
Я просто подчеркиваю это для других: Также из диапазона дней по умолчанию исключается сегодняшний день, поэтому вы видите только вчерашние события. Вы можете переключить средство выбора даты, чтобы включить «Сегодня», если хотите увидеть последние события. Я только что потратил несколько часов на то, чтобы узнать, где мои события, только для того, чтобы укусить это (несколько раздражающая функция)! - person Rich; 07.11.2016
comment
аналитика все еще не в реальном времени? - person Shubham Ojha; 18.11.2019
comment
Чтобы видеть события во время отладки, добавьте -FIRAnalyticsDebugEnabled для запуска аргументов и просмотрите firebase.google.com/docs/analytics/ debugview - person henrique; 05.05.2021

В Swift это должно быть так:

FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])

Чтобы просмотреть это событие в Firebase:

  1. Перейдите в консоль Firebase → вкладка Analytics.
  2. Щелкните вкладку DebugView; там показаны ваши события

Чтобы просмотреть это событие в Xcode:

  1. В Xcode выберите Продукт → Схема → EditScheme
  2. Выберите "Выполнить" в левом меню.
  3. Выберите вкладку Аргументы
  4. В аргументах, передаваемых при запуске, добавьте -FIRAnalyticsDebugEnabled

Только один рывок !!

Обратите внимание, что -FIRAnalyticsDebugEnabled имеет только ONE тире перед ним.

person urvashi bhagat    schedule 08.04.2017
comment
обратите внимание, что -FIRAnalyticsDebugEnabled имеет только ОДИН прочерк перед ним - person Fattie; 24.07.2018
comment
Тем, у кого возникли проблемы с поиском вкладки DebugView, необходимо прокрутить вниз левую боковую панель. Для меня это было неочевидно. - person Morgan; 22.11.2019

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

mFirebaseAnalytics.logEvent("Add Camera", bundle);

Но когда вы удаляете пробел, как показано ниже:

mFirebaseAnalytics.logEvent("Add_Camera", bundle);

Теперь вы увидите события в консоли примерно через 3 часа. Приложение отправит данные на консоль в следующих случаях:

1- Data is more than an hours old
2- App goes into the background

Вы можете просмотреть это руководство для получения дополнительной информации: Начало работы с Firebase Analytics на iOS: События - Firecast

person Zulqarnain    schedule 17.10.2016

Еще одна вещь, которую нужно проверить, - убедиться, что ваши записи в журнале в Arguments Passed on Launch верны. Они должны начинаться с -, например

-FIRAnalyticsDebugEnabled

и не

FIRAnalyticsDebugEnabled

На днях я потратил час на размышления, почему ничего не регистрируется.

person crashoverride777    schedule 09.06.2019
comment
То же самое ... эта ONE DASH была проблемой и в моем случае. У меня ушел целый день, чтобы понять, что случилось. - person Dhaval H. Nena; 12.08.2019
comment
хе-хе, это так раздражает, я проделывал это как минимум 3 раза. :) - person crashoverride777; 12.08.2019
comment
Воистину, это так ... но теперь это заставит меня более внимательно относиться к таким незначительным вопросам. - person Dhaval H. Nena; 13.08.2019

Приложение React-Native (IOS / Android)

У меня была та же проблема, debugView не работал, а streamView давал сбои несколько раз, лучший способ, найденный ive для проверки моих событий, состоял в том, чтобы logEvents с моим createPageEvent(), а затем

важно перевести приложение в фоновый режим после регистрации событий, они будут отображаться почти в реальном времени в событиях firebase или в streamView (проверьте this article, чтобы узнать, когда события отправляются в firebase)

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

import firebase, { RNFirebase } from 'react-native-firebase';

export default class AnalyticsService  {

    static async initialize() {
        firebase.analytics().setAnalyticsCollectionEnabled(true);
    }

    static async createPageEvent(screen: string) {
        firebase.analytics().setCurrentScreen(screen)
        firebase.analytics().logEvent(`open_${screen}`)
    }

}

результат в streamView почти в реальном времени ->

введите здесь описание изображения

Теперь вы можете создавать воронки и прочее.

person Kuza Grave    schedule 30.04.2019

first_open, session_start перечислены Firebase как автоматически собираемые события.

Я не могу помочь вам с экстремальной задержкой задачи загрузки, с которой вы сталкиваетесь в своих пользовательских событиях ... но Firebase Analytics меньше недели, и это может быть просто ошибкой на их стороне.

Я нашел этот вопрос StackOverflow, в котором упоминаются те же строки отладки, но связанные с приложением Google. Измерение или старый SDK Google Mobile Analytics.

Также имейте в виду, что консоль Firebase не будет отображать события в реальном времени (source):

Вы можете просмотреть сводную статистику о ваших событиях на панелях консоли Firebase. Эти информационные панели периодически обновляются в течение дня. Для немедленного тестирования используйте вывод logcat, как описано в предыдущем разделе.

person Antoine Guénard    schedule 24.05.2016
comment
Основная причина задержки загрузки заключается в том, что после того, как мобильный модем переведен в режим высокой мощности, он остается таким в течение некоторого времени (например, 2 минуты). Простой способ представить себе, что каждый раз, когда сеть просыпается, время автономной работы устройства сокращается примерно на 2 минуты. Таким образом, если вы будите сеть каждые 2 минуты, заряда батареи вашего устройства хватит на ~ 5 часов. Данные в реальном времени серьезно влияют на срок службы батареи. Мы привязываем, чтобы сбалансировать потребность в реальном времени с разрядкой батареи. В большинстве случаев жизнь с тестом важнее реального времени. Это основная причина 1-часовой пакетной загрузки. Не ошибка. - person djabi; 22.06.2016

Простое примечание: согласно этому небольшому видео https://www.youtube.com/watch?v=5pYdTgSkW5E после игры с симулятором вы должны нажать кнопку «Домой» на Xcode, иначе данные не будут отправлены на сервер.

person delimiter    schedule 26.09.2017

Самая распространенная проблема, с которой сталкивается большинство людей, - это то, что firebase не регистрирует события, хотя все работает отлично.Это то, что я нашел в документации.

Если вам нужно навсегда деактивировать сбор данных Analytics в какой-либо версии вашего приложения, установите FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES в файле Info.plist вашего приложения. Установка FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES имеет приоритет над любыми значениями для FIREBASE_ANALYTICS_COLLECTION_ENABLED в Info.plist вашего приложения, а также над любыми значениями, установленными с помощью setAnalyticsCollectionEnabled.

Чтобы снова включить сбор, удалите FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED из своего Info.plist. Установка FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED на NO не имеет никакого эффекта и приводит к тому же поведению, что и отсутствие FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED в вашем Info.plist file.

Поэтому вам нужно удалить FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED из своего google-servicesinfo.plist файла, чтобы аналитика заработала.

person Abdullah    schedule 27.03.2019

Убедитесь, что ваше устройство не находится в режиме экономии заряда батареи. В этом режиме события могут накапливаться и отправляться только время от времени, даже если вы запускаете firebase в режиме отладки, как объяснили другие.

person mikelin    schedule 14.10.2020

Обновление событий в Firebase занимает слишком много времени. Наверное, раз в день. См. iOS или Android регистрация событий Firebase.

Вы можете включить подробное ведение журнала, чтобы отслеживать регистрацию событий SDK, чтобы убедиться, что события регистрируются правильно. Сюда входят события, регистрируемые как автоматически, так и вручную.

Вы можете включить подробное ведение журнала следующим образом:

  1. В Xcode выберите Продукт ›Схема› Изменить схему ...
  2. В левом меню выберите «Выполнить».
  3. Выберите вкладку «Аргументы».
  4. В разделе «Аргументы, передаваемые при запуске» добавьте -FIRAnalyticsDebugEnabled.

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

person CoolMind    schedule 02.12.2020