如何发送屏幕浏览事件,以帮助Firebase预测更加准确地预测
我有一个Activity
,ViewPager
中有多个Fragment
。如何发送屏幕浏览事件,以帮助Firebase预测更加准确地预测
目前,这是我的方式,送屏幕视图事件既谷歌Analytics(分析)和火力地堡
public static void trackView(Activity activity, String view) { trackFBView(activity, view);
trackGAView(view);
}
private static void trackFBView(Activity activity, String view) {
if (activity == null) {
return;
}
FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics();
if (firebaseAnalytics == null) {
return;
}
firebaseAnalytics.setCurrentScreen(activity, view, null);
}
private static void trackGAView(String view) {
Tracker tracker = Utils.getTracker();
if (tracker == null) {
return;
}
tracker.setScreenName(view);
tracker.send(new HitBuilders.ScreenViewBuilder().build());
}
public static FirebaseAnalytics getFirebaseAnalytics() {
if (false == isGooglePlayServicesAvailable()) {
return null;
}
return FirebaseAnalytics.getInstance(JStockApplication.instance());
}
在我ViewPager
的听众,这是我送的屏幕视图事件。
private ViewPager.OnPageChangeListener getOnPageChangeListener() { return new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (position == 0) {
Utils.trackView(DetailedStockFragmentActivity.this, "InfoFragment");
一些测试后,我意识到我在乔治亚州,但不是在火力地堡就收到屏幕视图事件。
后来,我意识到firebaseAnalytics.setCurrentScreen
实际上并没有向Firebase发送屏幕视图事件。 firebaseAnalytics.setCurrentScreen
只是准备一个隐式参数。它只会在下一次活动期间发送到Firebase。
目前,在我的片段中,我没有明确地触发任何事件。
我在想,为了帮助Firebase做出更好的预测(帮助Firebase识别用户在查看哪个屏幕),我想知道,我应该如下发送“Screen View”事件吗?
private static void trackFBView(Activity activity, String view) { if (activity == null) {
return;
}
FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics();
if (firebaseAnalytics == null) {
return;
}
firebaseAnalytics.setCurrentScreen(activity, view, null);
// Question: Should I do this to help Firebase makes better prediction?
firebaseAnalytics.logEvent(view + "_ScreenView", null);
}
回答:
我想这里有一些误解。
首先,你已经注意到,setCurrentScreen
创建参数,它会自动连接到未来事件。事件是发送到Firebase的唯一东西,并附带了参数 - 参数只能与事件相关。 “屏幕参数”比常规参数更特别一些,因为它们出现在崩溃报告日志中,您可以更轻松地使用它们创建受众群体。这answer总结了我刚刚说的很好。
第二个误解是关于Firebase预测的工作原理。预测截至今日只有对事件进行操作。也就是说,如果您创建自定义预测,那么它不会使用任何参数,并且只能预测用户是否执行操作(事件)。
对于您的情况,我需要更多地了解您要做的事情。如果您正在寻找用户参与度,那么这已经与“流失率”预测一致。 (不,记录分析事件不会影响预测,因为它基于全局“是用户使用这个应用程序”的想法。)现在,另一方面,如果你想知道是否一个用户正在使用您的应用程序的一部分,那么您将创建一个自定义事件,如select_stock
,并使用预测来猜测用户是否要查看股票。我喜欢将预测或A/B测试视为用于衡量参与度或正在执行的特定操作的增加。
作为一般的经验法则,您应该用用户动作来胡说您的应用程序,而不是被动观看。例如,当用户选择股票,收藏,分享,搜索等时,您可以执行操作。然后,在预测或A/B测试中,您可以看到您所做的更改是如何影响用户总体参与度的特定部分的 - “用户做了或多或少的X?”
TL; DR:不,日志记录事件不会影响流失预测,因为它们是普通的,“这个应用预计会在未来7天内使用吗?”但是,您可能试图找出用户是要执行某个操作的更多还是更少的操作,然后记录要在预测或A/B测试中使用的事件。
有关predefined predictions的信息,using the predictions feature的概述以及与full length example of how predictions can be used的对话。
编辑,回答评论:
我想最后说,我不是一个火力地堡的工程师,我怀疑Google员工将与大家分享他们的商业秘密前言本,所以我猜多数这里。我将使用一个结帐示例,因为这是我能想到的最简单的一个。好吧,为了尝试理解预测,我们首先需要了解一点机器学习。如果您考虑ML模型,那么ML模型有点笨拙:它们只是试图将一组输入映射到某些输出数(概率)。由于“预测”不接受事件参数,因此我猜测Google会在给定的用户会话期间发生分析事件序列。 AFAIK,输入提供给ML模型的顺序并不重要,所以事件发生的顺序将不会被考虑(Google可能已经想通了,dunno)。
根据我们对ML模型的假设,我们可以回到我们的结账示例。基本上,我认为你实际上只会跟踪用户访问的屏幕,或者至少记录无意义的事件。假设用户通过“购物车”,“输入您的地址”和“结帐”屏幕。在这种情况下,模型将会训练自己,看看这些事件与购买高度相关。
你可能会想:“那太好了!”没有那么快,那种预测毫无用处,因为它实际上并不预测任何事情。它只是说,“哦,看,一个使用它到结帐屏幕的用户通常会购买东西。”我认为在这种情况下,日志记录屏幕事件实际上会让你的预测更糟:假设用户访问结帐屏幕,但因为他们害怕给你他们的信用卡或其他东西而离开。模型会想,“他们访问了这个屏幕,所以他们完全会买东西,”但那是错误的。
另一方面,我认为记录用户动作正如我之前提到的会更有用。例如,可以使用事件的数量来训练能够实际预测东西的更精确的预测。用户添加到购物车的项目越多,他们可能会购买的东西就越多。
同样,我对你的应用程序了解不多,但记录点击事件以查看详细文章窗格,喜欢这篇文章,或者分享它对我来说似乎可以提供更多见解,而不仅仅是查看文章窗格。不过,我认为这取决于你有什么样的用户行为。如果大多数购买了东西的用户也在文章屏幕上花费了大量时间,那么是的,我不明白记录事件会有什么影响。
我试图得到的一般观点是,我认为预测可以更好地衡量用户参与的事件。因此,被动观看可能会奏效,但如果某些用户喜欢只是保持该屏幕打开状态,或者文章视图甚至是默认选项卡,该怎么办?然后它不会真正给模型提供任何新的信息,因为几乎所有的用户都会浏览该屏幕。我的经验法则是,“如果用户点击它,请记录它。”然后,您一定会为ML模型获得大量的分析事件来查找模式,例如点击查看文章的用户更有可能购买内容。
PS:逆向工程这种模型很难,我的假设可能完全错误。
以上是 如何发送屏幕浏览事件,以帮助Firebase预测更加准确地预测 的全部内容, 来源链接: utcz.com/qa/265677.html