Диспетчер тегов: как загрузить двоичный контейнер по умолчанию?

Я пытаюсь настроить Диспетчер тегов Google в соответствии с руководством по началу работы .

При добавлении контейнера по умолчанию документы дают понять, что рекомендуется использовать двоичный файл контейнера по умолчанию (в отличие от JSON).

Хотя рекомендуется использовать двоичный файл, если ваш контейнер не содержит правил или тегов, вы можете вместо этого использовать простой файл JSON.

Я загрузил и добавил двоичный контейнер по умолчанию под res/raw . Но инициализация диспетчера тегов с loadContainerPreferNonDefault() похоже, терпит неудачу.

 PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.gtm_default_container); 

Я получаю эту ошибку в журналах:

  W/GoogleTagManager﹕ Failed to extract the container from the resource file. Resource is a UTF-8 encoded string but doesn't contain a JSON container 

TagManager javadocs (пример на самом верху) подсказывает, что вы можете передать логический параметр, чтобы указать, является ли ресурс JSON или двоичным:

 PendingResult pending = tagManager.loadContainerPreferNonDefault( myContainerId, // container ID of the form "GTM-XXXX" R.raw.GTM-XXXX, // the resource ID of the default container true); // the default container is in JSON format (as opposed to binary) 

Дело в том, что такого параметра нет в loadContainerPreferNonDefault() ! Вы можете опционально передать обработчик, но не логический. Опасаясь, javadoc TagManager сам конфликтует здесь.

Так или иначе, возможно ли сделать то, что рекомендует руководство по началу работы, и использовать двоичный контейнер по умолчанию?

Использование 'com.google.android.gms:play-services-analytics:7.0.0'

Solutions Collecting From Web of "Диспетчер тегов: как загрузить двоичный контейнер по умолчанию?"

Извините за столь поздний ответ. Если бы какая-то борьба с менеджером тегов и удалось решить мою проблему. Надеюсь это поможет:

Да, можно использовать двоичный контейнер по умолчанию. Документация противоречит предыдущей версии Диспетчера тегов. Я считаю, что это противоречит v3. (Текущая версия для написания ответа – v4).

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

Вы должны использовать TagManager.loadContainerDefaultOnly() этот метод предназначен специально для целей тестирования, чтобы вы могли проверить, отправляет ли контейнер хиты даже без публикации контейнера.

С другой стороны, TagManager.loadContainerPreferNonDefault() будет загружать бинарный контейнер, а затем проверять сеть на версию, опубликованную в настоящее время. Если он найдет версию, которая будет опубликована, она будет использовать эту версию независимо от того, какой у вас есть бинарный контейнер. Пример:

Вы добавляете бинарный контейнер версии15. Однако вы опубликовали версию14. Этот метод по умолчанию будет равен 14, поскольку эта версия будет опубликована.

Если вы хотите протестировать версию 15, вам нужно будет использовать TagManager.loadContainerDefaultOnly() .