Это мобильная реализация Диспетчера тегов Google (GTM). Пример использования:
Container container = TagManager.getInstance(context).openContainer(myContainerId);
String value = container.getString("myKey");
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
Класс Container предоставляет методы для получения значений по ключу. Подпрограммы getBoolean(String) , getDouble(String) , getLong(String) , getString(String) возвращают текущее значение ключа макроса сбора значений, в зависимости от правил, связанных с контейнером.
Например, если в вашем контейнере есть макрос сбора значений со speed ключа, значение которой равно 32, а правило включения — « Language — «en»; и еще один макрос сбора значений со speed ключа, значение которого равно 45, а включающее правило — « Language не «en», а затем выполняет следующий вызов:
container.getLong("speed")
Уровень данных — это карта, содержащая общую информацию о приложении. Класс DataLayer предоставляет методы для отправки и получения данных с уровня данных. Нажатие ключа event на уровень данных приведет к срабатыванию тегов, соответствующих этому событию.
С приложением поставляется начальная версия контейнера. Его следует разместить как актив с именем tagmanager/ ContainerId , гдеContainerId — это тот же идентификатор контейнера, который вы будете использовать в этом API. Когда вы вызываете openContainer(String, Container.Callback) , контейнер будет возвращен с этими связанными правилами/макросами. Вы создадите контейнер в пользовательском интерфейсе и используете кнопку «Загрузить», чтобы загрузить его.
Вы можете изменить контейнер в пользовательском интерфейсе и опубликовать новую версию. В этом случае, когда мобильное приложение в следующий раз обновит контейнер из сети (в настоящее время каждые 12 часов), оно получит эту новую версию. Когда вы вызываете одну из процедур get..., значение будет вычислено с использованием самых последних правил.
Загруженный контейнер сохраняется локально; когда вы вызываете openContainer(String, Container.Callback) , он сначала загружает контейнер по умолчанию, а затем асинхронно загружает любой сохраненный контейнер. Если ничего не найдено или оно старше 12 часов, он попытается получить более новую версию из сети. Вы можете узнать статус этих асинхронных загрузок, передав Container.Callback в openContainer(String, Container.Callback) .
Иногда вы можете захотеть заблокировать до тех пор, пока не станет доступен контейнер, отличный от стандартного, или пока не станет доступен последний свежий контейнер. ContainerOpener — это служебный класс, который может помочь.
Когда вы закончите работу с контейнером, вызовите close() .
Сводка вложенных классов
| интерфейс | TagManager.Logger | Простой интерфейс для регистрации ошибок/предупреждений/информации/отладки/подробного журнала. | |
| перечисление | TagManager.RefreshMode | Режим обновления контейнера. | |
Краткое описание общедоступного метода
| Контейнер | getContainer ( строка идентификатор контейнера ) |
| Контекст | |
| Уровень данных | |
| статический менеджер тегов | getInstance ( контекст контекста ) |
| Регистратор | getLogger () |
| TagManager.RefreshMode | |
| Контейнер | |
| пустота | setLogger ( регистратор ) |
| пустота | setRefreshMode ( режим TagManager.RefreshMode ) |
Публичные методы
общедоступный контейнер getContainer ( StringContainerId )
Возвращает открытый контейнер, связанный с containerId ; возвращает null , если контейнер еще не открыт.
общедоступный контекст getContext ()
Возвращает сохраненный контекст, связанный с этим объектом.
общедоступный уровень данных getDataLayer ()
Возвращает объект уровня данных, используемый диспетчером тегов.
общедоступный статический TagManager getInstance ( контекст контекста )
Получите одноэлементный экземпляр класса TagManager , создав его при необходимости.
общедоступный TagManager.RefreshMode getRefreshMode ()
Возвращает режим обновления, используемый для всех контейнеров.
общедоступный контейнер openContainer ( StringContainerId , обратный вызов Container.Callback )
Возвращает контейнер. Обратный вызов будет вызываться, когда с контейнером происходят различные события. Как минимум, openContainer попытается загрузить сохраненную версию контейнера. Если сохраненной версии нет или если сохраненная версия устарела, будет предпринята попытка загрузки из сети.
Обычно возвращаемый контейнер будет пустым, но загрузка будет происходить в отдельном потоке, поэтому возвращаемый контейнер может быть обновлен до его возврата, после его возврата или может никогда не обновляться (если, например, нет сетевое соединение в течение срока службы контейнера).
Если вы вызовете openContainer второй раз для данного containerId , будет выдано исключение.
Параметры
| идентификатор контейнера | идентификатор контейнера, который нужно открыть |
| перезвонить | объект, различные методы которого будут вызываться во время процесса загрузки. Обратите внимание, что методы могут вызываться из разных потоков. Кроме того, они могут быть вызваны до возврата openContainer . |
public void setLogger ( регистратор )
Заменяет существующий регистратор, используемый Диспетчером тегов.
public void setRefreshMode ( режим TagManager.RefreshMode )
Устанавливает режим обновления, используемый для всех контейнеров.