top

Поддержка24

Отслеживание чатов в Яндекс.Метрике

Рейтинг:

Нас часто спрашивали, можно ли как-то настроить отслеживание чатов в Открытых линиях с помощью Яндекс.Метрики. Да, можно, но вам понадобится чуточку знаний в JS и HTML, поэтому делать это придется соответствующему специалисту, а также понадобятся права администратора сайта, т.к. нужно будет вносить некоторые изменения в шаблон вашего сайта.

Итак, предположим, что у вас уже настроен виджет на сайт, и он подключен в шаблоне вашего сайта с помощью кода виджета. Настроим цели в Яндекс.Метрике, чтобы отслеживать событие Пользователь написал в чат.


  1. Для начала, у вас должен быть установлен на сайте счетчик Яндекс.Метрики - иначе как вы будете отслеживать достижение цели? ;)

    То есть JavaScript-код счетчика нужно скопировать из блока Установка Яндекс.Метрики и вставить во все страницы сайта, где будут отслеживаться цели, поэтому проще этот код вставить в шаблон вашего сайта. Как рекомендует сам Яндекс, код счётчика необходимо вставлять внутри тега <head> или <body>.

    Мы будем отслеживать достижение цели с помощью Ecommerce, поэтому при создании счетчика не забудьте включить опцию Отправка в Метрику данных электронной коммерции:

    Создаем счетчик в Яндекс.Метрике

  2. Далее Создаем цель в Яндекс.Метрике:

    Создаем цель в Яндекс.Метрике

    Особенности:

    • Используйте такие значения Идентификаторов id, которые не содержатся в URL страниц сайта, а также идентификаторы не должны содержать следующие символы: , &, #, ?, =.

    • Номер цели (goal_id) выдается после сохранения цели.

  3. С помощью JS-скрипта мы будем отслеживать JavaScript-событие Пользователь написал в чат:
    Общий пример кода такой, вы можете его дорабатывать под свои нужды
     <script type="text/javascript"> 
    (window.BxLiveChatLoader = window.BxLiveChatLoader || []).push(function() {
       BX.LiveChat.addEventListener(window, 'message', function(event){
          if(event && event.origin == BX.LiveChat.sourceDomain)
          {
             var data = {}; try { data = JSON.parse(event.data); } catch (err){} if(!data.action) return;
             if (data.action == 'sendMessage')
             {
                if (typeof(dataLayer) == 'undefined')
                {
                   dataLayer = [];
                }
                dataLayer.push({"ecommerce": {}); // yandex
             }
          }
       });
    }); 
    </script>

    Данный скрипт нужно расположить в любом месте страницы или шаблона сайта между тегами <body> и </body>, например рядом с кодом виджета.

  4. Для нашего случая код нужно немного доработать в соответствии с документацией Яндекс:

     <script type="text/javascript"> 
    (window.BxLiveChatLoader = window.BxLiveChatLoader || []).push(function() {
       BX.LiveChat.addEventListener(window, 'message', function(event){
          if(event && event.origin == BX.LiveChat.sourceDomain)
          {
             var data = {}; try { data = JSON.parse(event.data); } catch (err){} if(!data.action) return;
             if (data.action == 'sendMessage')
             {
                if (typeof(dataLayer) == 'undefined')
                {
                   dataLayer = [];
                }
    			dataLayer.push({
    				"ecommerce": {
    					"purchase": {
    						"actionField": {
    							"id" : "user_chat1",
    							"goal_id" : "33855453"
    						},
    						"products": [ {} ]
    					}
    				}
    			});
             }
          }
       });
    });
    </script>

    Чтобы передать данные в виде Ecommerce-объектов сервису Яндекс.Метрики, необходимо поместить их в специальный JavaScript-массив методом push – в контейнер данных, в нашем примере он называется dataLayer (см. п.1 Создание счетчика).

    В Ecommerce информацию о достижении цели передается с помощью поля goal_id вместе с данными о действии, в нашем примере – это 33855453, также понадобится обязательный уникальный идентификатор id, в нашем примере – это user_chat1 (см. п.2 Создание цели).

  5. Все, цель создана и настроена.

Теперь при каждом написании сообщения в чат открытой линии:

Сообщение в чат

В Яндекс.Метрику будут уходить данные о достижении цели:

Достижение цели в Яндекс.Метрике


В данном примере мы рассмотрели принцип создания и отслеживания цели Пользователь написал в чат в Яндекс.Метрике, т.е при каждой отправке сообщения будет засчитываться цель. При необходимости код JavaScript может быть доработан под ваши нужды.



Спасибо, помогло! Спасибо :) Не помогло Очень жаль :(
Уточните, пожалуйста, почему:
Это не то, что я ищу
Очень сложно и непонятно

Не нашли ответ на свой вопрос?

ЗАДАЙТЕ ВОПРОС КОМАНДЕ ПОДДЕРЖКИ24
Создавать обращения в техподдержку могут только пользователи коммерческих тарифов. Пользователи бесплатной версии имеют доступ к множеству обучающих статей и видео, а также записям вебинаров по Битрикс24. Со всеми вопросами по установке, внедрению и доработке вам помогут наши партнеры