88

背景

最近几个月,谷歌发布了一种新的分析替代方案,称为“ Firebase Analytics ”。

问题

由于该应用程序已经具有 Google-Analytics,因此我发现了一些我不知道如何最好地处理的障碍。

问题

  1. 以前,“newTracker”函数需要一个属性 ID。现在我看不到了。这是否意味着它不需要一个?

  2. 以前,“enableAdvertisingIdCollection”也可用于收集广告信息。我在新的 API 中找不到它。是自动收集的吗?

  3. “setDryRun”可用于禁用将数据发送到服务器,现在我看不到它。这是否意味着应用程序的调试版本会自动采用这种方式?所有函数都写入日志吗?

  4. 以前,我可以跟踪“屏幕”:

    public void setScreenName(String name) {
        mGoogleAnalyticsTracker.setScreenName(name);
        mGoogleAnalyticsTracker.send(new HitBuilders.ScreenViewBuilder().build());
    }
    

    现在我没有看到它,但正如我所读到的,我认为它是自动的,所以它无论如何都会发送活动生命周期的数据。这是真的吗?

  5. 可能是最重要的事情:以前我可以使用类别、操作、标签和值进行跟踪:

    public void trackEvent(final String category, final String action, final String label, final long value) {
        mGoogleAnalyticsTracker.send(new HitBuilders.EventBuilder()
                .setCategory(category).setAction(action)
                .setLabel(label).setValue(value).build());
    }
    

    现在我看到了一种完全不同的方式来跟踪事件(“自定义事件”),使用bundles。例子:

    Bundle bundle = new Bundle();
    bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
    bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
    

    它是如何工作的?它在Firebase Analytics的网站上是如何显示的?我想我可以让 logEvent 的第一个参数表现得像 Google-Analytics 的类别参数,但是我可以/应该为其余的做什么?根据文档,这应该没问题:

    public void trackEvent(final String category, final String action, final String label, final long value) {
        Bundle bundle = new Bundle();
        bundle.putString("action", action);
        bundle.putString("label", label);
        bundle.putLong("value", value);
        mFirebaseAnalytics.logEvent(category, bundle);
    }
    
  6. 哪些事件实际上是被自动跟踪的(我问这个是因为有人说我不应该使用,这里)?它们包括购买吗?应用程序邀请?广告?我在控制台网站的哪里可以看到它们?

  7. 关于日志,它说新的 SDK 是通过以下方式完成的:

    您可以使用一系列 adb 命令启用详细日志记录:

    adb shell setprop log.tag.FA VERBOSE adb shell setprop log.tag.FA-SVC VERBOSE adb logcat -v time -s FA FA-SVC

    这些命令有什么作用?我怎样才能禁用它?我注意到它甚至显示在应用程序的发布版本中......

  8. 新的 SDK 是否应该取代 Google-Analytics?是否建议完全迁移到它?Google-Analytics 会有更新吗?

4

2 回答 2

59

许多问题捆绑在一起,因此我将尝试简要回答其中的大部分问题:

  1. Google Analytics 报告跟踪器 ID,Firebase Analytics 报告应用程序。在您的 google-services.json 中定义的应用程序中只有一个 id。该 ID 由“google_app_id”名称下的 google 服务插件转换为字符串资源。来自应用程序的所有事件都报告给这个单一的 id。
  2. Firebase Analytics 会自动报告 AdId。您无需启用它。
  3. 没有dryRun 功能。您可以在开发期间使用单独的 google-services.json,使用应用程序版本过滤掉开发版本或添加用户属性以标记用于开发的应用程序实例。
  4. 您可以使用报告屏幕

    Bundle params = new Bundle();
    params.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "screen");
    params.putString(FirebaseAnalytics.Param.ITEM_NAME, "screen name");
    firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, params);
    
  5. 您可以使用相同的参数记录自定义事件

    Bundle params = new Bundle();
    params.putString("category", category);
    params.putString("action", action);
    params.putString("label", label);
    params.putLong("value", value);
    firebaseAnalytics.logEvent("xyz_event", params);
    

    “ga_”前缀是保留的,如果您使用它,您的分析将失败。相反,请使用“xyz_”,例如,其中 xyz 是您公司的首字母缩写。

    除非您要跟踪的类别很少,否则不要使用类别作为事件名称。Firebase Analytics 最多支持 500 个事件名称。记录更多内容将导致您的某些数据被忽略。

  6. FirebaseAnalytics.Event 类的开头有一个保留的事件名称列表。它大致代表报告的自动事件。

  7. Firebase Analytics 默认禁用调试日志记录。它只记录错误和警告。如果您未启用调试日志记录并且您的应用程序已正确配置,则当应用程序启动时仅记录 2 行,其中包含有关如何启用调试日志记录的说明。在生产中没有什么可以禁用的,也没有与 Google Analytics 中的 setLogLevel(ERROR) 等效的功能。WARN 是默认的日志记录级别。您只能通过在设备上运行 adb 命令来启用单个设备的日志记录)。这可以帮助您避免在启用调试日志记录的情况下在生产中发布应用程序。

  8. 适用于 Android 和 iOS 的 Google Analytics SDK 并未被弃用,并且在可预见的将来会得到支持和更新。如果您已经在您的应用程序中使用它并且它满足您的需求,那么您不需要离开它。

于 2016-06-20T22:48:29.737 回答
13

Google Analytics是 Google 提供的一项免费增值网络分析服务,用于跟踪和报告网站流量。1 Google 在收购 Urchin 后于 2005 年 11 月推出了该服务。 Firebase是一家位于加利福尼亚州旧金山的云服务提供商和后端即服务公司。该公司为构建移动或 Web 应用程序的软件开发人员生产了许多产品。

如何从谷歌分析转移到 Firebase 分析?

Google Analytics (GA) 和 Firebase Analytics (FA) 尽管名称相同,但在许多方面却大相径庭。虽然 GA 是一种通用(并且更面向 Web)的分析工具,但 Firebase 的构建考虑了移动性:因此,两者之间的功能集不同,FA 中添加了一些东西,GA 中缺少了一些东西.

更具体地说,在考虑 Firebase Analytics 时,这些是值得注意的几点:

  • 缺少实时视图
  • 活动在 4-6 小时后可用
  • 缺少行为流(来自 GA)
  • 受众具有 FA 的一大优势,并且与通知相结合,允许您与特定的用户组互动
  • 使用 Firebase 崩溃报告时,系统会自动创建一个包含经历过崩溃的用户的受众群体
  • 漏斗分析比 GA 更有意义,因为 FA 基于事件而不是屏幕视图
  • 免费且无限制,活动类型数量除外(限500个);每种类型的事件数量没有限制
  • 一些事件会自动记录(即基于活动生命周期的会话)
  • 与 GA 的方法数相比,方法占用量相对较低
  • 非常容易设置,没有要初始化的单例,只需包含 Gradle 依赖项并开始记录事件
  • 多合一控制台,如果您打算使用其他 Firebase 服务

至于是否应该考虑从一个切换到另一个,或者是否要保持两者并行,答案是:这取决于。

  • 如果您之前广泛使用 GA,那么当您完全切换到 FA 时,您可能会错过它的某些功能。
  • 但是,如果这是您项目的新起点,FA 更倾向于跨平台的面向移动设备的环境,因此您可以将其视为您自己的分析工具。

附带说明一下,请记住 Firebase 刚刚推出,Google 计划在未来几周内添加更多功能(例如,实时仪表板)。

对于教程,你可以在这里找到https://firebase.google.com/docs/analytics/android/start/

于 2016-07-03T07:46:30.317 回答