СтатьяNewАналитика · 27 июля 2026

Отслеживание событий JivoSite в GA4 через GTM

#GA4#GTM#JivoSite#веб-аналитика#Яндекс Метрика
Читать нас чаще в Google

В прошлый раз мы разбирали, как отслеживать события JivoSite через GTM с помощью переменных уровня данных. У того способа есть жёсткое ограничение: Jivo отправляет события в аналитику только на тарифе «Профессиональный» и выше. На стартовых и бесплатном тарифе событий просто нет — фиксировать нечего.

Но есть другой подход, который снимает это ограничение полностью. Он работает на любом тарифе, включая бесплатный. Ниже — пошаговая настройка через Google Tag Manager.

Почему это работает на бесплатном тарифе

Помимо серверной отправки событий (которая привязана к платному тарифу), виджет Jivo умеет вызывать JavaScript-колбэки прямо в браузере пользователя. Это функции с фиксированными именами — jivo_onOpen, jivo_onMessageSent, jivo_onClose и другие. Когда в чате что-то происходит, Jivo проверяет, определена ли на странице такая функция, и если да — вызывает её.

Эти колбэки — часть клиентской механики виджета, они не зависят от тарифа. Значит, мы можем сами определить эти функции и внутри каждой отправить событие в dataLayer. Дальше — обычная работа GTM. Мы не ждём, пока Jivo пришлёт нам событие, — мы перехватываем момент, когда виджет дёргает свой колбэк, и превращаем его в событие GTM.

Что понадобится

  • установленный GTM на сайте;
  • GA4, подключённая через GTM (тег конфигурации GA4);
  • по желанию — Яндекс Метрика, тоже через GTM;
  • виджет JivoSite на сайте (любой тариф).

Шаг 1. HTML-тег: определяем колбэки Jivo

Создаём пользовательский HTML-тег (Теги → Создать → Пользовательский HTML). Внутри — скрипт, который объявляет все колбэки Jivo, и каждый пушит своё событие в dataLayer:

<script>
function jivo_onLoadCallback(){dataLayer.push({event:"jivo_onLoadCallback"})}
function jivo_onOpen(){dataLayer.push({event:"jivo_onOpen"})}
function jivo_onClose(){dataLayer.push({event:"jivo_onClose"})}
function jivo_onMessageSent(){dataLayer.push({event:"jivo_onMessageSent"})}
function jivo_onMessageReceived(){dataLayer.push({event:"jivo_onMessageReceived"})}
function jivo_onAccept(){dataLayer.push({event:"jivo_onAccept"})}
function jivo_onIntroduction(){dataLayer.push({event:"jivo_onIntroduction"})}
function jivo_onCallStart(){dataLayer.push({event:"jivo_onCallStart"})}
function jivo_onCallEnd(){dataLayer.push({event:"jivo_onCallEnd"})}
function jivo_onChangeState(){dataLayer.push({event:"jivo_onChangeState"})}
function jivo_onClientStartChat(){dataLayer.push({event:"jivo_onClientStartChat"})}
</script>

Каждая функция ловит своё действие в чате:

  • jivo_onLoadCallback — виджет загрузился;
  • jivo_onOpen — посетитель открыл окно чата;
  • jivo_onClose — закрыл окно чата;
  • jivo_onMessageSent — отправил сообщение;
  • jivo_onMessageReceived — пришло сообщение от оператора;
  • jivo_onAccept — оператор принял диалог;
  • jivo_onIntroduction — посетитель оставил контакты;
  • jivo_onCallStart / jivo_onCallEnd — начат / окончен звонок;
  • jivo_onChangeState — смена состояния;
  • jivo_onClientStartChat — клиент сам инициировал диалог.

Важно про триггер активации. Этот тег нужно повесить на встроенный триггер, который срабатывает на всех страницах как можно раньше — «All Pages» или «Инициализация». Колбэки должны быть определены до того, как виджет их дёрнет, иначе первые события потеряются.

HTML-тег с колбэками JivoSite в Google Tag Manager

Шаг 2. Переменная-словарь: читаемые названия событий

Технические имена вроде jivo_onMessageSent в отчётах читать неудобно. Заведём переменную типа «Таблица поиска» (Lookup Table), которая переводит их в понятные названия.

Создаём переменную (Переменные → Создать → Таблица поиска), назовём TS — Jivo. Входная переменная — встроенная {{Event}}. Заполняем соответствия «имя колбэка → читаемое название»:

  • jivo_onOpen → j_открыл окно чата;
  • jivo_onMessageSent → j_отправил сообщение;
  • jivo_onIntroduction → j_оставил контакты;
  • jivo_onCallStart → j_начат звонок — и так далее для всех событий.

Префикс j_ удобен тем, что в GA4 и Метрике все «дживо-события» будут стоять рядом и легко фильтруются.

Переменная-таблица поиска TS - Jivo в GTM с соответствиями событий

Шаг 3. Триггеры

Нам нужно два триггера — один общий и один под ключевое действие.

  • 1. Все события Jivo. Тип — «Пользовательское событие», имя события задаём регулярным выражением ^jivo (галочка «использовать регулярное выражение»). Ловит все события, начинающиеся с jivo.
  • 2. Отправка сообщения. Тип — «Пользовательское событие», имя события ровно jivo_onMessageSent. Это самое ценное действие — посетитель написал в чат. Выносим отдельно, чтобы пометить ключевым и оптимизировать под него рекламу.

Триггер всех событий Jivo по регулярному выражению ^jivo в GTM

Триггер отправки сообщения jivo_onMessageSent в GTM

Шаг 4. Теги GA4

Тег «все события» (событие GA4). Имя события — j_all_events. Параметр события — один:

  • j_events → значение {{TS — Jivo}} (человекочитаемое имя из словаря).

Триггер — общий (regex ^jivo). Так все действия в чате падают в одно событие j_all_events, а конкретный тип видно в параметре j_events.

Важный момент. Чтобы параметр j_events отображался в отчётах GA4, его нужно зарегистрировать как специальное определение (Custom definition). В интерфейсе GA4: Администратор → Специальные определения → Создать специальный параметр, область действия — «Событие», имя параметра — j_events. Без этого шага событие будет приходить, но разбивку по типам в отчётах вы не увидите. Данные начинают собираться с момента создания определения.

Тег «отправка сообщения» (событие GA4). Имя события — j_message, те же параметры, триггер — jivo_onMessageSent. Это отдельное событие под ключевое действие: именно его потом помечаем ключевым и импортируем в рекламный кабинет для оптимизации.

Совет: ID потока GA4 удобно вынести в отдельную переменную-константу (например {{GA4}}) и подставлять в поле «Идентификатор показателя» — так ID в одном месте, а не прописан в каждом теге.

Тег GA4 для всех событий Jivo с параметром j_events

Тег GA4 для ключевого события отправки сообщения j_message

Шаг 5. Яндекс Метрика (если нужна)

Если события нужны и в Метрике — добавляем два HTML-тега с вызовом reachGoal. Номер счётчика подставьте свой.

Тег «все события» (триггер ^jivo):

<script>
  ym(XXXXXXXX, 'reachGoal', 'j_events', {
    'Доп.параметры': {
      'Тип события': '{{TS - Jivo}}'
    }
  })
</script>

Тег «отправка сообщения» (триггер jivo_onMessageSent):

<script>
  ym(XXXXXXXX, 'reachGoal', 'jivo-message', {
    'Доп.параметры': {
      'Тип события': '{{TS - Jivo}}'
    }
  })
</script>

XXXXXXXX — номер вашего счётчика Метрики.

HTML-тег Яндекс Метрики с reachGoal для всех событий Jivo

HTML-тег Яндекс Метрики для события отправки сообщения

Шаг 6. Проверка и запуск

  • 1. Включаем режим предпросмотра GTM (Preview), открываем сайт.
  • 2. Открываем чат, пишем сообщение, оставляем контакты — и смотрим, как в отладчике GTM всплывают события jivo_onOpen, jivo_onMessageSent, а теги GA4 и Метрики срабатывают.
  • 3. Проверяем в DebugView GA4, что событие j_all_events пришло с правильным параметром j_events.
  • 4. Публикуем контейнер.

Отладчик GTM Preview со сработавшими событиями Jivo

DebugView GA4 с событием j_all_events и параметром j_events

Что это даёт

  • события из чата фиксируются на любом тарифе Jivo — даже на бесплатном, потому что мы работаем с клиентскими колбэками, а не с серверной отправкой;
  • в GA4 видно всю активность в чате по типам — открытия, сообщения, звонки, оставленные контакты;
  • ключевое действие (j_message) можно пометить ключевым событием и импортировать в Google Ads / Яндекс Директ, чтобы кампании оптимизировались на реальные обращения из чата, а не только на формы.

Раньше обращения из чата были слепой зоной — человек написал в Jivo, а в аналитике пусто. Теперь каждое действие в чате становится событием, которым можно управлять.

Такие настройки — часть услуги настройки веб-аналитики. Если нужно свести все обращения (формы, звонки, чат, мессенджеры) в одну аналитику и передать в рекламу — напишите нам, разберём ваш случай.

[ АУДИТ ]

Хотите так же — но в своём проекте?

Бесплатно посмотрим вашу рекламу и аналитику и покажем, где теряются заявки. Без обязательств.

Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности.

Больше — в нашем Telegram-канале

Кейсы, разборы и новости digital — без воды.

Подписаться
[ КОММЕНТАРИИ ] 0

Оставить комментарий