Система событий выполняет две функции. С её помощью вы можете настроить работу виджета под задачи вашего бизнеса, а также она позволяет виджету eyezon обмениваться информацией с другими скриптами на странице и передавать сведения о действиях покупателя в аналитику.
См. Сквозная аналитика с помощью eyezon и Продвинутые настройки кнопки и виджета: вид, поведение, расположение
BUTTON_CLICKED
генерируется при каждом успешном открытии виджета.
DIALOG_CREATED
генерируется при каждом создании нового диалога.
<aside>
⚠️ Создание диалога происходит в момент отправки запроса покупателем. Если покупатель открыл виджет и закрыл, не отправив запрос, событие DIALOG_CREATED
не создаётся.
</aside>
eyeZon('on', 'DIALOG_CREATED', function(data) {
if (data.predefinedMessageIndex === 0) {
console.log('DIALOG_CREATED1', data);
} else if (data.predefinedMessageIndex === 1) {
console.log('DIALOG_CREATED2', data);
}
else
{console.log('DIALOG_CREATED3', data);
}
})
PASSIVE_REQUEST
генерируется при создании нового диалога, когда нет ни одного стримера в статусе «доступен».
MISSED_REQUEST
генерируется, когда заканчивается отсчёт ожидания ответа стримера, показывающийся покупателю. По умолчанию виджет в этот момент предлагает подписаться на уведомления**.**
STREAM_JOINED
генерируется каждый раз, когда покупатель подключается к стриму**.**
DIALOG_CLOSED
генерируется, когда диалог закрывается покупателем (не стримером).
CHAT_JOINED
генерируется, когда покупатель возвращается в один из активных чатов.
<aside>
⚠️ Если покупатель вернулся в чат по кнопке, то генерируется и CHAT_JOINED
, и BUTTON_CLICKED
.
</aside>
CHAT_OVERLAY_CLOSED
генерируется, когда покупатель сворачивает виджет, нажав на пустую область вокруг виджета или значок закрытия.
AUDIO_SENT
генерируется каждый раз, когда покупатель отправляет голосовое сообщение вне стрима.
VIDEO_CLICKED
генерируется каждый раз, когда покупатель нажимает на видео, которое стример отправил в диалог (не записанный стрим, а видео, загруженное стримером из галереи на его устройстве).
STREAM_REPLAY_CLICKED
генерируется каждый раз, когда покупатель нажимает на видео с записью проведенной стримером трансляции.
PRODUCT_PAGE_CLICKED
генерируется каждый раз, когда покупатель нажимает на кнопку «Перейти на страницу продукта» в правом верхнем углу виджета, если покупатель находится на странице с URL, отличным от того, с которого был открыт диалог.
Кнопка «Перейти на страницу продукта»
<aside> ⚠️ Одинаковыми считаются URL, у которых совпадает часть после домена первого уровня. Например: https://www.notion.so/eyezon/52c73b0a37a04372b2b7f0401211dd9d
</aside>
DIALOG_RATED
генерируется, когда покупатель нажимает на звездочку для оценки работы стримера.
DIALOG_MARKED_UNRATED
генерируется, когда клиент нажимает кнопку «Закрыть без оценки».
GAME_OPENED
вызывается при нажатии на кнопку «Мини-игра».
STREAM_MIC_ON
генерируется после того, как покупатель дал виджету доступ к микрофону и нажал на иконку «микрофон» во время стрима.
EMAIL_NOTIFICATIONS_ON
генерируется, когда покупатель оставляет свою почту для отправки уведомлений. Не относится к запросу на отправку уведомлений, когда нет свободных стримеров.
PUSH_NOTIFICATIONS_ON
генерируется, когда покупатель подтверждает согласие на отправку пуш-уведомлений. Не относится к запросу на отправку уведомлений, когда нет свободных стримеров.
INTRO_VIDEO_CLICKED
генерируется, когда покупатель нажимает на кнопку «play» в интро видео.
CLIENT_FIRST_REPLIED
генерируется в момент отправки покупателем первого сообщения в диалоге.
<aside> ⚠️ Покупатель может отправить сообщение только после того, как стример принял запрос и отправил сообщение в диалог или начал трансляцию.
</aside>
STREAMER_PUT_IN_CART_ACCEPTED
генерируется, когда покупатель принимает предложение стримера добавить товар в корзину.
Подробнее: Добавление товара в корзину и оформление заказа
STREAMER_PUT_IN_CART_DECLINED
генерируется, когда покупатель отклоняет предложение стримера добавить товар в корзину.
Подробнее: Добавление товара в корзину и оформление заказа
PUT_IN_CART_FROM_WIDGET
генерируется в двух случаях: когда покупатель нажимает кнопку «Добавить товар в корзину» в виджете и когда стример предлагает покупателю добавить товар в корзину в ходе их общения, а покупатель соглашается.
PUT_IN_CART
генерируется вызовом API на хост-странице в момент, когда сайт сообщает виджету, что товар добавлен в корзину.
<aside> ⚠️ В какой момент товар считается добавленным в корзину — зависит от предустановок на вашем сайте.
</aside>
CART_SUBMITTED
генерируется вызовом API на хост-странице в момент, когда сайт сообщает виджету, что заказ оформлен.
<aside> ⚠️ В какой момент заказ считается оформленным — зависит от предустановок на вашем сайте.
</aside>
PRODUCT_SOLD_BY_STREAMER
генерируется после того, как хост-страница вызывает событие CART_SUBMITTED
под каждый товар, проданный стримером.
Подробнее: Добавление товара в корзину и оформление заказа
PRODUCT_SOLD
генерируется после того, как хост-страница вызывает событие CART_SUBMITTED
под каждый товар, возможно проданный стримером.
Подробнее: Добавление товара в корзину и оформление заказа
APPOINTMENT_CLIENT_ACCEPTED
генерируется, когда покупатель подтверждает запланированный стрим в поп-ап окне.
APPOINTMENT_CLIENT_DECLINED
генерируется, когда покупатель отклоняет запланированный стрим в поп-ап окне.
APPOINTMENT_CLIENT_CANCEL
генерируется, когда покупатель отменяет ранее подтвержденный запланированный стрим.
APPOINTMENT_CLIENT_SHOWED_UP
генерируется, когда покупатель пришел на запланированный стрим.
<aside> ⚠️ Виджет подтверждает присутствие покупателя только тогда, когда покупатель отправляет в диалог первое сообщение после назначенной даты запланированного стрима.
</aside>
CLIENT_DATA_UPDATED
генерируется каждый раз при отправке запроса и дает возможность сайту клиента собирать персональные данные покупателя, если они заполнены.
Все события получают параметры ****title
, target
, buttonId
.
Пример использования события DIALOG_CREATED
в скрипте
<script>
(function (w,d,s,o,f,js,fjs) {
w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
js = d.createElement(s); fjs = d.getElementsByTagName(s)[0];
js.id = o; js.src = f; js.async = true; fjs.parentNode.insertBefore(js, fjs);
}(window, document, 'script', 'eyeZon', '<https://storage.googleapis.com/eyezonscriptv2/static/js/eyezonwidget.js>'));
eyeZon('init', {
businessId: 'ВАШ БИЗНЕС ID'
});
eyeZon('on', 'DIALOG_CREATED', function(data) {
if (data.predefinedMessageIndex === 0) {
console.log('DIALOG_CREATED1', data);
} else if (data.predefinedMessageIndex === 1) {
console.log('DIALOG_CREATED2', data);
}
else
{console.log('DIALOG_CREATED3', data);
}
})
</script>
Пример использования события STREAM_JOINED
в скрипте
<script>
(function (w,d,s,o,f,js,fjs) {
w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
js = d.createElement(s); fjs = d.getElementsByTagName(s)[0];
js.id = o; js.src = f; js.async = true; fjs.parentNode.insertBefore(js, fjs);
}(window, document, 'script', 'eyeZon', '<https://storage.googleapis.com/eyezonscriptv2/static/js/eyezonwidget.js>'));
eyeZon('init', {
businessId: 'ВАШ БИЗНЕС ID'
});
eyeZon('on', 'STREAM_JOINED', function(data) {
**console.log('STREAM_JOINED', data)**
// ваша любая функция
});
</script>
Навигация
Оcновные инструкции
Создание кнопки и её настройка
Обратная связь и информирование об ошибках
Продвинутые инструкции
Продвинутые настройки кнопки и виджета: вид, поведение, расположение
Сбор персональных данных покупателя
Добавление товара в корзину и оформление заказа
Сквозная аналитика с помощью eyezon
Оперативный дашборд и мониторинг работы стримеров
Остались вопросы? Столкнулись с трудностями? Заметили баг? Наша служба поддержки всегда готова вам помочь