Нас часто спрашивали, можно ли как-то настроить отслеживание чатов в Открытых линиях с помощью Яндекс.Метрики. Да, можно, но вам понадобится чуточку знаний в JS и HTML, поэтому делать это придется соответствующему специалисту, а также понадобятся права администратора сайта, т.к. нужно будет вносить некоторые изменения в шаблон вашего сайта.
1. Подключение виджета на сайт
Настроим виджет на сайт и подключим его в шаблоне сайта с помощью кода виджета.
Все готово. Виджет подключен на ваш сайт.
2. Настройка и установка счетчика на сайт
Для начала, у вас должен быть установлен на сайте счетчик Яндекс.Метрики - иначе как вы будете отслеживать достижение цели? ;)
То есть JavaScript-код счетчика нужно скопировать из блока Настройка > Счетчик Яндекс.Метрики и вставить во все страницы сайта, где будут отслеживаться цели, поэтому проще этот код вставить в шаблон вашего сайта. Как рекомендует сам Яндекс, код счётчика необходимо вставлять внутри тега <head>
или <body>
.
Мы будем отслеживать достижение цели с помощью Ecommerce, поэтому при создании счетчика не забудьте включить опцию Электронная коммерция:
Далее Создаем цель в Яндекс.Метрике:
-
Используйте такие значения Идентификаторов
id
, которые не содержатся в URL страниц сайта, а также идентификаторы не должны содержать следующие символы:,
&
,#
,?
,=
. -
Номер цели (
goal_id
) выдается после сохранения цели.
С помощью JS-скрипта мы будем отслеживать JavaScript-событие Пользователь написал в чат:
<script type="text/javascript">window.addEventListener('onBitrixLiveChat', function(event) { var widget = event.detail.widget; // Обработка событий widget.subscribe({ type: BX.LiveChatWidget.SubscriptionType.ТИП_ПОДПИСКИ_НА_СОБЫТИЕ, callback: function(data) { // любая команда ... } }); });</script>
Для нашего случая код нужно немного доработать в соответствии с документацией Яндекс и типа подписки на события виджета:
<script type="text/javascript">window.addEventListener('onBitrixLiveChat', function(event) { var widget = event.detail.widget; // Обработка событий widget.subscribe({ type: BX.LiveChatWidget.SubscriptionType.userMessage, callback: function(data) { // любая команда if (typeof(dataLayer) == 'undefined') { dataLayer = []; } dataLayer.push({ "ecommerce": { "purchase": { "actionField": { "id" : "chatsend1", "goal_id" : "45325652" }, "products": [ {} ] } } }); } }); });</script>
<body>
и </body>
, например рядом с кодом виджета.Здесь мы использовали BX.LiveChatWidget.SubscriptionType.userMessage – событие сообщения пользователя, но вы можете использовать любое из статьи Расширенные настройки виджета Онлайн-чата. Вариантов использования событий можно придумать много – события начала или окончания сессии диалога, событие на лайки, событие на сообщение оператора и т.д.
Чтобы передать данные в виде Ecommerce-объектов сервису Яндекс.Метрики, необходимо поместить их в специальный JavaScript-массив методом push – в контейнер данных, в нашем примере он называется dataLayer
(см. п.1 Создание счетчика).
В Ecommerce информацию о достижении цели передается с помощью поля goal_id
вместе с данными о действии, в нашем примере – это 45325652
, также понадобится обязательный уникальный идентификатор id
, в нашем примере – это chatsend1
(см. п.2 Создание цели).
Все, цель создана и настроена.
3. Проверка достижения цели и отчет конверсии
Теперь при каждом написании клиентом сообщения в чат открытой линии:
В Яндекс.Метрику будут уходить данные о достижении цели:
В данном примере мы рассмотрели принцип создания и отслеживания цели Пользователь написал в чат в Яндекс.Метрике, т.е при каждой отправке сообщения клиентом будет засчитываться цель. При необходимости код JavaScript может быть доработан под ваши нужды.