如何为分析添加 Firebase 自定义事件?

Posted

技术标签:

【中文标题】如何为分析添加 Firebase 自定义事件?【英文标题】:How to add Firebase custom events for analytics? 【发布时间】:2017-03-21 19:37:26 【问题描述】:

我已经看到一些关于 Firebase 分析的自定义事件的问题和答案,但我只是想问你一个直截了当的问题,以便你可以给我一个直截了当的答案 :)

所以,这是我的日志记录方法:

@Override
public void logFeatureSelectedEvent(String categoryName, String actionName, String labelName) 
    Bundle bundle = new Bundle();
    bundle.putString(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    bundle.putString(EventTrackingKeys.EventTypes.ACTION, actionName);
    bundle.putString(EventTrackingKeys.EventTypes.LABEL, labelName);
    mFirebaseAnalytics.logEvent(EventTrackingKeys.EventAnalyticTypes.FEATURE_SELECTED_EVENT, bundle);

使用自定义事件/键名:

String CATEGORY = "category";
String ACTION = "action";
String LABEL = "label";
String FEATURE_SELECTED_EVENT = "feature_selected_event";

因此,在我的 firebase 控制台中,我只获得事件名称“feature_selected_event”,没有自定义参数名称.. 我已经看到一些答案,我应该调用 setUserProperty() 方法并在 Firebase Analytics 的“用户属性”选项卡中注册该用户属性。 这是实现该方法的正确方法吗? :

   @Override
public void logFeatureSelectedEvent(String categoryName, String actionName, long value) 
    Bundle bundle = new Bundle();
    bundle.putString(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    bundle.putString(EventTrackingKeys.EventTypes.ACTION, actionName);
    bundle.putLong(EventTrackingKeys.EventTypes.VALUE, value);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.ACTION, actionName);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.VALUE, value);
    mFirebaseAnalytics.logEvent(EventTrackingKeys.EventAnalyticTypes.FEATURE_SELECTED_EVENT, bundle);

【问题讨论】:

【参考方案1】:

在 Firebase 中,据我所知,我们必须在 对中记录事件,然后需要记录。

像这样:

bundle.putString("yourKey","yourValue");

例如,我已将自定义事件放入 MyApp 以获取 AppOpen 时间,如下所示。

    Bundle params = new Bundle();
    params.putString("open_time", TimeStampUtil.getTimeStamp(System.currentTimeMillis()));
    mFirebaseAnalytics.logEvent("app_open_time", params);

所以,在上面的示例中,我创建了一个名为 app_open_time 的自定义事件,并将键值设为 open_time

以这种方式尝试,有关更多信息,请参阅:https://firebase.google.com/docs/analytics/android/events

【讨论】:

是的,但是您是否在 Firebase 控制台中获得了“开放时间”属性?在我的示例中,我“有 feature_selected_event”并计数表示该事件发生了多少次,显示在控制台中,但我看不到“类别”、“动作”和“标签”的值是什么。我正在寻找答案,发现我应该添加 setUserProperty() 方法并在控制台中注册这些属性.. 但我不确定如何使用该方法... 不,实际上它也没有显示在我的应用程序控制台中。可能是因为它的自定义事件。 @joe 看看我的回答 你确定吗?这也是我在某处读到的内容,但是使用 setUserProperty() 方法并在 firebase 控制台中注册用户属性有什么意义呢? 将“app_open_time”显示为firebase控制台页面上的事件名称,就像其他预定义的事件名称,如“app_remove”等。如果我想在控制台页面?【参考方案2】:

不会显示自定义参数。仪表板中仅显示带有建议参数的建议事件。

要查看自定义参数,您必须将您的项目链接到 Big Query(它不是免费的)。

如果用户数量少于 10,Firebase 也不会显示信息。

【讨论】:

即使我有超过 10 个用户,Firebase 也没有显示自定义参数的值,但是当我有更多的事件调用时它会出现。【参考方案3】:

如果你还在寻找答案, 您需要在仪表板中手动将自定义参数添加到事件中 喜欢这个https://support.google.com/firebase/answer/7397304?hl=en&ref_topic=6317489 实际上没有必要为此链接 BigQuery。但是,一旦您在事件中导航,将需要几个小时才能显示自定义参数。

【讨论】:

【参考方案4】:

您不仅需要按照 Muhammad Riyaz 所说的去做,还需要让您的用户数超过“阈值”。就我而言,在十几个模拟器版本上安装我的应用程序后,我的用户数增加到了 12 个,瞧,我的 Firebase 仪表板中突然有了自定义事件参数数据。

【讨论】:

【参考方案5】:

您可以在控制台中看到它而无需任何黑客攻击,但它在那里非常隐藏。

转到 Firebase 分析 -> 流视图 -> 选择事件 -> 热门事件 -> select_content -> 你去

我的代码:

Bundle params = new Bundle();
params.putString("invalid_url", urlPart);
mFirebaseAnalytics.logEvent("eventInvalidUrl", params);

【讨论】:

这只是最近 30 分钟的数据,所以没有其他方法可以捕获或可视化具有特定捆绑详细信息的事件数据吗?这项服务似乎完全没用。 使用 analytics.google 查看从 firebase 记录的事件。【参考方案6】:

类似于@Josef Vancura 的回答,但在 Kotlin 中:

val params = Bundle()
params.putString("invalid_url", urlPart)
mFirebaseAnalytics.logEvent("eventInvalidUrl", params)

【讨论】:

以上是关于如何为分析添加 Firebase 自定义事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何为自定义 UIControl 添加触摸事件并在 swift 5 中确定触摸的项目

如何为 UITableViewCell 显示自定义 UIMenuItem?

如何为自定义控件创建事件

Firebase 分析查找自定义事件参数

NSTableRowView/NSTableCellView 如何为选定的行设置自定义颜色?

为啥 Firebase 分析的自定义事件未显示在仪表板上?