Поиск
Удалить поисковый запрос
Закрыть поиск
Приложения Google
Главное меню

Триггеры

Управление активацией тегов с помощью триггеров.

Триггер – это условие, которое может оказаться истинным или ложным в момент выполнения кода. Триггер определяет, когда нужно активировать тег.

Содержание

Обзор

Для успешной активации тега с ним должен быть связан хотя бы один триггер. Триггеры вызываются во время выполнения кода, и при соблюдении заданных условий активируются соответствующие теги. Например, если в триггере с событием просмотра страницы используется следующий фильтр, то тег будет активирован на главной странице сайта example.com:

url равно example.com/index.html

Триггер состоит из события и как минимум одного фильтра (за исключением пользовательских событий, для которых фильтр не требуется). Каждый фильтр имеет вид: "[Переменная] [Оператор] [Значение]".

Переменная Оператор Значение
Выберите переменную, например url, referrer и т. д. Выберите оператор, например равно, содержит и т. д. Вы указываете значение, и Диспетчер тегов Google сравнивает его со значением переменной.

В приведенном выше примере переменная "url" представляет URL текущей страницы. Если он совпадает с указанным вами значением (example.com/index.html), то условие триггера считается выполненным.

Контейнеры для веб-сайтов содержат три встроенные переменные: url, url hostname и referrer. Кроме того, при настройке триггера на основе кликов Диспетчер тегов Google использует встроенные переменные для автоматической подстановки идентификаторов выбранного элемента, классов и т. д. С помощью этих переменных можно создавать нужные триггеры. Вы также можете определять собственные переменные и использовать их значения в фильтрах триггеров. Подробнее читайте в статье Переменные.

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

В одном триггере может быть несколько фильтров "[Переменная] [Оператор] [Значение]". В этом случае он будет срабатывать, если выполнены все условия.

Триггеры активации и блокировки тегов

Тег активируется, когда выполняется условие любого из связанных с ним триггеров. Например, если заданы два триггера, "Все страницы" и "Только страница АБВ", тег будет активироваться на всех страницах.

Блокирующий триггер всегда имеет приоритет над активирующим. Например, если тег управляется триггером активации "все страницы" и триггером блокировки "URL равно thankyou.html", этот тег не будет активироваться на странице thankyou.html.

Типы триггеров

Теги привязаны к определенным событиям. Каждый раз, когда регистрируется событие, система проверяет триггеры в контейнере и активирует теги, если соблюдаются заданные условия. Если событие не происходит, теги не активируются.

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

Просмотр страницы (веб-сайты)

Это событие регистрируется при загрузке страницы в браузере пользователя. В меню "Тип триггера" можно выбрать, когда именно следует активировать тег: как только браузер приступит к синтаксическому анализу страницы ("Просмотр страницы"), по окончании сборки модели DOM ("Модель DOM готова") или когда страница загрузится полностью, включая изображения, скрипты и другие встроенные объекты ("Окно загружено"). Момент регистрации загрузки может иметь важное значение, если в теге используются переменные DOM или JavaScript для сбора динамических значений. Все теги типа "Просмотр страницы", взаимодействующие с DOM для подстановки значений переменных, должны использовать настройку "Модель DOM готова". Это необходимо для правильного определения переменных.

Клики (веб-сайты)

Тег активируется, когда пользователь нажимает на ссылку или другой элемент страницы.

В фильтре триггера мы рекомендуем указать URL (или шаблон URL) той страницы, на которой будет происходить клик. Это позволяет оптимизировать работу.

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

  • Элемент клика: элемент HTML, по которому был выполнен клик.
  • Классы клика: массив значений из атрибута class элемента.
  • Идентификатор клика: атрибут ID элемента, по которому был выполнен клик.
  • Цель клика: атрибут target элемента, по которому был выполнен клик.
  • URL клика: атрибут HREF элемента, по которому был выполнен клик (если имеется).
  • Текст клика: текст внутри элемента, по которому был выполнен клик.

После этого вы сможете включить эти переменные в фильтр. Допустим, на странице www.example.com/cart.html есть кнопка "Добавить в корзину":

<button type="submit" id="cart-add" class="addToCart" >ДОБАВИТЬ В КОРЗИНУ</button>

Когда пользователь нажмет эту кнопку, сработает следующий триггер:

Настройка триггера

Тип триггера: "Клик – все элементы"
Идентификатор клика равен cart-add
URL страницы содержит example.com/cart.html

Вы можете указать, какие именно клики нужно отслеживать: по ссылкам ("Только ссылки") или по любому элементу HTML на странице ("Все элементы").

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

Если вы установите флажок "Проверка ошибок", то теги будут активироваться только при успешном открытии ссылки. В противном случае они будут срабатывать при каждом нажатии на ссылку. Подробнее о проверке ошибок читайте ниже.

Отправка формы (веб-сайты)

Если вы выберете этот тип события, тег будет активироваться при отправке формы.

В фильтре триггера мы рекомендуем указать URL (или шаблон URL) той страницы, на которой будет происходить отправка формы. Это позволяет оптимизировать работу Диспетчера тегов Google.

Когда этот триггер срабатывает, автоматически подставляются значения следующих переменных:

  • Элемент формы: элемент формы, по которому был выполнен клик.
  • Классы формы: массив значений из атрибута class формы.
  • Идентификатор формы: атрибут ID элемента формы.
  • Цель формы: атрибут target элемента формы.
  • URL формы: атрибут HREF элемента формы (если имеется).
  • Текст формы: видимый текст внутри формы.

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

Если вы установите флажок "Проверка ошибок", то теги будут активироваться только при успешной отправке формы. В противном случае теги будут срабатывать при каждой попытке пользователя отправить форму.

Изменение в истории (веб-сайты)

Триггеры на основе этого события активируют тег, если изменился фрагмент URL (хеш) или если на сайте используются API pushState HTML5. С помощью такого триггера можно, например, активировать теги отслеживания действий на странице в приложении Ajax.

Когда в истории происходит изменение, Диспетчер тегов Google подставляет значения следующих переменных:

  • Старый фрагмент URL истории: фрагмент URL, который использовался раньше.
  • Новый фрагмент URL истории: фрагмент URL, который используется сейчас.
  • Старое состояние истории: старый объект состояния истории, контролируемый вызовами pushState.
  • Новое состояние истории: новый объект состояния истории, контролируемый вызовами pushState.

Ошибка JavaScript (веб-сайты)

Теги активируются, если происходит неперехваченное исключение JavaScript (при этом используется обработчик событий DOM window.onError). Когда триггер срабатывает, подставляются значения следующих переменных:

  • Сообщение об ошибке: строка, содержащая текст сообщения об ошибке JavaScript.
  • URL ошибки: URL, где возникла ошибка.
  • Номер строки ошибки: номер строки кода, в которой произошла ошибка.

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

Таймер (веб-сайты)

Триггеры на основе таймера позволяют отправлять события через заданный вами интервал времени (в миллисекундах). Диспетчер тегов Google запускает счетчик обратного отсчета, который активирует событие с указанной периодичностью. Так, если интервал равен 5000, то событие будет активироваться каждые пять секунд. Вы можете указать имя события и затем создать на его основе триггер пользовательского события. Например, если в триггере таймера вы указали событие под названием timer5, создайте триггер пользовательского события с условием "event равно timer5". Примеры см. в статье "События Google Analytics". В поле "Ограничение" можно установить лимит на количество запусков события. Если оставить это поле пустым, событие будет активироваться до тех пор, пока пользователь не покинет страницу.

Пользовательские события (веб-сайты и мобильные приложения)

Если среди стандартных событий нет нужного вам типа, вы можете задать его вручную. Подробнее об отправке событий читайте в документации для разработчиков веб-сайтов, Android или iOS.

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

Чтобы создать такой триггер, выберите тип "Пользовательское событие" и укажите в условии имя события, заданное при помощи уровня данных или Firebase Analytics.

Как стандартные, так и пользовательские события ставятся в очередь. Чтобы просмотреть порядок, в котором они передаются на уровень данных на той или иной странице, откройте консоль JavaScript в веб-браузере и введите dataLayer:

data layer screenshot from Google Chrome

Использование регулярных выражений и селекторов CSS в качестве операторов

При настройке триггеров в качестве операторов можно использовать регулярные выражения и селекторы CSS. При настройке таких операторов для триггеров можно задать, соответствует ли триггер применяемому правилу или нет. Например, регулярное выражение, примененное к переменной URL или пути URL

/pro/

будет соответствовать всем страницам, в пути URL которых содержится строка "pro", включая "products", "promotions, "professionals" и "processes".

Селектор CSS можно использовать для выбора определенных элементов HTML. Например, при применении к переменной "Элемент клика" селектор

#промо .покупка

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

Добавление фильтров в триггер

Итак, вы выбрали тип события. Теперь нужно указать условия (то есть значения переменных), при которых триггер должен активировать теги. Каждое встроенное событие имеет одну или несколько переменных, значения которых подставляются автоматически. Например, для просмотра страницы это URL, а для клика – идентификатор элемента. В фильтрах можно использовать переменные, связанные с выбранным типом события, или собственные переменные, определенные ранее.

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

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

Триггеры и переменные

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

Рассмотрим следующий пример:

Screenshot of chrome devtools showing objects in data layer

Тег, запускаемый событием productView (просмотр товара), сработает дважды. Переменная, привязанная к productId (идентификатор товара), при первой активации тега примет значение ABCD, а при второй – EFGH. Значением переменной уровня данных loggedInUser (зарегистрировавшийся пользователь) в обоих случаях будет no (нет), так как оно не перезаписывается при повторной активации тега.

Если триггер основан на событии addToCart (добавление в корзину), тег активируется, когда переменная productId будет иметь значение XYZ, а переменная loggedInUser – значение yes (да), поскольку переменная loggedInUser была модифицирована при обновлении уровня данных, которое произошло до события addToCart. Обновление уровня данных, задающее значение yes для переменной loggedInUser, нельзя использовать для активации тегов, так как с этим обновлением не связано ни одно событие.

Рекомендации

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

Выполняйте предварительный просмотр

Прежде чем публиковать триггеры форм и ссылок на сайте, проверьте, правильно ли они работают. Процесс их выполнения может прерываться другим событием JavaScript. Чаще всего проблема возникает, когда какой-либо другой скрипт возвращает значение false до того, как сработает триггер. Предварительный просмотр поможет вам выяснить, выполняются ли ваши теги и происходит ли отправка формы.

Тестируйте триггеры в старых версиях браузеров

Теги могут неправильно работать в старых браузерах. В особенности это касается Internet Explorer версии 8 и более ранних. В современных веб-браузерах проблемы с тегами возникают гораздо реже. Если вы не можете совсем отказаться от поддержки старых браузеров, мы рекомендуем тщательно тестировать в них теги, используя режим предварительного просмотра.

Тестируйте триггеры форм и ссылок на небольшом числе страниц

Тестирование тегов на каждой странице сайта может занять слишком много времени, поэтому для проверки триггеров форм и ссылок лучше ограничиться небольшим набором страниц. Установите фильтры, чтобы триггер срабатывал только при соблюдении определенных условий (например, "page path равно /my/tested/form/page"). Это позволит убедиться, что триггеры выполняются только на тех страницах, которые вы протестировали.

Была ли эта статья полезна?
Как можно улучшить эту статью?