为每个构建版本

时间:2016-06-14 09:24:49

标签: 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会为每个构建变体注入不同的GTM_CONTAINER_ID

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

  • GTM信息中心docs
  • 中的GTM容器文件
  • 来自Firebase控制台的{google-services.json文件[1]

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

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

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

2 个答案:

答案 0 :(得分:4)

这就是我们如何设置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/

假设您有两种风格flavor1flavor2,并且希望拥有3个GTM容器,1个共享用于两种风格的调试版本,每个版本用于每种风格的发布版本。

GTM将连接到google-services.json指定的项目的FA仪表板。自插件版本2.1.0 [1]

以来,已提供多种类型的多构建类型google-services.json支持

答案 1 :(得分:3)

正如您所推测的那样,容器ID是从容器文件名派生的。要使用每个构建变体,您可以使用gradle copy任务来分级正确的容器。