В блоге Simo Ahava – эксперта по Google Tag Manager и Google Analytics – появился свежий материал о Группах триггеров в диспетчере тегов Google. Мы перевели эту статью, чтобы помочь вам разобраться с настройками и основными нюансами, которые нужно учитывать при работе с Группой триггеров.
Группа триггеров является новейшим типом триггера, который вы можете добавить к тегу в Google Tag Manager. Он позволяет устанавливать зависимости между несколькими триггерами, не запуская тег до тех пор, пока каждый триггер в группе не сработает хотя бы один раз.
До сих пор нельзя было создавать триггеры, которые основывались на значениях предыдущего события. Группа триггеров предполагает хранение информации о триггерах, которые сработали на странице внутри GTM. После того, как настроенные в группе триггеры сигнализируют о завершении, она запускает любой тег, с которым связана.
Оглавление
Как настроить Группу триггеров
Пример 1: глубина прокрутки и затраченное время
Пример 2: дождитесь срабатывания триггера «Все страницы»
Пример 4: взаимодействие с формой
Моменты, которые необходимо учитывать
- Группы триггеров не могут использоваться как исключения
- Группы триггеров срабатывают только один раз на страницу
- Группы триггеров не заменяют сгруппированные триггеры
- Информация о Группе триггеров в объекте dataLayer довольно скудна
Как настроить Группу триггеров
В пользовательском интерфейсе Google Tag Manager выберите «Триггеры», затем «НОВЫЙ» и нажмите «Выбрать тип триггера, чтобы начать настройку».
Создание нового триггера
В открывшемся окне выберите «Группа триггеров».
Группы триггеров имеют довольно простую логику.
- Нажмите на кнопку выбора триггера (или синего плюса) в середине экрана настроек.
- Выберите один или несколько существующих триггеров из открывшегося окна.
Вы можете добавить триггер в группу больше одного раза. Чтобы группа триггеров сработала, триггер должен срабатывать столько раз, сколько он был добавлен в группу.
Порядок триггеров в группе не имеет значения: группа триггеров в любом случае сработает сразу после срабатывания всех включенных триггеров.
Добавив триггеры, вы можете указать дополнительные условия срабатывания. Для этого выберите пункт «Некоторые условия» из предложенного меню «Условия активации триггера». Указанное вами условие будет добавлено в дополнение к условиям срабатывания группы триггеров.
На следующем этапе можно добавить группу триггеров к своим тегам. Она работает так же, как обычный триггер. Схожесть заключается в том, что тег сработает, как только условия будут выполнены, и сработают все триггеры в группе.
Пример 1: глубина прокрутки и затраченное время
Исходя из информации, предложенной в моей недавней статье, вы можете создать группу триггеров с триггерами «Глубина прокрутки» и «Таймер».
Группа триггеров не сработает до тех пор, пока не сработают триггер «Глубина прокрутки» и триггер «Таймер». Вы можете отложить запуск тега до момента, пока пользователь не выполнит прокрутку страницы в достаточной степени и не потратит определенное время, находясь на странице.
В данном примере у меня есть триггер «Глубина прокрутки», который срабатывает при прокрутке на 50%, и триггер «Таймер», который срабатывает при 30 секундах ожидания на странице.
Группа триггеров объединяет триггеры «Таймер» и «Глубина прокрутки».
Пример 2: дождитесь срабатывания триггера «Все страницы»
Такой метод может применяться в случае, если вы хотите установить порядок запуска между двумя триггерами и между тегами, которые их запускают. Классический пример — ожидание запуска тега «Просмотр страницы» в Google Analytics перед любым тегом «Событие».
Мифом является тот факт, что сбор событий перед просмотром страниц наносит ущерб аналитике. GA способен объединить сеанс, в котором событие входа не означало просмотр страницы.
В этой группе триггеров есть триггер, с которым мы хотим запустить тег, и триггер «Все страницы». Идея заключается в том, что сам триггер событий ничего не будет делать, пока не сработает триггер «Все страницы».
Помните, что у вас нет возможности установить порядок в группе триггеров. Она сработает вместе с перечисленными триггерами, независимо от их порядка. Основное предположение заключается в том, что триггер «Пользовательское событие – nonIdle» никогда не сработает раньше триггера «Все страницы».
Возможно, разумнее использовать функцию последовательности тегов в случаях, когда вам нужно установить последовательность запуска элементов. Но если у вас много тегов с наличием очень похожей зависимости, проще использовать группу триггеров.
Пример 3: полученное согласие
Группы триггеров используют и для того, чтобы убедиться в следующем: другие триггеры не срабатывают, пока пользователь не даст свое согласие или не включит вашу аналитику и отслеживание рекламы.
Несмотря на отсутствие тех свойств, которыми обладает последовательность тегов, или передачи событием статуса согласия в dataLayer
(или его записи в файл cookie), запускать теги можно только после того, как конкретное событие «предоставления согласия» было помещено в dataLayer
.
Я хочу убедиться, что пользователь дал согласие на отслеживание на моем веб-сайте. Группа триггеров для тега, который я использую при входе пользователя, будет выглядеть вот так:
Пример 4: взаимодействие с формой
Еще одним примером измерения степени вовлеченности (для которого отлично подходят группы триггеров) было бы отслеживание взаимодействия пользователя с заданным количеством полей формы, прежде чем пометить их как связанные с формой.
Чтобы это работало, вам нужен триггер, который срабатывает при изменении значения поля формы пользователем. Это легко сделать с помощью специального прослушивателя событий, где имя события, которое вы прослушиваете, называется 'change'
:
var form = document.querySelector('#someForm'); form.addEventListener('change', function(e) { window.dataLayer.push({ event: 'formFieldChanged', field: e.target }); });
Создайте триггер «Пользовательское событие» c названием события formFieldChanged
. После этого легко создать группу триггеров, в которой пользователь должен, например, трижды взаимодействовать с полями формы прежде, чем сработает тег:
Моменты, которые необходимо учитывать
Ниже приведены некоторые нюансы, которые нужно учитывать при работе с группами триггеров.
1. Группы триггеров не могут использоваться в качестве общих исключений
Вы не можете использовать Группу Триггеров в качестве исключения триггера, потому что Группа Триггеров может заблокировать от срабатывания только себя.
Это немного огорчает, ведь можно было бы придумать сценарии использования, при которых вы предпочли предотвратить срабатывание тега в случае, если определенные триггеры уже сработали.
2. Группы триггеров сработают только один раз
Данный тип триггера срабатывает только один раз на страницу после срабатывания всех вложенных триггеров. Даже если перечисленные триггеры сработают второй раз, группа триггеров больше не сработает.
Это не так критично, но существуют некоторые последствия. Например, у вас есть триггер «Глубина прокрутки», который срабатывает на глубинах 25, 50, 75 и 100%, а затем вы комбинируете его с 30-секундным триггером «Таймер» в группе триггеров. Она срабатывает только один раз, когда оба триггера — «Глубина прокрутки» и «Таймер» — сработали хотя бы однократно. Таким образом, невозможно дождаться повторного срабатывания группы триггеров до того момента, пока пороговое значение глубины прокрутки не станет, например, каким-то определенным значением.
Группа триггеров не подлежит сбросу после однократного срабатывания.
3. Группы триггеров не заменяют сгруппированные триггеры
Если к тегу добавлена группа триггеров, вы, возможно, захотите убедиться, что не случайно добавили триггеры к тегу в этой группе. Фактически, триггеры, которые вы добавляете в группу, вообще не нужно добавлять ни к одному тегу — они могут существовать исключительно ради самой группы триггеров.
4. Информация о Группе триггеров в объекте dataLayer
довольно скудна
Группа триггеров добавляет новое событие в список событий GTM по умолчанию: gtm.triggerGroup
. Объект, который передается с этим событием, чаще всего является просто ключом gtm.triggers
, совпадающим с идентификатором контейнера в сочетании с идентификатором самой группы триггеров:
Другими словами, подробности о триггерах внутри группы в объекте, который помещается в dataLayer
, полностью отсутствуют.
Вывод
Группы триггеров — достойное дополнение к арсеналу Google Tag Manager.
Мы еще далеки от того, чтобы установить сложную логику между триггерами (ЕСЛИ… ТО, ИНАЧЕ и т.д.), но это шаг в правильном направлении.
Особенно радует идея сохранения на странице более ранних значений ключей dataLayer. Возможно, в будущем эта идея будет расширена для того, чтобы мы могли запрашивать историю уровня данных на любой странице. И, возможно, мы даже решим сохранить эту информацию на разных страницах таким образом, что группа триггеров сможет срабатывать на основе многостраничных условий.