Подписка на события виджетов
Общая информация
Помимо отправки данных в Google Analytics и Яндекс Метрику, вы можете получать расширенные данные по виджетам напрямую с вашего сайта. Ниже описывается схема подключения отслеживания событий виджета.
Следует иметь в виду, что фиксация событий наступает с 2-секундной задержкой. Все события, которые наступают одновременно или с небольшой разницей во времени, добавляются в очередь на отправку. После прохождения таймаута все события отправляются на сервер в виде массива событий.
Подписка на события
Формат события
Для получения событий от виджетов, необходимо добавить в объект window функцию. Пример:
window.ct('modules', 'widgets', 'subscribeToEvent', subsribeSettings)[{ object: <string>
action: <string>
callback: <callback>
}
...
]
Где параметр subsribeSettings является массивом объектов (событий), которые имеют следующую структуру:
- object: <string> // строка, обозначающая элемент, с которым произошло событие. Возможные варианты: 'module', 'button', 'form', 'dialog', 'request', 'multi-button'
- action: <string> // строка, обозначающая действие, которое произошло с объектом. Возможные варианты: 'loaded', 'show', 'close', 'create', 'fail', 'click', 'open'
- callback: <callback> // строка, обозначающая функцию обратного вызова.
Функция обратного вызова имеет вид:
function(event) {}
{
object: <string>
action: <string>
data: <object|null>
}
Объекты виджетов
Модуль (module)
Типы виджетов, на которых может возникать событие:
- callback
- promotion
- request
- calltovisit
- whatsapp-messenger
- viber-messenger
- facebook-messenger
- vk-messenger
- telegram-messenger
- direct-calls
- map-address
- promo-link
Действия:
- show - показ кнопки
- loaded - загрузка завершена
Данные по событию:
- siteId - идентификатор сайта, виджет которого сработал
- sessionId - идентификатор сессии, в рамках которой произошло событие
- actionType - тип действия, может принимать одно из 2 значений
- manual - действие произведено пользователем
- auto - действие произведено автоматически (по таймеру или автоматически происходит при загрузке в соответствии с настройками виджета)
- isMobile - флаг, мобильное ли устройство, на котором произошло событие
- isMultiButton - флаг, был ли виджет, над объектом которого было произведено действие , в составе мультикнопки
Кнопка виджета (button)
Типы виджетов, на которых может возникать событие:
- callback
- promotion
- request
- calltovisit
- whatsapp-messenger
- viber-messenger
- facebook-messenger
- vk-messenger
- telegram-messenger
- direct-calls
- map-address
- promo-link
- trade-in
- wheel-fortune
- click - клик по кнопке
Данные по событию:
- widgetId - идентификатор виджета, над объектом которого было произведено действие
- widgetType - тип виджета, над объектом которого было произведено действие
- siteId - идентификатор сайта, виджет которого сработал
- sessionId - идентификатор сессии, в рамках которой произошло событие
- workMode - режим работы виджета, может принимать одно из 2 значений
- working_hours - рабочее время
- non_working_hours - нерабочее время
- actionType - тип действия, может принимать одно из 2 значений
- manual - действие произведено пользователем
- auto - действие произведено автоматически (по таймеру или автоматически происходит при загрузке в соответствии с наcтройками виджета)
- isMobile - флаг, мобильное ли устройство, на котором произошло событие
- isMultiButton - флаг, был ли виджет, над объектом которого было произведено действие , в составе мультикнопки
Всплывающий диалог виджета (dialog)
Типы виджетов, на которых может возникать событие:
Действия:
- show - показ всплывающего диалога
- close - закрытие всплывающего диалога
Данные по событию:
- widgetId - идентификатор виджета, над объектом которого было произведено действие
- widgetType - тип виджета, над объектом которого было произведено действие
- siteId - идентификатор сайта, виджет которого сработал
- sessionId - идентификатор сессии, в рамках которой произошло событие
- workMode - режим работы виджета, может принимать одно из 2 значений
- working_hours - рабочее время
- non_working_hours - нерабочее время
- actionType - тип действия, может принимать одно из 2 значений
- manual - действие произведено пользователем
- auto - действие произведено автоматически (по таймеру или автоматически происходит при загрузке в соответствии с настройками виджета)
- isMobile - флаг, мобильное ли устройство, на котором произошло событие
- isMultiButton - флаг, был ли виджет, над объектом которого было произведено действие , в составе мультикнопки
Форма виджета (form)
Типы виджетов, на которых может возникать событие:
Действия:
- show - показ формы
- close - закрытие формы
Данные по событию:
- widgetId - идентификатор виджета, над объектом которого было произведено действие
- widgetType - тип виджета, над объектом которого было произведено действие
- siteId - идентификатор сайта, виджет которого сработал
- sessionId - идентификатор сессии, в рамках которой произошло событие
- workMode - режим работы виджета, может принимать одно из 2 значений
- working_hours - рабочее время
- non_working_hours - нерабочее время
- actionType - тип действия, может принимать одно из 2 значений
- manual - действие произведено пользователем
- auto - действие произведено автоматически (по таймеру или автоматически происходит при загрузке в соответствии с настройками виджета)
- isMobile - флаг, мобильное ли устройство, на котором произошло событие
- isMultiButton - флаг, был ли виджет, над объектом которого было произведено действие , в составе мультикнопки
Заявка с виджета (request)
Типы виджетов, на которых может возникать событие:
Действия:
- create - заявка создана успешна
- fail - в ходе отправки заявки произошла ошибка
Данные по событию:
- widgetId - идентификатор виджета, над объектом которого было произведено действие
- widgetType - тип виджета, над объектом которого было произведено действие
- siteId - идентификатор сайта, виджет которого сработал
- sessionId - идентификатор сессии, в рамках которой произошло событие
- workMode - режим работы виджета, может принимать одно из 2 значений working_hours - рабочее время, non_working_hours - нерабочее время
- actionType - тип действия, может принимать одно из 2 значений
- manual - действие произведено пользователем
- auto - действие произведено автоматически (по таймеру или автоматически происходит при загрузке в соответствии с настройками виджета)
- isMobile - флаг, мобильное ли устройство, на котором произошло событие
- isMultiButton - флаг, был ли виджет, над объектом которого было произведено действие , в составе мультикнопки
- timePeriodType - тип временного периода, на которое заказана заявка, может принимать одно из 2 значений
- now - выполнить сейчас
- exact - выполнить в конкретное время
- fields - массив пользовательских данных, введенных в форме.
Объекты мультикнопки
Кнопка мультикнопки (multi-button)
Действия:
- open - открыт блок с кнопками виджета
- close- закрыт блок с кнопками виджета
Данные по событию:
-
siteId - идентификатор сайта, виджет которого сработал
-
sessionId - идентификатор сессии, в рамках которой произошло событие
Примеры использования
Подписка на событие клика по кнопке виджета
Типовой скрипт подписки на событие клика по кнопке определенного типа виджета будет выглядеть так:
window.ct('modules', 'widgets', 'subscribeToEvent', [{
object: 'button', action: 'click', callback: function(event) { if (event.data.widgetType=='whatsapp-messenger'){ /*произвольный код, сработает по событию клика на кнопку виджета WhatsApp*/ } } }]);
Подписка на событие отправки формы
Если необходимо выполнить какой-либо скрипт или настроить цель по событию отправки формы, то можно воспользоваться примером:
window.ct('modules', 'widgets', 'subscribeToEvent', [{
object: 'request',
action: 'create',
callback: function(event){
if (event.data.widgetType=='promotion'){
/*произвольный код, сработает по событию отправки заявки виджета Промо-баннера*/
}
}
}]);
Подписка на разные события виджета
Если Вам необходима подписка на разные события, то достаточно вызвать функцию подписки только 1 раз. Например, если нужно подписаться на событие клика по кнопке виджета, а также на событие закрытия формы виджета, то скрипт будет выглядеть так:
window.ct('modules','widgets','subscribeToEvent',[{
object: 'button',
action: 'click',
callback: function(event){
/*произвольный код, сработает по событию клика*/
}},
{object: 'form',
action: 'close',
callback: function(event){
/*произвольный код, сработает по событию закрытия формы*/
}}
]);
- A/B тестирование (раздел «Подключение»)
- Email-трекинг (раздел «Подключение»)
- Отслеживание офлайн конверсии (раздел «Подключение»)
- Подключение к отслеживанию дополнительных доменов (раздел «Подключение»)
- Подмена номеров на AMP-страницах Google (раздел «Подключение»)