Telegram-бот для анализа конкурентов — анализирует соцсети, ищет рекламные объявления

Лонгрид о создании бота @dstat_bot, который экономит время всем, кроме его создателя.

Идея

Работа в рекламных агентствах иногда бывает очень скучной, особенно в период тендеров: необходимо анализировать потенциального клиента и его конкурентов в digital. В частности, анализ часто затрагивает социальные сети.

Самая скучная работа в digital – собирать ссылки

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

— зайти на сайт;

— найти иконки социальных сетей в шапке или в подвале страницы, если их нет, открыть нужную социальную сеть и сделать поиск там.

Затем эти ссылки необходимо внести в системы аналитики, которые соберут данные и через некоторое время выдадут результат.

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

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

А что, если это автоматизировать? Собирать ссылки на соцсети с сайтов — не такая сложная задача.

Костя Карпов, мечтатель и альтруист

Так подумал я и приступил к написанию своего первого парсера на Python. Тестировал на 12 тысячах доменах крупных брендов, представленных в России. Хорошо написанные сайты даже на примитивно написанном коде парсера выдавали ошибку примерно в 2,5% запросов. Это было ОК.

Затем пошла очередь социальных сетей: сбор количества подписчиков, постов, какой-то подсчёт показателей активности. Где-то просто парсинг HTML, где-то подключение по API. И вот в очередном «print» получается желанный json:

{ 'qwery': 'megafon.ru', 'site_data': {'site_vk_url': 'https://vk.com/megafon', 'site_ok_url': 'https://ok.ru/megafon', 'site_twi_url': 'https://twitter.com/megafonru', 'site_tg_url': '', 'site_fb_url': 'https://www.facebook.com/MegaFon.ru/', 'site_ig_url': 'https://instagram.com/megafon/', 'site_yt_url': 'https://www.youtube.com/channel/UClKZW7HmNfW6AD2AI2_X-7Q'}, 'fb_data': {'fb_id': '77840389655', 'fb_count': '158010', 'fb_site': 'https://www.megafon.ru/', 'fb_ad_ig_url': '', 'fb_ad_ig_count': ''}, 'yt_data': {'yt_subscriberCount': '189000', 'yt_videoCount': '741', 'yt_viewCount': '799888083'}, 'ig_data': {'ig_count': '59091', 'ig_follow': '2', 'ig_media': '1600', 'ig_highlights': '16', 'ig_site': 'http://start.megafon.ru/'}, 'vk_data': {'vk_count': 1588480, 'vk_id': 3785, 'vk_verified': 1, 'vk_counters': {'photos': 1553, 'albums': 20, 'videos': 1070, 'audios': 10, 'docs': 99, 'market': 17, 'podcasts': 4, 'articles': 38}, 'vk_site': 'http://www.megafon.ru'}, }

MVP (минимально жизнеспособный продукт)

Вряд ли пользователям сервиса будет удобно получать информацию в виде JSON!

Костя Карпов, человек, который позаботился о пользователях

На ум пришел только один вариант решения безынтерфейсного общения с пользователем — чат-бот, где все делается текстовыми командами, а еще лучше вообще без них: пусть работает по бесконечному циклу «просто введи ссылку и получи результат»:

Да, собираются не только ссылки на социальные сети, но и еще кое-что

В таком виде это было отдано в чат студентов «Академии коммуникаций Wordshop», где я преподавал. Ребятам и девчатам инструмент зашёл сразу: бесплатно, быстро и удобно. А в меня посыпались первые ошибки и проблемы, потому что анализировать начали не дорогие, хорошо сделанные сайты, а всё подряд.

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

А еще правил вывод информации до понятного обычному человеку:

Все равно были вопросы, поэтому пришлось сделать команду /help с пояснениями и возможность задать вопрос напрямую через /question.

Первая 1000 пользователей

Несколько анонсов и взрывной рост!

Костя Карпов, мечтатель

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

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

Пришлось немножко поднажать и сделать анонс в тематическом Telegram-канале…

+1500 новых пользователей за сутки

Представляете, как объемы их запросов расширили список доработок? А количество пользователей все растёт и появляются все новые и новые проблемы.

Например, пришлось сделать распознавание @username — как ссылки на Instagram-аккаунт!

Везде было написано: «Введите ссылку на сайт:», но пользователи упорно вписывали @username, ожидая получить информацию по Instagrma-профилю.

На пару недель вечерняя разработка новых фишек была заморожена. Все время тратилось на цикл «лог → воспроизведение ошибки → исправление ошибки», при этом бОльшая часть проблем возникала по вине разработчиков сайтов: ошибки в кодировке страниц, медленный отклик, плохие ссылки на соцсети (как вам вариант с заменой «/» на «\» в ссылке типа https:\\vk.com\publicname ?).

Еще пользователи часто ошибаются в ссылках или пытаются проанализировать сайты, на которых нет ссылки ни на одну соцсеть!

Пришлось сделать обработку ошибок и добавить какую-то обратную связь

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

Как мотивировать пользователей рекомендовать?

В сервисе появились фанаты: они делали десятки запросов в сутки.

Прямо так и начинали часов в 11–12 вечера, а заканчивали в 5–6 утра, отсыпались и снова начинали работу, но ни один из них в своих социальных сетях не порекомендовал бесплатный инструмент.

Поэтому пришлось применить некоторые ограничительные меры.

Как думаете, что в первую очередь стали делать пользователи?

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

Я понимал, что в СНГ за SaaS не принято платить, но чтобы даже не делились и не рекомендовали...

Константин Карпов, человек, который не удивлен

Увы, бесплатное люди не ценят, а подобные pet-project — это скорее хобби по созданию инструментов, упрощающих собственные рабочие процессы, чем возможность перехода к монетизации в том или ином виде.

Что умеет бот сегодня?

  • Находит ссылки на популярные соцсети на сайте, заходит на них и выдает основные показатели.
  • Умеет разворачивать цепочки ссылок: например, пользователь вводит Instagram, там есть ссылка на сайт, а на сайте есть ссылки на остальные соцсети — бот пройдет и найдет все.
  • Анализирует соцдем и географию подписчиков сообществ «ВКонтакте».
  • Анализирует топ-постов «ВКонтакте» за прошлый месяц и делает эстимацию рекламного бюджета, потраченного на продвижение открытых постов.
  • Выдает ссылку на активные объявления в Facebook и Instagram.

Пример ответа бота сегодня:

Запрос: sberbank.ru Сайт: http://sberbank.ru Одноклассники: https://ok.ru/sberbank Twitter: https://twitter.com/sberbank Вконтакте: https://vk.com/sberbank Официальное сообщество?: Да Основная ссылка: sberbank.ru Подписчики: 2920252 Мужчин: 50% Женщин: 50% Из России: 85% Из Москвы: 8% До 18: 10% 18-24: 26% 25-34: 34% 35-44: 16% Старше 45: 14% Фотографий: 7341 Фотоальбомов: 36 Видеозаписей: 411 Статей: 11 Документов: 1 Вконтакте стена за прошлый месяц: Всего постов: 39 Самые охватные посты: https://vk.com/wall-22522055_1908552 Показов: 20906753 Действий: 75198 IR: 0.36% https://vk.com/wall-22522055_1901999 Показов: 9822032 Действий: 2263 IR: 0.02% https://vk.com/wall-22522055_1911252 Показов: 1041283 Действий: 412 IR: 0.04% VR: 18.80% Продвигаемых постов: 9 Рекламный бюджет: 2563241 руб. Рекламный IR: 0.067% Facebook: https://www.facebook.com/bankdruzey Основная ссылка: https://t.me/sberbank Подписчиков: 434548 Реклама: https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=ALL&impression_search_field=has_impressions_lifetime&view_all_page_id=139263432837591 Instagram: https://instagram.com/sberbank Подписчиков: 375077 Instagram: https://www.instagram.com/sberbank Официальное сообщество?: Да Основная ссылка: http://sber.me/?p=Fvb9h Подписчиков: 375077 Подписок: 2 Всего постов: 1226 Highlights: 11 Лучший пост из последних: 12 c 12/06/2020: https://www.instagram.com/p/CBntxZkKj6W/ Действий: 4980 ERpost: 1.328% Av. ER: 0.679% YouTube: https://www.youtube.com/channel/UCM4aBRnEiNCf9fQFl2qx2Bg Видеозаписей: 893 Просмотров: 312246672

Как итог

Python удивительно простой и легкий в усвоении язык, огромное спасибо Дмитрию Родину и его курсу по Python, который я прошел около года назад.

Часть бота, которая взаимодействует с пользователями, была сделана на классном и очень гибком конструкторе чат-ботов — Salebot.

Спасибо всем, кто шерил и шерит бота в своих социальных сетях: Петр Костюков даже видео снял, а первые 500 пользователей пришли от Андрея Фрольченкова,

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

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

0
34 комментария
Написать комментарий...
Елена Житарева

Круто! 
Про монетизацию: есть сервис с подобной идеей у Анастасии Юговой, он анализирует страницы и группы вконтакте.
Используют в качестве лидмагнита, бесплатной ценности - затем предлагают воспользоваться другими их услугами /продуктами/ приглашают на мероприятия. 
то есть этот сервис решает задачи сбора базы и увеличения лояльности аудитории) 

успехов вам, побольше реализованных идей и вдохновения))

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Посмотрел, у меня запланировано примерно такое же – рекомендации и больше пояснений.

Ответить
Развернуть ветку
Dmitriy Grazhdankin

Полезная вещь. Обратите внимание, что в facebook подписчики перепутаны с лайками сообщества.

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Правильнее переформулировать или изменить показатель?

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

Ответить
Развернуть ветку
Dmitriy Grazhdankin

Константин, проверьте мой сайт viasun.ru. Относительно FB у меня 517 подписчиков и 300 лайков, так бывает.

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Заменил на "Нравится". Не уверен, конечно, что так правильно с т.з. унификации, но корректнее будет точно.

Ответить
Развернуть ветку
Александр Романов

Мне это не нужно, но просто спасибо)

Ответить
Развернуть ветку
Dmitriy Strukov

Если есть способ пользоваться продуктом бесплатно, то люди пойдут самым простым способом.

Ответить
Развернуть ветку
Yevhenii Oliinyk

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

Ответить
Развернуть ветку
Konstantin Karpov
Автор

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

Ответить
Развернуть ветку
Yevhenii Oliinyk

Код многих "професиональных" разработчиков нельзя никому показывать) Часто бывает мысль написать какой то инструмент, но думаешь - "та он никому не надо будет", а потом через некоторое время вижу,  появился сервис который это выполняет эти задачи и это людям реально нужно

Ответить
Развернуть ветку
Elena Ishchuk

а у меня наоборот - идей куча, а технически только обучаюсь!!! )))

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Текущий список поддерживаемых платформ:
✅ Facebook
✅ Instagram
✅ YouTube
✅ Вконтакте
✅ Одноклассники
✅ TikTok
✅ Tripadvisor
✅ Дзен.Яндекс
✅ Apple App Store
✅ Google Play

Ответить
Развернуть ветку
Roman Litvinov

Супер! Какое среднее число активных пользователей в сутки? Планируешь ли популяризовать бота не только в СНГ? 

Ответить
Развернуть ветку
Konstantin Karpov
Автор

По среднему плохо считать: в выходные и по понедельникам почти по нулям – несколько сотен запросов, в начале месяца – локальные пики в тысячи запросов, все логично в целом.
Локализовать бота легко, а вот зачем – не понимаю. Это простой относительно скрипт/инструмент, который не может стоить денег.

Ответить
Развернуть ветку
Nikolay Kapustin

Где хостили бек?

Ответить
Развернуть ветку
Konstantin Karpov
Автор
Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор

1) Не долго думал об этом, поскольку это экспресс-анализ, то убрать, чтобы сократить объем сообщения – логичный шаг. Пустые строки – это разделитель между соцсетями.
2) domainname.com – превью и универсальности мало для соцсетей, на мой взгляд удобнее, если пример можно ввести и получить живой результат.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Это не то, как работает бот сейчас – это ранняя dev-версия)

Зависит от названия вашего сайта)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Если дочитать статью до конца, то можно увидеть как это сейчас работает: "Пример ответа бота сегодня:")

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор
Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Я бы тоже, но идея в унификации: "Основная ссылка" есть в FB, IG, VK и будет в TWI, OK, TikTok, Яндекс.Дзен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Егор Наркизов

Пушка

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Konstantin Karpov
Автор

Писать хорошую автоматическую проверку публикации для всех соцсетей часа 4) их я лучше потрачу на улучшения, а пока это в ручном режиме, а работает почти также, как вы описали)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Яков Левин

Спасибо

Ответить
Развернуть ветку
Жан Грудачёв

Спасибо за инструмент. Я диджитал маркетолог, с упором на упаковку проекта. Сервис оhень нужен, тк сам составляю такие карты ссылок. Покажите пожалуйста в боте примеры поиковой выдаhи, примеры сайтов и как с ботом работать

Ответить
Развернуть ветку
31 комментарий
Раскрывать всегда