来自 iOS 的 Firebase Analytics 事件未显示
Firebase Analytics events from iOS not showing up
我正在测试由 Google 驱动的新 Firebase,并且已经实现了远程通知和崩溃报告。然而,我在让 Analytics 正常工作方面遇到了很多问题。
我使用 FIRAnalytics.logEventWithName(...)
跟踪事件并使用 FIRAnalytics.setUserPropertyString(...)
保存用户属性。但是,无论我做什么,Firebase Analytics 控制台中都没有显示任何数据。
好吧,我确实收到了一些事件,但那些不是我发送的(比如 first_open 和 session_start).另外,这个数据似乎在很长时间后才出现。
此外,当我跟踪事件和保存用户数据时,我收到以下信息:
Upload task scheduled to be executed in approx. (s): 3102.294599890709
这看起来真的很奇怪 - Firebase 在尝试发送下一批数据之前等待了将近一个小时一定是一个错误,或者它是可配置的?当我等待极长的延迟时,数据已发送...但没有显示。
first_open
、session_start
被 Firebase 列为 Automatically collected events。
对于您在自定义事件中遇到的极端上传任务延迟,我无法帮助您。但是 Firebase Analytics 还不到一周的时间,这可能只是他们这边的一个错误。
我发现 提到了相同的调试行,但与 Google App Measurement 或旧的 Google Mobile Analytics SDK 有关。
此外,请注意 Firebase 控制台不会实时显示事件 (source):
You can view aggregrated statistics about your events in the Firebase console dashboards. These dashboards update periodically throughout the day. For immediate testing, use the logcat output as described in the previous section.
Firebase 事件一起批处理并每小时上传一次,以防止设备过度耗电。在 iOS 上,当您在 1 小时上传目标之前将应用置于后台时,此时将在后台调度事件。
您可以为 iOS (https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console) 启用调试日志记录,以查看何时在调试控制台中上传事件。
事件上传后,大约需要 3 小时的延迟,数据才会显示在 Firebase Analytics 仪表板中。此外,默认日期范围不包括 "today",因此您只能看到昨天的事件。如果您想查看最新事件,可以将日期选择器切换为包括今天。
delay/batch 上传数据的主要原因是为了省电。每次使用网络时,设备移动网络调制解调器都会进入高功率模式并保持一段时间。如果经常使用网络,则会严重影响电池寿命。通过将上传批处理在一起并延迟上传,可以显着降低对电池的影响。
如果您在控制台中没有收到事件,可能是因为您没有遵循命名约定,正如我所经历的,如果事件名称中有 space,它将永远不会像下面这样显示在控制台中:
mFirebaseAnalytics.logEvent("Add Camera", bundle);
但是当您删除 space 时,如下所示:
mFirebaseAnalytics.logEvent("Add_Camera", bundle);
现在您将在大约 3 小时后在控制台中看到事件。
在以下情况下,应用程序会将数据发送到控制台:
1- Data is more than an hours old
2- App goes into the background
您可以观看本教程了解更多信息:
Getting Started with Firebase Analytics on iOS: Events - Firecasts
在 Swift 中应该是这样的:
FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])
要在 Firebase 中查看此事件:
- 转到 Firebase 控制台 → 分析选项卡
- 单击“调试视图”选项卡;你的活动显示在那里
要在 Xcode 中查看此事件:
- 在Xcode中,select产品→方案→编辑方案
- Select 运行 来自左侧菜单
- Select 参数选项卡
- 在启动时传递的参数中,添加
-FIRAnalyticsDebugEnabled
只有一个破折号!!
请注意 -FIRAnalyticsDebugEnabled 前面只有 ONE 个破折号。
这里只是一个简单的注意事项:根据这个小视频 https://www.youtube.com/watch?v=5pYdTgSkW5E 在玩完你的模拟器后 你必须 按下 Xcode 上的主页按钮,否则数据不会发送到服务器。
大多数人面临的最常见问题是 firebase 没有记录事件,即使一切正常
这是我在文档中找到的
如果您需要在应用的某个版本中永久停用 Analytics collection,请在应用的 Info.plist 文件中设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES
。设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES
优先于应用 Info.plist
中 FIREBASE_ANALYTICS_COLLECTION_ENABLED
的任何值以及使用 setAnalyticsCollectionEnabled.
设置的任何值
给 re-enable collection,从你的 Info.plist
中删除 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
。将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
设置为 NO
没有效果,结果与未在 Info.plist file
.
中设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
的行为相同
因此您必须从 google-servicesinfo.plist
文件中删除 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
才能使分析正常工作
React-Native 应用程序 (IOS/Android)
我遇到了同样的问题,debugView 不工作,streamView 有几次故障,我发现测试我的事件的最好方法是用我的 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 中的结果几乎是实时的 ->
现在您可以开始构建渠道和其他东西了
另一件要检查的事情是确保 Arguments Passed on Launch
中的日志条目正确。他们应该以 -
开头,例如
-FIRAnalyticsDebugEnabled
而不是
FIRAnalyticsDebugEnabled
前几天我浪费了一个小时想知道为什么没有记录。
确保您的设备没有设置为省电模式。在这种模式下,事件可能会累积并偶尔发送一次,即使您 运行 firebase 处于调试模式,如其他人所解释的那样。
在 Firebase 中更新事件需要花费太多时间。大概一天做一次。请参阅 iOS or Android Firebase 事件的日志记录。
You can enable verbose logging to monitor logging of events by the SDK
to help verify that events are being logged properly. This includes
both automatically and manually logged events.
You can enable verbose logging as follows:
- In Xcode, select Product > Scheme > Edit scheme...
- Select Run from the left menu.
- Select the Arguments tab.
- In the Arguments Passed On Launch section, add
-FIRAnalyticsDebugEnabled.
The next time you run your app, your events will display in the Xcode
debug console, helping you immediately verify that events are being
sent.
我正在测试由 Google 驱动的新 Firebase,并且已经实现了远程通知和崩溃报告。然而,我在让 Analytics 正常工作方面遇到了很多问题。
我使用 FIRAnalytics.logEventWithName(...)
跟踪事件并使用 FIRAnalytics.setUserPropertyString(...)
保存用户属性。但是,无论我做什么,Firebase Analytics 控制台中都没有显示任何数据。
好吧,我确实收到了一些事件,但那些不是我发送的(比如 first_open 和 session_start).另外,这个数据似乎在很长时间后才出现。
此外,当我跟踪事件和保存用户数据时,我收到以下信息:
Upload task scheduled to be executed in approx. (s): 3102.294599890709
这看起来真的很奇怪 - Firebase 在尝试发送下一批数据之前等待了将近一个小时一定是一个错误,或者它是可配置的?当我等待极长的延迟时,数据已发送...但没有显示。
first_open
、session_start
被 Firebase 列为 Automatically collected events。
对于您在自定义事件中遇到的极端上传任务延迟,我无法帮助您。但是 Firebase Analytics 还不到一周的时间,这可能只是他们这边的一个错误。
我发现
此外,请注意 Firebase 控制台不会实时显示事件 (source):
You can view aggregrated statistics about your events in the Firebase console dashboards. These dashboards update periodically throughout the day. For immediate testing, use the logcat output as described in the previous section.
Firebase 事件一起批处理并每小时上传一次,以防止设备过度耗电。在 iOS 上,当您在 1 小时上传目标之前将应用置于后台时,此时将在后台调度事件。
您可以为 iOS (https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console) 启用调试日志记录,以查看何时在调试控制台中上传事件。
事件上传后,大约需要 3 小时的延迟,数据才会显示在 Firebase Analytics 仪表板中。此外,默认日期范围不包括 "today",因此您只能看到昨天的事件。如果您想查看最新事件,可以将日期选择器切换为包括今天。
delay/batch 上传数据的主要原因是为了省电。每次使用网络时,设备移动网络调制解调器都会进入高功率模式并保持一段时间。如果经常使用网络,则会严重影响电池寿命。通过将上传批处理在一起并延迟上传,可以显着降低对电池的影响。
如果您在控制台中没有收到事件,可能是因为您没有遵循命名约定,正如我所经历的,如果事件名称中有 space,它将永远不会像下面这样显示在控制台中:
mFirebaseAnalytics.logEvent("Add Camera", bundle);
但是当您删除 space 时,如下所示:
mFirebaseAnalytics.logEvent("Add_Camera", bundle);
现在您将在大约 3 小时后在控制台中看到事件。 在以下情况下,应用程序会将数据发送到控制台:
1- Data is more than an hours old
2- App goes into the background
您可以观看本教程了解更多信息: Getting Started with Firebase Analytics on iOS: Events - Firecasts
在 Swift 中应该是这样的:
FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])
要在 Firebase 中查看此事件:
- 转到 Firebase 控制台 → 分析选项卡
- 单击“调试视图”选项卡;你的活动显示在那里
要在 Xcode 中查看此事件:
- 在Xcode中,select产品→方案→编辑方案
- Select 运行 来自左侧菜单
- Select 参数选项卡
- 在启动时传递的参数中,添加
-FIRAnalyticsDebugEnabled
只有一个破折号!!
请注意 -FIRAnalyticsDebugEnabled 前面只有 ONE 个破折号。
这里只是一个简单的注意事项:根据这个小视频 https://www.youtube.com/watch?v=5pYdTgSkW5E 在玩完你的模拟器后 你必须 按下 Xcode 上的主页按钮,否则数据不会发送到服务器。
大多数人面临的最常见问题是 firebase 没有记录事件,即使一切正常 这是我在文档中找到的
如果您需要在应用的某个版本中永久停用 Analytics collection,请在应用的 Info.plist 文件中设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES
。设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES
优先于应用 Info.plist
中 FIREBASE_ANALYTICS_COLLECTION_ENABLED
的任何值以及使用 setAnalyticsCollectionEnabled.
给 re-enable collection,从你的 Info.plist
中删除 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
。将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
设置为 NO
没有效果,结果与未在 Info.plist file
.
FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
的行为相同
因此您必须从 google-servicesinfo.plist
文件中删除 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
才能使分析正常工作
React-Native 应用程序 (IOS/Android)
我遇到了同样的问题,debugView 不工作,streamView 有几次故障,我发现测试我的事件的最好方法是用我的 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 中的结果几乎是实时的 ->
现在您可以开始构建渠道和其他东西了
另一件要检查的事情是确保 Arguments Passed on Launch
中的日志条目正确。他们应该以 -
开头,例如
-FIRAnalyticsDebugEnabled
而不是
FIRAnalyticsDebugEnabled
前几天我浪费了一个小时想知道为什么没有记录。
确保您的设备没有设置为省电模式。在这种模式下,事件可能会累积并偶尔发送一次,即使您 运行 firebase 处于调试模式,如其他人所解释的那样。
在 Firebase 中更新事件需要花费太多时间。大概一天做一次。请参阅 iOS or Android Firebase 事件的日志记录。
You can enable verbose logging to monitor logging of events by the SDK to help verify that events are being logged properly. This includes both automatically and manually logged events.
You can enable verbose logging as follows:
- In Xcode, select Product > Scheme > Edit scheme...
- Select Run from the left menu.
- Select the Arguments tab.
- In the Arguments Passed On Launch section, add -FIRAnalyticsDebugEnabled.
The next time you run your app, your events will display in the Xcode debug console, helping you immediately verify that events are being sent.