События Firebase Analytics от iOS не отображаются
Я тестирую новую Firebase на базе Google и внедряю удаленные уведомления и отчеты о сбоях. Тем не менее, у меня возникли серьезные проблемы с работой Analytics.
Я отслеживаю события с помощью FIRAnalytics.logEventWithName(...)
и сохраняю пользовательские свойства с помощью FIRAnalytics.setUserPropertyString(...)
. Однако, независимо от того, что я делаю, в консоли Firebase Analytics не отображаются данные.
Ну, я получаю некоторые события, но они не отправляются мной (например, first_open и session_start). Кроме того, эти данные, кажется, падают через очень долгое время.
Кроме того, когда я отслеживаю события и сохраняю данные пользователя, я получаю следующее:
Upload task scheduled to be executed in approx. (s): 3102.294599890709
Это кажется действительно странным - Firebase, ожидающая почти час, прежде чем пытаться отправить следующую партию данных, должна быть ошибкой или же она настраивается? Когда я ждал, что очень долгая задержка, данные были отправлены... но не отображаются.
Ответы
Ответ 1
События Firebase собираются вместе и загружаются один раз в час, чтобы предотвратить чрезмерный разряд батареи на устройствах. На iOS, когда вы используете приложение до 1 часа загрузки, события будут отправляться в это время в фоновом режиме.
Вы можете включить ведение журнала отладки для iOS (https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console), чтобы увидеть, когда события загружаются в консоль отладки.
После того, как события будут загружены, задержка составит около 3 часов, прежде чем данные появятся в панели мониторинга Firebase Analytics. Также дневной диапазон по умолчанию исключает "сегодня", поэтому вы видите только события со вчерашнего дня. Вы можете переключить выбор даты, чтобы включить "Сегодня", если вам нравится видеть последние события.
Основная причина задержки/пакетной загрузки данных - экономить аккумулятор. Каждый раз, когда сеть используется, модем мобильной сети устройства помещается в режим питания и остается в этом режиме некоторое время. Если сеть используется регулярно, это сильно влияет на срок службы батареи. Благодаря пакетной загрузке вместе и задержке загрузки влияние на аккумулятор значительно сокращается.
Ответ 2
В Swift это должно быть так:
FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])
Чтобы просмотреть это событие в Firebase:
- Перейдите в консоль Firebase → вкладка Аналитика
- Нажмите на вкладку DebugView; ваши события показаны там
Чтобы просмотреть это событие в Xcode:
- В XCode выберите Продукт → Схема → EditScheme.
- Выберите Run из левого меню
- Выберите вкладку Аргументы
- В Аргументы,
-FIRAnalyticsDebugEnabled
, добавьте -FIRAnalyticsDebugEnabled
Ответ 3
Если вы не принимаете события в консоли, это может быть связано с тем, что вы не придерживаетесь соглашения об именах, поскольку я испытал это, если в имени события есть пробел, он никогда не появится в консоли, как показано ниже:
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: События - Firecasts
Ответ 4
first_open
, session_start
перечислены Firebase как Автоматически собранные события.
Я не могу помочь вам с экстремальной задержкой задачи загрузки, с которой вы сталкиваетесь в своих пользовательских событиях. Но Firebase Analytics меньше недели, и это может быть просто ошибка на их стороне.
Я нашел fooobar.com/questions/220337/..., в котором упоминаются те же строки отладки, которые связаны с Google App Measurement или старым SDK Google Mobile Analytics.
Кроме того, имейте в виду, что Firebase Console не будет отображать события в режиме реального времени (источник):
Вы можете просмотреть сводную статистику о ваших событиях в панелях консоли Firebase. Эти панели мониторинга периодически обновляются в течение дня. Для немедленного тестирования используйте вывод logcat, как описано в предыдущем разделе.
Ответ 5
React-Native App (IOS/Android)
У меня была та же проблема, debugView не работал, и streamView глючил несколько раз, лучший способ, который я нашел для проверки моих событий, - это logEvents с моим createPageEvent()
а затем
важно, чтобы приложение заносило в фоновый режим после регистрации событий, они будут отображаться почти в реальном времени на событиях Firebase или в StreamView (проверьте эту статью, чтобы увидеть, когда события отправляются в 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 почти в реальном времени ->
![enter image description here]()
Теперь вы можете начать строить воронки и прочее
Ответ 6
Простое примечание: в соответствии с этим маленьким видео https://www.youtube.com/watch?v=5pYdTgSkW5E после игры с вашим симулятором вам нужно нажмите кнопку home на Xcode, иначе данные не будут отправлены на сервер.
Ответ 7
Наиболее распространенная проблема, с которой сталкивается большинство людей, это то, что база данных не регистрирует события, хотя все работает отлично. Это то, что я нашел в этой документации.
Если вам необходимо окончательно деактивировать коллекцию FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES
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
чтобы аналитика работала
Ответ 8
Еще одна вещь, которую необходимо проверить, - убедиться, что ваши записи в журнале в аргументах, переданных при запуске, верны. Они должны начинаться с тире, например
-FIRAnalyticsDebugEnabled
и не
FIRAnalyticsDebugEnabled
Я потратил час на днях, задаваясь вопросом, почему ничего не регистрируется.