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

Продвижение бота на 214 тысяч процентов

Время на прочтение 4 мин
Количество просмотров 4.3K

Примерно с начала декабря провожу эксперимент по продвижению (если угодно - хайпу) в Твиттере своего бота. Результаты мне нравятся. Возможно кому будет интересно как почти при нулевом бюджете сделать эффективную рекламную кампанию в сети. Скриншоты, статистика, части кода и рассказы ниже. 

Теория 

По моему мнению реклама в сети скоро будет активно осваивать короткие звуковые споты. Всё чаще люди начинают слушать интернет, а не только его смотреть. Интернет-радио, Spotify, iTunes и множество других служб для "прослушки" сети очень быстро внедряются в массовое употреблением. Даже Твиттер вывел на рынок звуковые твитты. Росту значения звука способствует и рост числа индивидуальных устройств для прослушивания - наушники стали обыденным явлением и значит звуковая реклама может быть индивидуализированна и подана отдельному человеку в зависимости от его предпочтений как и традиционная контекстная реклама.  

Практика 

О своём боте для звукодзи я уже писал в статье на Хабр.

В начале декабря я добавил к нему функцию озвучки гифок и картинок. То есть нужно послать боту изображение в виде файла, а потом голосовое сообщение. Бот вернёт короткий спот видео, который можно уже вставить куда угодно. Мы проводили эксперименты с размещением готовых видео роликов в Твиттере чтобы оценить реакцию пользователей и их "вовлечённость".  

Чтобы бот работал корректно в социальной сети во время тестирования были обнаружены и устранены некоторые проблемы. В частности: 

  • Обрезка по времени. 

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

Объяснение кода

Функция вырезана из класса.

Для обработки звуков/видео используется ffmpeg

PWF --> место хранение файлов для последующий обработки

cmd --> это переименованная функция system встроенной в python библиотеки os

В функции connect_video_voice соединяется звук, и видео.

Также есть функция по соединению звука и картинки.

def connect_photo_audio(self,imagepath, audiopath, name=urandom(30).hex()):    
  targetvideotype = "mp4"    
  cmd(f'ffmpeg -y -loop 1 -i "{imagepath}" -i "{audiopath}" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pixfmt yuv420p -shortest -vf "scale=trunc(iw/2)2:trunc(ih/2)2" "{self.PWF}/{targetvideotype}/{name}.{targetvideotype}"')    
  return f'{self.PWF}{targetvideotype}/{name}.{targetvideo_type}'

def connect_video_voice(self,videopath, audiopath, name=urandom(30).hex(),):
  sourcevideotype = "mp4"
  cmd(f'ffmpeg -streamloop -1 -i "{videopath}" -i "{audiopath}" -shortest -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -y "{self.PWF}/{sourcevideotype}/{name}.{sourcevideotype}"')    
  return f'{self.PWF}/{sourcevideotype}/{name}.{sourcevideo_type}'
Логика обрезания

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

f"ffmpeg -stream_loop -1 -i "{video_path}" -i "{audio_path}" -shortest -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -y "{self.PWF}/{source_video_type}/{name}.{source_video_type}"
  • Ограничение по времени 

     

Чтобы пользователь не записывал слишком длинные видео, не перегружал систему ради своих приколов да и для того чтобы избежать случайных нажатий я предусмотрел ограничение по времени в одну минуту кодом:  

Пояснение о коде

Для работы с телеграммом используется PyTelegramBotAPI

После получения голосового сообщения, в message.voice хранится информация о нем. В том числе хранится и duration, в ней хранится длительность голосового сообщения.

if message.voice.duration > 60:
  self.BOT.send_message(message.fromuser.id, "Your message too long. Max size of message: 1 minute")    
  return

Внедрение 

Бот был активно использован для одного свежего "чистого" аккаунта в сети Твиттер без фоловеров. На скриншотах видны два читателя - это те, которые сами присоединились по своей инициативе. Никаких "раскруток" или подобных действий для статистики не предпринималось. Мне было самому интересно сможет ли такая своеобразная реклама без бюджета  бота в сети обеспечить рост его известности.  

Ежедневно мы публиковали несколько твиттов с внедрённым видео. Вот статистика просмотров 

Статистика в Твиттер

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

Объяснение кода

get_users_graphic__activity__ функция, которая вызывается при команде /activity к боту.

Здесь идет проверка на доступы, если пользователь написавший боту /activity не занесен в базу данных как админ, или же как helper, то в графике ему будет отказано.

create_graphic_activity --> функция, которая строит графики на основе функции которая получает данные о пользовательской активности в боте.

limit--> переменная, используемая для указания лимита возвращаемой активности в дня. По умолчанию limit имеет значение Продвижение бота с услугами через твиттер

/activity 3 вернет график активности за последние 3 дня.

def get_users_graphic__activity__(self):
    if self.MESSAGE.chat.id in HELPERS or self.MESSAGE.chat.id == ADMIN_USER_ID:
        graphic = create_graphic_activity()
        if graphic:
            try:
                limit = int(re.sub('\D', '', self.MESSAGE.text))
            except Exception:
                limit = 7
            self.BOT.send_photo(self.MESSAGE.chat.id, photo=create_graphic_activity(limit=limit))
        else:
            self.BOT.send_message(self.MESSAGE.chat.id, LANGUAGES["commands"]["server_crashed"])
    else:
        self.BOT.send_message(self.MESSAGE.chat.id,LANGUAGES["commands"]["you_not_have_permissions"])

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

В планах

Возможно некоторым рекламодателям уже можно использовать моего бота для продвижения своих товаров и услуг. Можно включать свой логотип или изображение товара в картинку или дополнять слоганом звуковое сообщение. Я пока продолжу совершенствовать функционал программы. В ближайшее время я планирую дополнить бота функциями выравнивания по силе звука и перезаписью дублей. Если для перезаписей дублей код не трудно дописать, то выравнивание силы звука - нетривиальная задача, поскольку для рекламных целей как раз изменение силы звука может быть "цепляющим" внимание фактором. 

Теги:
Хабы:
-14
Комментарии 4
Комментарии Комментарии 4

Публикации

Истории

Работа

Data Scientist
66 вакансий
Python разработчик
130 вакансий

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн