Отслеживание и аналитика WhatsApp, Telegram, VK сообщений

28.03.2024

Мессенджеры — популярный канал коммуникации в B2C и E-Commerce сегменте. Если у меня есть возможность связаться с интернет-магазином или поддержкой сайта в том же Telegram — я с радостью предпочту именно этот канал коммуникации (и буду раздражаться отсталости сайта, если не могу этого сделать)).

Мессенджеры — это удобно:

  • переписка сохраняется у меня, можно легко вернуться к ней,
  • использую привычный быстро работающий интерфейс,
  • оперативно получаю уведомления об ответах.

Сплошные удобства для пользователей. Как следствие, повышение конверсии сайта. Но сущий кошмар для любого веб-аналитика, поставившего цель максимально точно отслеживать все конверсии (заявки/лиды).

Проблематика аналитики мессенджеров

Поставить на сайт кнопку мессенджера без настройки аналитики — значит обеспечить дыру в аналитике конверсий от 15 до 40% (смотря какой процент пользователей предпочитают писать в мессенджер). Последствия: неправильно рассчитанные CPL, эффективность рекламных каналов, недостаток данных для оптимизации рекламы по конверсиям и др.

Проблема аналитики конверсий мессенджеров в том, что сообщение в мессенджер — это оффлайн-событие, происходящее за пределами сайта и невидимое для его системы аналитики. А сами мессенджеры имеют весьма убогий функционал для аналитики (а некоторые вообще не имеют).

Можно отследить клик по ссылке мессенджера на сайте, но по статистике моих клиентов только 10-40% кликов заканчиваются сообщением (появлением контакта с пользователем). Это не позволяет использовать клики как эффективный метод отслеживания конверсий.

Решение проблемы

В этой статье я описал, как можно реализовать гораздо более точную аналитику сообщений мессенджеров, анализируя именно сообщения, а не переходы в мессенджеры. Для каких-то мессенджеров это реализовать проще, для каких-то сложнее, а для каких-то и вовсе невозможно (к примеру, для директа Инсты). Я описал схему реализации отслеживания сообщений WhatsApp, Telegram-боты и VK сообщений в группу.

Сразу оговорюсь, что за 5 минут по инструкции такое не настраивается)) И для реализации потребуется уверенное знание PHP/Python и JavaScript (в меньшей степени). Или программист под рукой. По срокам настройки и отладки, по моим ощущениям, 1-4 недели в зависимости от опыта разработчика, кто будет это делать.

Условия и ограничения

  1. Аналитика будет работать только для тех людей, которые переходят в мессенджер кликом по его ссылке на вашем сайте. К примеру, аналитика не сработает, если пользователи будут переходить в мессенджер напрямую, в обход сайта (к примеру, по QR-кодам). Можно настроить и аналитику переходов по QR, но с помощью т.н. bounce-трекинга, включив в цепочку перехода ваш сайт.
  2. В аналитику будет передаваться только факт “начала диалога”:
    1. Для WhatsApp это отправка пользователем заготовленного сайтом сообщения.
    2. Для Telegram — событие /start начала коммуникации с вашим ботом.
    3. Для VK — отправка первого после перехода с сайта в мессенджер сообщения. Другие сообщения в рамках одного диалога (до следующего перехода в мессенджер с сайта) аналитика не увидит.
  3. Потребуется подключение мессенджеров к сервису по обработке сообщений мессенджеров (“сервис коммуникации с клиентами” или “сервис по интеграции с мессенджерами” — об этом ниже). Это доп. расходы в виде абонентской платы и обяжет менеджеров работать именно через этот сервис (либо через вашу CRM, если она интегрируется с этим сервисом) — просто с телефона уже с клиентами будет не початиться. Плюс — история переписки и контакты с клиентами не утекут вместе с уволившимся менеджером и его телефоном, а останется в сервисе (или CRM).
  4. В данной статье не описывается детально механизм передачи оффлайн-событий с помощью CSV-файлов через API Яндекс Метрики, передача событий в GA4 с помощью Measurement Protocol или создание триггеров и тегов в GTM. Трекинг мессенджеров — продвинутая технология (не для новичков в аналитике) и подразумевается, что тот, кто будет реализовывать эту схему, уже имеет навыки работы с аналитическими системами и их документацией.

Что понадобится для реализации

  1. Доступ к GTM на сайте.
  2. Доступ к счетчику Google Analytics (GA4) и Яндекс Метрики.
  3. Сервис по обработке сообщений (далее — Сервис) с функцией отправки вебхуков. Teletype, Wazzup24 и т.п. — есть разные варианты. Главное требование — чтобы сервис мог отправлять все входящие сообщения вебхуками к вам на сервер. Идеально, если вебхуков можно создать несколько — так можно будет реализовать и аналитику, и интеграцию с CRM. Ваши мессенджеры обязательно нужно подключить к этому Сервису.
  4. Мессенджеры (смотря, что используете на сайте):
    1. WhatsApp — нужен доступ к номеру, привязанному к WhatsApp
    2. Telegram — обязательно создать для чата бот, потому что только с ним можно настроить аналитику. И получить ключ API от этого бота (понадобится для подключения его к Сервису).
    3. VK — аналитика будет работать только с сообщениями, отправляемыми сообществу (не личные сообщения, а именно диалог с сообществом). Поэтому нужен будет административный доступ к сообществу, чтобы был доступ к разделу “Настройки -> Работа с API”. Наверняка вы в курсе, но я уточню, что счетчик top.mail.ru, о котором будет идти речь дальше, как раз отвечает за поставку статистики (в т.ч. по конверсиям) с вашего сайта в новый рекламный кабинет ВК и MyTarget.
  5. Сервер (хостинг) для размещения файлов и скриптов обработки данных и общения с API Метрики. Далее “Сервер”.
  6. Доступ к API Яндекс Метрики для передачи оффлайн-конверсий и к счетчику Метрики.

Реализуемая схема

Схема трекинга мессенджеров

Что делает каждый из компонентов:

  1.  GTM:
    1. Размечает все ссылки мессенджеров спец. параметрами (подробнее далее)
    2. По клику на кнопку мессенджера отправляет в аналитику онлайн-событие типа “messenger_click” с названием мессенджера в качестве параметра. Имея в аналитике число кликов по мессенжеру и количество зафиксированных сообщений можно получить % тех людей, которые остаются невидимыми для аналитики и поработать над этим (об этом далее).
    3. По тому же клику на кнопку мессенджера отправляет POST-запросом на Сервер пакет с данными о пользователе: аналитические ID, UTM, источники трафика, посадочную страницу и страницу совершения клика и пр.
  2. Сервис по обработке сообщений мессенджера — отправляет вебхуком на Сервер все входящие сообщения.
  3. Сервер:
    1. Принимает от GTM пакеты с данными о пользователях и сохраняет их в обычный JSON-файл (или в SQL базу данных, если трафик на сайт большой и кликов по мессенджерам на сайте много).
    2. Принимает вебхуки от Сервиса по обработке сообщений, парсит их на предмет наличия аналитического ID и в случае нахождения его, делает запрос к JSON или SQL хранилищу на получение расширенной информации о пользователе по этому ID.
    3. Отправляет событие в GA4 с помощью Measurement Protocol, в Яндекс Метрику в виде CSV-файла по API и в top.mail.ru GET-запросом.

Реализация на стороне GTM

В GTM нужно добавить 1 переменную, 1 триггер и 3-5 новых HTML-тегов:

  1. Триггер, который будет срабатывать при клике на любой из мессенджеров.
  2. Переменную, которая будет определять название мессенджера, по которому кликнули.
  3. Тег отправки в аналитику (у меня главная аналитика — GA4, поэтому я отправляю туда) события клика по ссылке мессенджера с передачей в параметре события названия мессенджера (мне кажется это удобней, чем делать отдельное событие для каждого мессенджера).
  4. Тег отправки POST-запроса с данными о пользователе на сервер в момент клика по кнопке мессенджера. Передаваемые параметры (можно дополнить своими):
    1. gcid = Google Client ID — его же передаем в старте коммуникации мессенджера
    2. gsid = Google Session ID
    3. ycid = Yandex Client ID
    4. page = URL страницы, где произошел клик
    5. landing = посадочная страница, с которой началась сессия
    6. source = utm_source или источник трафика
    7. medium = utm_medium или канал трафика
    8. campaign = utm_campaign
    9. term = utm_term
    10. content = utm_content
  5. Если нужно передавать события мессенджеров в новый рекламный кабинет VK, доработать Тег счетчика top.mail.ru, добавив параметр userId. Пример: top.mail.ru userid
  6. Тег c JS скриптом, который будет после загрузки DOM страницы все ссылки на мессенджеры размечать аналитическими параметрами:
    1. WhatsApp — переделывать ссылки в формате https://api.whatsapp.com/send?phone=your_phone&text=text_with_gcid, где your_phone — номер вашего WhatsApp, куда вы перекидываете пользователя, text_with_gcid — заготовленное сообщение, которое будет содержать аналитический ID (я использую для этого Google Client ID) и текст, который мотивирует пользователя отправить этот текст нам без изменений. Важно получить от пользователя сообщение с аналитическим ID, иначе аналитика не сработает. Пример текста: “Здравствуйте. Пишу вам с сайта yoursite.com. Промокод 1234.5678“, где 1234.5678 — уникальный Google Client ID пользователя. Слово Промокод обычно подразумевает некую выгоду, поэтому пользователь, скорее всего, отправит его. whatsapp text
    2. Telegram — переделать ссылки в формате tg://resolve?domain=your_bot&start=1234_5678, где your_bot — имя вашего бота, подключенного к сервису обработки сообщений, а 1234_5678, как вы догадываетесь, это аналитический ID, в котором “.” заменена на “_”. Это важно, т.к. с точкой Telegram не примет. Я рекомендую использовать ссылки на Telegram именно в формате tg://resolve, а не http, чтобы перекидывать человека сразу в приложение Telegram, без лишних браузерных прокладок. Параметр start будет инициализировать сервисное сообщение /start в боте. Вместе с ним вам будет отправлено скрытое сообщение, записанное после start=. Тем, кто в бот пишут впервые, для этого придется нажать кнопку “Старт”.telegram /start
    3. VK — переделать ссылки в формате vk.me/{group_name}?ref={ref}, если ваша группа открывается по ссылке вида vk.com/{group_name} (например, https://vk.com/leadzilla) или vk.com/write-{group_id}?ref={ref}, где {group_id} – ID вашего сообщества, если ссылка на ваше сообщество выглядит как vk.com/club{group_id}. В качестве {ref} необходимо вставить ID аналитики (в моем примере это 1234.5678)

Реализация на стороне сервера

Тут происходит вся магия обмена информацией. Необходимо написать:

  1. Приемщик данных, отправляемых из GTM, который будет сохранять передаваемые пользовательские данные в хранилище (JSON или БД SQL) на определенный срок и удалять устаревшие данные. json save
  2. Обработчик вебхуков от Сервиса и несколько сервисных методов (классов), которые будут:
    1. Парсить переданное с Сервиса сообщение в поисках аналитического ID; парсинг сообщения
    2. Если ID найден, получать из хранилища данные по пользователю с таким ID; поиск данных в JSON хранилище
    3. Формировать и отправлять в GA4, Яндекс Метрику, Top.mail.ru оффлайн-события с пакетом параметров, полученных из хранилища. отправка событий в GA4 и mailru
    4. * Если используете аналитику на сырых данных, то можно отправлять оффлайн-события также в DWH.

На выходе у вас будет 2 URL — приемщик данных о пользователе из GTM (на этот URL нужно слать данные из тега п.4 настройки GTM) и обработчика вебхуков из Сервиса обработки сообщений мессенджеров.

Реализация на стороне Сервиса обработки сообщений

Здесь все просто. Необходимо настроить исходящие вебхуки на адрес написанного на сервере обработчика. Если позволяет Сервис, чтобы не перегружать ваш Сервер запросами, настройте отправку только для нужных событий.

teletype настройка триггера вебхука

Пример триггеров отправки вебхуков в сервисе Телетайп

В качестве заключения

Собрав эту схему, вы сможете с чистой совестью, подкрепленной дополненной аналитикой, разместить на сайте ссылки на WhatsApp, Telegram и VK и видеть в аналитике атрибутированные конверсии по сообщениям, как если бы вам написали в онлайн-консультант на сайте.

При выборе сервиса обработки сообщений обязательно пользуйтесь тестовым периодом, чтобы протестировать вебхуки и убедиться, передаются ли в них нужные вам данные. К примеру, может оказаться, что по VK будет передаваться только сообщение, но не ref, и тогда вам придется писать прямую интеграцию с VK, используя Callback API сообщества.

Полезные ссылки

  1. Google Analytics Measurement Protocol
  2. Передача оффлайн-конверсий в API Яндекс Метрики
  3. VK документация для разработчиков:
    1. Передача произвольных параметров в сообщении (тут описано про параметры ref и ref_source)
    2. Callback API — для настройки вебхуков на Сервер о новых сообщениях VK. Пригодится, если выбранный Сервис обработки сообщений мессенджеров не будет передавать вам ref и ref_source.
  4. Счетчик top.mail.ru (для нового кабинета ВК и MyTarget):
    1. Передача UserID с сайта
    2. Передача оффлайн-событий (в самом низу)
Олег Рассказов
Олег Рассказов

Специалист по сквозной аналитике и техническому маркетингу. Стек технологий: GA4, GTM, Google BigQuery, SQL, ETL, Looker, Rest-API, JavaScript, HTML/CSS, PHP. t.me/olegrasskazov

Все комментарии

  • Можно также создать страницу спасибо или какой-то подарок. Этот подарок разместить на веб-странице. После подписки в чат боте выдавать ее. Клиент на нее попадает и срабатывает цель. Не надо так глубоко заморачиваться чтобы цель работала правильно) Ка кто так))

    Анатолий 28.03.2024 19:36 Ответить
    • Анатолий, спасибо за интересное замечание. Если вы имеете ввиду вариант с переадресацией человека из мессенджера обратно на сайт, то это вариант тоже рабочий, но менее надежный. Главный вопрос — как мотивировать человека перейти по ссылке, отправленной ему в мессенджер. Можно “купить” его переход неким бонусом, но опять же у всех разные интересы и не каждому этот подарок будет одинаково ценен (не каждый перейдет на сайт). Плюс это лишние затраты для бизнеса.
      Я не утверждаю, что предложенный в статье метод отслеживания — единственно возможный. Но если говорить о погрешностях и точности измерений, то, чем меньше зависимости трекинга от посетителя сайта (чем меньше человеческого фактора), тем лучше. Если у вас есть собранная статистика по конверсии предложенного вами способа трекинга (сколько перешло с сайта в мессенджер и сколько отследилось) — поделитесь, пожалуйста, это интересно.

      Олег Рассказов Олег Рассказов 29.03.2024 15:02 Ответить
  • Годно)

    Юрий Алешин 01.04.2024 13:28 Ответить
  • А как насчёт того, что пользователь мессенджера может полностью заменить уже написанный текст своим содержимым(всегда так делаю), есть статистика/мысли на этот счёт?

    Дмитрий Постольский 08.04.2024 11:59 Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *