Как стать автором
Обновить

Telegram-bot + Google Analytics

Время на прочтение3 мин
Количество просмотров18K
Приветствую хабравчане. Хочу рассказать о том, как мы прикручивали Google Analytics к телеграмм-боту, с какими столкнулись проблемами, и что в итоге пока не получилось настроить.

По старинке Google Analytics устанавливается на сайт с доменом или в приложение с SDK. Погуглив тему, стало понятно, что примеров нет, поэтому решили сделать сами. В нашем случае не было сайта или мобильного приложения, но было желание отслеживать события в Телеграм боте. И частично это получилось сделать.

Проблема №1


Боты физически находятся по адресу t.me/benice_tools_bot. Это похоже на обычный сайт, но без прямого доступа к корневым файлам, для установки кода счетчика, и настройки событий.
Фронтенд в этом случает является сам Телеграм, к которому у нас нет доступа.

Наш бот работает с API Binance и API Телеграма, и соответственно есть бекэнд, через который стало возможно маневрировать c настройками аналитики.

В Google Analytics создали счетчик «для сайта», и прописали события с параметрами “Action, Label, Category”. Подробные настройки описываются на десятках сайтов. И после этого появилась первая проблема. 

Стандартными гугловскими методами не получалось разместить цели в боте, не было доступа к фронту.

На помощь пришла библиотека, которая позволила передавать и обрабатывать с бекэнда параметры событий.

После настройки, начали тестировать работоспособность метода, и получили первый успех. Выполненные события стали отображаться в Google Analytics, в режиме “реального времени” было видно, сколько людей онлайн в боте, и остальные данные.

image image

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

Но некоторые ошибки все равно были. Например не правильно определялся тип устройства, отображался “Настольный компьютер”, даже если использовать Телеграм с мобильного устройства. Геоположение указывало только на Грецию, потому что сервер с ботом находился в этой стране. Демография, интересы, браузеры и ОС, отображались как "(not set)".

Проблема №2


Мы создавали промо-ссылки, которые при активации давали доступ к платным функциям на 7 дней. И переходы по этим ссылкам нужно было связать с Google Analytics, что бы анализировать рекламные кампании.

По умолчанию Google Analytics сам генерирует id пользователя или оставляет без этого параметра. Однако, можно самостоятельно создавать custom id, и отправлять это в Гугл. 

Этим методом мы и воспользовались. Создали учет пользователей через зашифрованный userId нашей системы.

Телеграм передаёт мета-данные при старте бота. Это работает также, как и привычные utm метки.
В ссылку, для рекламной кампании, вставляется метка после start. 

Например:

http://t.me/benice_tools_bot?start=habrahabr

При старте бота мы парсим параметры для старта, и принимаем их за конкретную кампанию.
На бэкенде, в профиле пользователя, будет информация о том, что он пришёл по конкретной кампании campaign_habrahabr.

Оставалось конктретизировать нашего посетителя(visitor) в коде:

if (!code) code = "organic";
const visitor = ua(googleAnalyticsProjectId, `token:${code};CLIENTID:${saltUserId}`, { strictCidFormat: false });
visitor.event(category, action, label).send();

Если пользователь пришёл сам, без рекламной кампании, то этот источник распознается как «organic».

Таким образом, получилось анализировать срабатывание целей от конкретного пользователя, пришедшего с рекламной кампании.

image

image

P.S.


Все звонки в Google Analytics заканчивались недоумением со стороны поддержки. При первых звонках, когда ещё ничего не работало, никаких подсказок не удавалось получить. А когда события уже передавались в аналитикс, то поддержка брала 15 минутный перерыв “уточнить детали” вопроса, и возвратившись, сами начинали задавать вопросы: “Как вы это сделали?”.
Теги:
Хабы:
+8
Комментарии3

Публикации

Изменить настройки темы

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн