Telegram analytics bot как пользоваться

Приветствую, читатель! Хочу рассказать о том, как удалось прикрутить гугл аналитику к Telegram боту на aiogram.

В качестве примера будет использоваться python + aiogram, но здесь описывается взаимодействие с api аналитики посредством обычных http запросов. Так что статья актуальна для любого языка.

Немного теории

Дело в том, что гугл объявил о закрытии Universal Analytics и полном переходе на Google Analytics 4. Погуглив стало ясно что инфы про новую аналитику крайне мало, а о её работе с питоном инфы в принципе нет.

Первая проблема связанна с тем, что гугл аналитика предназначена для того что бы отслеживать сайты посредством встраивания трекера во фронтэнд или приложение с SDK.

Бот находится по адресу t.me/BSC_TokenExplorer_Bot (Он позволяет проверять баланс крипто-кошелька в сети BSC, но сейчас не об этом). Его можно добавить как «сайт», но встроить счетчик аналитики просто так не выйдет, так как фронтэндом является сам телеграм, а мы лишь пишем бекэнд и взаимодействуем через Telegram bot API.

Продвижение своих телеграмм каналов с помощью Telegram Analytics.

Очевидно, из-за этого обстоятельства нам не подходят стандартные способы сбора аналитики. А так же любые библиотеки, которыми так славится питон, являются устаревшими из-за перехода на новую версию.

На помощь приходит Measurement Protocol API. Эта функция всё еще находится в бете, но гугл обещает не вносить значительных изменений на данном этапе, однако существуют ограничения, которые планируют исправить к моменту релиза.

Здесь стоит обратить внимание, что Measurement Protocol существовал и ранее, но его значительно изменили, и теперь есть две версии документации, вот актуальная.

Еще по теме:  Кто может отправить Телеграмму

Перейдем к коду

Для того что бы зафиксировать событие нам нужно оправить следующие данные:

f’https://www.google-analytics.com/mp/collect?measurement_id=»» Send record to Google Analytics «»» params = < ‘client_id’: str(user_id), ‘user_id’: str(user_id), ‘events’: [< ‘name’: action_name, ‘params’: < ‘language’: user_lang_code, ‘engagement_time_msec’: ‘1’, >>], > async with ClientSession() as session: await session.post( f’https://www.google-analytics.com/’ f’mp/collect?measurement_id=https://temofeev.ru/info/articles/telegram-bot-na-aiogram-google-analytics-4/» target=»_blank»]temofeev.ru[/mask_link]

Как с нуля разработать систему аналитики для телеграм бота?

P.S. Будет много метрик и показателей. Продакты, проджекты и бизнес-аналитики — сильно не бейте!

Эту статью нам помог написать наш аналитик Евгений Гончареня.

Зачем проекту нужна была собственная аналитика?

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

Если отойти от лирики, то мы решали одну простую задачу — понять, что происходит с продуктом и куда его дальше развивать. Аналитика должна была помочь нам определить наши слабые места, увидеть что интересно пользователям, а что нет. А главное, понять как нам монетизировать наш проект и насколько мы далеко от сходимости юнит экономики.

Продвижение своих телеграмм каналов с помощью Telegram Analytics

Попытка не пытка =)

Google Analytics для телеграм бота

На Хабре уже есть несколько статей про телеграм бота. Но как же следить за использованием бота? Под катом собираем данные для оценки наиболее используемых функции бота, эффективности кампаний и показателей отказа.

Сперва небольшая ремарка. Я не являюсь ни аналитиком, ни seo-специалистом. Возможно, некоторые задачи можно решить эффективнее, но об этом крайне мало информации. Так сложилось, что наши коллеги за океаном наотрез отказались работать с продуктом Яндекса botan и требовали знакомый интерфейс “как в google analytics”. Было решено использовать google analytics measurement protocol.

Еще по теме:  Идеи стикеров для Телеграмма

С его помощью можно передавать почти все те же данные в google analytics, что и обычным образом (например, скриптом на сайте).

Если ваш бот написан на laravel, мы можем посоветовать пакет irazasyed/laravel-gamp для работы measurement protocol.

Как пользуются ботом?

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

На самом деле это один шаг диалога с кнопками и 6 отдельных шагов настройки конкретных параметров. Эту структуру можно представить в виде адресов:

  • /settings
  • /settings/gender
  • /settings/frequency
  • /settings/language

use IrazasyedLaravelGAMPFacadesGAMP; . $gamp = GAMP::setClientId( ‘123456’ ); $gamp->setDocumentPath( ‘/settings’ ); $gamp->sendPageview(); .

Откуда появляются новые пользователи?

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

Но есть одна хитрость. У нас уже имелся инструмент для передачи аналога utm_campaign в Google Analytics.

Телеграм дает возможность начинать диалог с пользователем не с чистого листа. Когда пользователь нажмет на кнопку “start” в приложении телеграма, бот получает сообщение “/start”. Это сообщение можно расширить дополнительным параметром. Каждый бот имеет ссылку, которая открывает чат с ним в телеграмме — telegram.me . К этой ссылке можно добавить параметр “start” (или “startgroup”), например:

https://telegram.me/bot_name?start=habr-gamp

В данном случае мы можем передать в аналитику источник “habr” и даже уточнить его каналом “gamp”.

if($campaign)< if(strpos($campaign,’-‘))< list($campaign,$medium) = explode(‘-‘,$campaign); $gamp->setCampaignMedium($medium); > else< $gamp->setCampaignMedium(‘none’); > $gamp->setCampaignSource($campaign); >

С этого момента мы можем следить за успешностью рекламных компаний:

Что делать, если пользователь заблокировал бота?

При очередной отправке сообщения вы можете столкнуться с неприятной ситуацией — пользователь заблокировал бота. Как это отразить в аналитике? На самом деле мы не можем отдать аналитеке просмотр страницы “/unsubscribe” или подобной, т.к. пользователь сейчас находится в другом состоянии (на другой ”странице”). Но gamp поддерживает и события. Соответственно, отправляем ему событие о блокировке пользователя.

Еще по теме:  В Телеграмм запрашивать 6 значный пароль

use IrazasyedLaravelGAMPFacadesGAMP; . $gamp = GAMP::setClientId( ‘123456’ ); $gamp->setEventCategory(‘User’) ->setEventAction(‘Unsubscribe’) ->setEventLabel(‘Blocked’) ->sendEvent(); .

География использования бота

Т.к. все сообщения приходят с одного и того же сервера, его географическая принадлежность практически не имеет значения. Нам интересно распределение аудитории бота. Принципиально мы можем узнать о местоположении пользователя двумя способами: по присланной геолокации или по его ip.

    У api google карт есть замечательный сервис геокодирования и, в частности, обратного геокодирвоания. Соответственно, остается отдать в аналитику соответствующую страну:

$gamp->setGeographicalOverride($oChat->country);

В таком случае уже не обязательно выяснять, какой стране принадлежит ip, google умеет это делать самостоятельно.

$this->gamp->setIpOverride($oChat->last_ip_address)

Внимательный читатель мог заметить, что по каким-то причинам Гренландия имеет почти столько же сеансов, что и Россия. Дело в том, что это маленькая хитрость. Не все пользователи переходят по ссылкам или отправляют свою локацию. Поскольку для нас важно понимать не только географическое расположение, но и сколько пользователей нам его не предоставили, мы решили всех кто еще не успел рассказать о своем местоположении считать в крупной, но малонаселенной Гренландии.

  • telegram bots
  • google analytics

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...