Техническая поддержка 8 800 555 6342
Положение об оказании услуг технической поддержки

Отслеживание событий в Onicon #2734

Обращаем Ваше внимание, что техническая поддержка не консультирует по работе с JavaScript, а также сервисами Яндекс.Метрика и Google Analytics!

Сервис Onicon, будучи установленным на сайт, в процессе своей работы генерирует различные события, в зависимости от его состояния в данный момент времени.

Эти события можно отследить, после чего инициировать выполнение браузером произвольного кода в момент срабатывания определённого события, в том числе фиксировать выполнение целей в таких сервисак как Яндекс.Метрика или Google Analytics.

Список событий, доступных для отслеживания:

  • onicon-init - Onicon полностью загрузился в браузере клиента.
  • onicon-connected - Onicon соединился с сервером.
  • onicon-running - Onicon перешел в рабочий режим. Это последний этап запуска сервиса.

  • chat-stateChange(state) - Изменился режим работы чата (online - операторы на сайте; offline - на сайте генератор лидов).
  • chat-sendMessage(message) - Посетитель отправил сообщение в чат.
  • chat-incomingMessage(message) - Посетителем получено сообщение от оператора.

  • chat-incomingAutosend(autosend) - Посетителем получена авторассылка.

  • panel-open - Панель открылась (она могла быть открыта как пользователем, так и входящим сообщением/авторассылкой)
  • panel-close - Панель закрылась

  • bookmark-click - Посетитель кликнул по кнопке Onicon

  • callback-click(phone) - Посетитель кликнул по кнопке обратного звонка
  • callback-send - Форма обратного звонка успешно отправлена
  • callback-voice(phone) - Инициирован звонок посетителю

  • offlineForm-click(formdata) - Нажата кнопка отправки формы (при этом форма могла не отправиться, т.к. не пройдена валидация полей и т.д.)
  • offlineForm-send - Форма успешно отправлена

Формат подписки на событие:

Onicon.on("выбранное событие", function(){
// Код, который будет выполнен во время события
});

 

Некоторые события передают дополнительную информацию о возникающем событии. Например, в случае с "chat-sendMessage" в функцию следует передать аргумент "message".

Onicon.on("chat-sendMessage", function(message){
// В message будет содержатся то что напечатал посетитель
};

 

Событие "chat-incomingAutosend" дополнительно передаёт объект авто-рассылки. С помощью него можно отслеживать эффективность авто-рассылок. Сценарий схож с определением составных целей в Яндекс.Метрике, только события, на которые следует опираться, генерирует Onicon. На каждую созданную авто-рассылку сделать отдельную цель в метрике и написать следующий код:

window.initOnicon = function() {

        this.on("chat-incomingAutosend", function(autosend){
            // Записываем текущее значение авторассылки
            // и время, когда она была отправлена
            // так же, если необходимо, запускаем цель
            // для факта показа авторассылки

            localStorage.setItem('last-autosend', JSON.stringify(autosend));

            yaCounterXXXXXXX.reachGoal('autosend-'+autosend.id);
            ga('send', 'event', 'autosend', autosend.id);

        })

        this.on("chat-incomingMessage", function(message) {
            // Получено сообщение от оператора
            // Нужно удалить статус о том, что последним
            // сообщением была авторассылка

            localStorage.removeItem('last-autosend');
        })


        this.on("chat-sendMessage", function(message) {
            // Посетитель отправил сообщение

            var now = (new Date).getTime()/1e3;

            try {
                var autosend = JSON.parse(localStorage.getItem('last-autosend'));
            } catch (e) {}

            if (autosend && now < autosend.created+120) {
                // Если последним сообщением была авторассылка
                // И посетитель ответил на неё в течении 2-х минут
                // Предположим что он ответил именно из-за авторассылки

                yaCounterXXXXXXX.reachGoal('autosend-reply-to'+autosend.id);
                ga('send', 'event', 'autosend', 'reply-to-'+autosend.id);

                // И удаляем запись о последней авторассылке,
                // чтобы не было повторов
                localStorage.removeItem('last-autosend');
        }
    })
}