Настройте Firebase Analytics + Диспетчер тегов Google (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? Согласно документам, нам необходимо скачать:

а затем просто начните запускать события следующим образом:

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

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


person hidro    schedule 14.06.2016    source источник
comment
@ DevZer0 Почему это спам для голосования?   -  person Anirudh Sharma    schedule 14.06.2016
comment
@AnirudhSharma это шутка между ним и мной, мы работаем в одной компании :) я просто жду, когда он пропингует меня в слаке :)   -  person DevZer0    schedule 14.06.2016
comment
@DevZer0 Ха-ха. Хорошо :)   -  person Anirudh Sharma    schedule 14.06.2016


Ответы (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]

person hidro    schedule 16.06.2016

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

person Eric Burley    schedule 14.06.2016
comment
Спасибо за подтверждение. Я думаю, что я выберу слияние ресурсов для переопределения ресурсов: tools .android.com/tech-docs/new-build-system/resource-merging - person hidro; 15.06.2016