android - 为每个构建变体配置 Firebase Analytics + Google Tag Manager (GTM)

标签 android firebase google-tag-manager firebase-analytics

在 Firebase Analytics 可用之前,我们使用多风格、多构建类型的 Android Gradle 项目设置,并为每个构建变体提供不同的 GTM 容器 ID,如下所示:

TagManager.getInstance(context)
        .loadContainerPreferNonDefault(BuildConfig.GTM_CONTAINER_ID, -1);
TagManager.getInstance(context).getDataLayer().pushEvent(eventName, eventData);

Gradle 将为每个构建变体注入(inject)不同的 GTM_CONTAINER_ID

我们如何通过 Firebase Analytics + GTM 实现同样的目标?根据docs ,我们需要下载:

  • 来自 GTM 仪表板的 GTM 容器文件 [1]
  • 来自 Firebase 控制台的 google-services.json 文件 [2]

然后用这个开始触发事件:

FirebaseAnalytics.getInstance(context).logEvent(eventName, bundle);

我们在哪里指定要使用的 GTM 容器 ID?或者它是由我们从 GTM 仪表板下载并放在 assets/containers 下的文件名自动派生的?如果是这样,我们如何为每个构建变体使用不同的 GTM 配置,就像我们使用 GTM 遗留 Android 容器一样?

最佳答案

这就是我们如何设置 Gradle 多风格项目以对每个构建变体使用不同的 GTM 容器:

/
|_app/
  |_src/
    |_flavor1/
    | |_google-services.json # Google services config for debug
    | |_release/
    |   |_google-services.json # Google services config for flavor1
    |_flavor1Release/
    | |_assets/
    |   |_containers/
    |     |_GTM-ABCXY1.json # GTM container for flavor1
    |
    |_flavor2/
    | |_google-services.json # Google services config for debug
    | |_release/
    |   |_google-services.json # Google services config for flavor2
    |_flavor2Release/
    | |_assets/
    |   |_containers/
    |     |_GTM-ABCXY2.json # GTM container for flavor2
    |
    |_debug/
    | |_assets/
    |   |_containers/
    |     |_GTM-ABCXY3.json # GTM container for debug
    |
    |_main/
      |_res/
      |_java/

假设您有 2 种风格 flavor1flavor2,并且想要 3 个 GTM 容器,1 个共享用于两种风格的调试构建,1 个用于发布构建每种口味。

GTM 将连接到您的 google-services.json 指定项目的 FA 仪表板。自插件版本 2.1.0 [1] 起,支持多口味多构建类型 google-services.json

关于android - 为每个构建变体配置 Firebase Analytics + Google Tag Manager (GTM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37807970/

相关文章:

android - 使用 Smack API 的基于 XMPP 的消息传递应用程序的正确架构

android - 如何在获得加速度计测量值的同时获得方位角!ORIENTATION vs ACCELEROMETER

Android - 获取图库图像 Samsung S4/S5

javascript - Firebase Firestore 获取用户相关数据

java - Firebase 查询 HashMap 到类

android - 从必需变量到可空变量的 Realm 迁移

ios - Swift 3 Firebase - 从 ID 数组中返回所有具有 ID 的用户

google-analytics - 在新网站上设置 dtm 和分析

javascript - 有条件地触发 Google 跟踪代码管理器

google-analytics - 如果您在google tagmanager片段中填充了数据层,该怎么办?