Достижение целей в Яндекс.Метрике при отправке контактных данных в чате Битрикс24
Разместите на всех страницах сайта где подключается онлайн чат Битрикс24 код из фвйла ./bx-live-chat-send-form.html
Создайте в интерфейсе Яндекс.Метрики новую цель с типом "JavaScript-событие" и идентификатором события "BX_LIVE_CHAT_SEND_FORM".
Наслаждайтесь.
В коде из файла ./bx-live-chat-send-form.html
найдите строчку counters[index].reachGoal('BX_LIVE_CHAT_SEND_FORM');
и замените в ней "BX_LIVE_CHAT_SEND_FORM" на нужный вам идентификатор.
В коде из файла ./bx-live-chat-send-form.html
найдите строчку type: BX.LiveChatWidget.SubscriptionType.userForm,
и замените "userForm" на нужное вам событие, список событий можно посмотреть тут.
<script type="text/javascript">
window.addEventListener(
'onBitrixLiveChat',
function (event) {
// Проверяем корректность параметров события
if (!event || !event.detail || !event.detail.widget) {
return;
}
// Функция для отправки цели в Яндекс.Метрику.
var _catchYaMetrikaCount = 0;
var yandexReachGoal = function () {
// Если за 20 попыток найти код Яндекс.Метрики ничего не вышло, больше не пытаемся
if (++_catchYaMetrikaCount > 20) {
return;
}
// Проверяем наличие объекта Ya
if (typeof Ya !== 'object') {
setTimeout(yandexReachGoal, 1000);
return;
}
// Проверяем что Яндекс.Метрика уже проинициализаровалась
if (typeof Ya._metrika !== 'object') {
setTimeout(yandexReachGoal, 1000);
return;
}
// Проверяем что счетчики проинициализировались
var counters = Ya._metrika.counters;
if (!counters) {
setTimeout(yandexReachGoal, 1000);
return;
}
// Перебираем счетчики и говорим что цель достигнута каждому
for (var index in counters) {
counters[index].reachGoal('BX_LIVE_CHAT_SEND_FORM');
}
};
// Подписываемся на событие виджета живого чата
var widget = event.detail.widget;
widget.subscribe({
type: BX.LiveChatWidget.SubscriptionType.userForm,
callback: function(data) {
// Запрашиваем достижение цели
yandexReachGoal();
}
});
}
);
</script>