Справочник классов TAGManager


Обзор

Класс, который является мобильной реализацией Диспетчера тегов Google (GTM).

Пример использования:

      TAGContainer *container =
          [[TAGManager instance] openContainerById:myContainerId];
      NSString *value = [container stringForKey:@"myKey"];
      TAGDataLayer *dataLayer =
          [[TAGManager instance] dataLayer];
      [dataLayer push:@{@"event": @"openScreen",
                        @"screenName": @"Main Page"}];

Контейнер — это набор макросов, правил и тегов. Он создается в приложении GTM ( http://www.google.com/tagmanager ) и ему присваивается идентификатор контейнера. Этот идентификатор контейнера используется в этом API.

Класс TAGContainer предоставляет методы для получения значений макроса по имени макроса. Подпрограммы booleanForKey: (TAGContainer) , doubleForKey: (TAGContainer) , int64ForKey: (TAGContainer) , stringForKey: (TAGContainer) возвращают текущее значение имени макроса коллекции значений в зависимости от правил, связанных с этим макросом в контейнере.

Например, если в вашем контейнере есть макрос сбора значений с ключом «скорость», значение которого равно 32, а правило включения — «Язык — «en»; и еще один макрос сбора значений с ключом «скорость», значение которого равно 45, и разрешающим правилом является «Язык не «en», затем выполняется следующий вызов:

     [container longForKey:@"speed"]
 

вернет либо 32, если текущий язык устройства английский, либо 45 в противном случае.

Уровень данных — это карта, содержащая общую информацию о приложении. Класс TAGDataLayer предоставляет методы для отправки и получения данных с уровня данных. Нажатие ключа event на уровень данных приведет к срабатыванию тегов, соответствующих этому событию.

С приложением поставляется начальная версия контейнера. Его следует поместить в пакет как ресурс с containerId , containerId — это тот же идентификатор контейнера, который вы будете использовать в этом API. Когда вы вызываете openContainerById:callback: (TAGManager) , контейнер будет возвращен с этими связанными правилами/тегами/макросами. Вы создадите контейнер в пользовательском интерфейсе и используете кнопку «Загрузить», чтобы загрузить его.

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

Загруженный контейнер сохраняется локально. Когда вы вызываете openContainerById:callback: (TAGManager) , он сначала загружает контейнер по умолчанию, а затем асинхронно загружает любой сохраненный контейнер. Если ничего не найдено или оно старше 12 часов, он попытается получить более новую версию из сети. Вы можете узнать статус этих асинхронных загрузок, передав TAGContainerCallback в openContainerById:callback: (TAGManager) .

Иногда вы можете захотеть заблокировать до тех пор, пока не станет доступен контейнер, отличный от стандартного, или пока не станет доступен последний свежий контейнер. Вы можете сделать это, используя обратные вызовы в openContainerById:callback: (TAGManager) или TAGContainerOpener .

Когда вы закончите работу с контейнером, вызовите close (TAGContainer) .

Открытые функции-члены

( ТАГКонтейнер *) - openContainerById: обратный вызов:
Возвращает контейнер.
( ТАГКонтейнер *) - getContainerById:
Возвращает контейнер, связанный с данным containerId ; возвращает nil если контейнер еще не открыт.
(БУЛ) - предварительный просмотр с URL:
Предварительный просмотр приложения с входным URL-адресом.
(пустота) - отправлять
Отправляет любой ожидающий сетевой трафик, генерируемый тегами (произвольные пиксели, аналитические маяки и т. д.).
(пустота) - отправкаWithCompletionHandler:
Отправляет следующий ожидающий сетевой трафик в очереди, вызывая завершениеHandler, когда запрос был отправлен (возвращается kTAGDispatchGood) или возникла ошибка (возвращается kTAGDispatchError).

Статические открытые функции-члены

( Менеджер тегов *) + экземпляр
Получает одноэлементный экземпляр класса TAGManager , создавая его при необходимости.

Характеристики

идентификатор < TAGLogger > лесоруб
Регистратор, используемый для Google Tag Manager SDK.
TAGRfreshMode режим обновления
Режим обновления, используемый для Google Tag Manager SDK.
TAGDataLayer * слой данных
Вызовите метод push: (TAGDataLayer) для отправки событий и других данных.
НСтимеинтервал диспетчерский интервал
Если это значение положительное, информация отслеживания будет автоматически отправляться каждые секунды диспетчеризации.

Документация по функциям-членам

- ( TAGContainer *) openContainerById: (НСтрока *) идентификатор контейнера
перезвонить: (id <TAGContainerCallback> ) перезвонить

Возвращает контейнер.

Обычно возвращаемый контейнер будет пустым, но загрузка будет происходить асинхронно, поэтому возвращенный контейнер может быть обновлен до его возврата, после его возврата или может никогда не обновляться, если, например, в течение срока службы нет сетевого подключения. контейнера.

Обратный вызов будет вызываться, когда с контейнером происходят различные события. Как минимум, openContainerById:callback: попытается загрузить сохраненную версию контейнера. Если сохраненной версии нет или если сохраненная версия устарела, будет предпринята попытка загрузки из сети.

Если openContainerById:callback: вызывается второй раз для containerId , будет возвращено значение nil , если предыдущий открытый контейнер еще не был закрыт.

Параметры:
идентификатор контейнера Идентификатор открываемого контейнера.
перезвонить Объект, различные методы которого будут вызываться в процессе загрузки. Обратите внимание, что методы могут вызываться из разных потоков. Кроме того, они могут быть вызваны до возврата openContainerById:callback:.
Возврат:
Открытый контейнер.
- ( TAGContainer *) getContainerById: (НСтрока *) идентификатор контейнера

Возвращает контейнер, связанный с данным containerId ; возвращает nil если контейнер еще не открыт.

Предварительный просмотр приложения с входным URL-адресом.

Действительный URL-адрес должен начинаться со следующего:

 tagmanager.c.<app_name>://preview/p?id=

где <app_name> — имя приложения.

Параметры:
URL URL-адрес предварительного просмотра.
Возврат:
ДА, если URL-адрес является действительным URL-адресом предварительного просмотра Менеджера тегов.

Получает одноэлементный экземпляр класса TAGManager , создавая его при необходимости.

Возврат:
Одноэлементный экземпляр TAGManager .
- (недействительная) отправка

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

- (недействительно) диспетчеризацияWithCompletionHandler: (TAGDispatchResult) Обработчик завершения

Отправляет следующий ожидающий сетевой трафик в очереди, вызывая завершениеHandler, когда запрос был отправлен (возвращается kTAGDispatchGood) или возникла ошибка (возвращается kTAGDispatchError).

Если нет сетевого подключения или нет данных для отправки, возвращается kTAGDispatchNoData.

Вызов этого метода с нулевым обработчиком завершения аналогичен вызову диспетчеризации.

Этот метод можно использовать для фоновой выборки данных в iOS 7.0 или более поздних версиях.

Было бы разумно вызвать это при выходе приложения, чтобы инициировать отправку любой неотправленной информации отслеживания.


Документация на недвижимость

- (id< TAGLogger >) регистратор [read, write, assign]

Регистратор, используемый для Google Tag Manager SDK.

По умолчанию Диспетчер тегов Google регистрирует сообщения об ошибках/предупреждениях и игнорирует информационные/отладочные/подробные сообщения. Вы можете использовать свой собственный регистратор, установив это свойство.

- ( TAGRfreshMode ) refreshMode [read, write, assign]

Режим обновления, используемый для Google Tag Manager SDK.

Установка для этого параметра значения kTAGRefreshModeDefaultContainer позволяет методу обновления использовать только контейнер по умолчанию для целей разработки. По умолчанию — kTAGRefreshModeStandard .

- ( TAGDataLayer *) dataLayer [read, assign]

Вызовите метод push: (TAGDataLayer) для отправки событий и других данных.

- (NSTimeInterval) sendInterval [read, write, assign]

Если это значение положительное, информация отслеживания будет автоматически отправляться каждые секунды диспетчеризации.

В противном случае информацию об отслеживании необходимо отправить вручную, вызвав диспетчерскую.

По умолчанию установлено значение «120», что означает, что информация отслеживания будет отправляться автоматически каждые 120 секунд.