12

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

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

Gradle 会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 容器一样?

4

2 回答 2

7

这就是我们如何设置我们的 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 将连接到您指定的项目的 FA 仪表板google-services.jsongoogle-services.json自插件版本 2.1.0 [1]起提供多风格多构建类型支持

于 2016-06-16T09:00:01.790 回答
3

如您所料,容器 ID 是从容器文件名派生的。要使用每个构建变体,您可以使用 gradle 复制任务来暂存正确的容器。

于 2016-06-14T13:44:31.763 回答