Сконфигурируйте Firebase Analaytics + Google Tag Manager (GTM) для каждого варианта сборки

До того, как Firebase Analytics стала доступной, мы использовали настройку проекта Android Gradle с несколькими вариантами сборки и предоставили разные идентификаторы контейнера GTM для каждого варианта сборки следующим образом:

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

где Gradle будет вводить разные GTM_CONTAINER_ID за вариант сборки.

Как нам достичь того же с Firebase Analytics + GTM? Согласно документации, нам нужно скачать:

  • файл контейнера GTM с панели управления GTM [1]
  • файл google-services.json из консоли Firebase [2]

а затем просто запустите события с этим:

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

Где мы указываем идентификатор контейнера GTM, который будет использоваться? Или это автоматически определяется по имени файла, который мы загружаем с панели управления GTM и помещаем под assets/containers? Если да, то как мы можем использовать разные конфигурации GTM для каждого варианта сборки, как мы делаем с устаревшим контейнером Android GTM?

2 ответа

Вот как мы настроили наш проект с несколькими вкусами 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 вкуса flavor1 а также flavor2и хотят иметь 3 контейнера GTM, 1 для общего использования для отладочной сборки обоих вариантов, и по 1 для каждой сборки выпуска каждого варианта.

GTM подключится к информационной панели FA проекта, указанного вашим google-services.json, Мульти ароматный мульти-тип сборки google-services.json поддержка доступна с версии 2.1.0 плагина [1]

Как вы и предполагали, идентификатор контейнера получается из имени файла контейнера. Чтобы использовать вариант для каждой сборки, вы можете использовать задачу копирования копии для создания правильного контейнера.

Другие вопросы по тегам