Перелив трафика между соцсетями — то еще удовольствие. Кажется, что все просто: сделай себе что-то тематическое, но с уникальным контентом — и все. Однако на деле обычно все получается немного иначе, и даже на идеально сделанные каналы пользователи подписываться не спешат. Почему? Да потому, что их и так все устраивает. Значит, нужно им помочь в этом!
Одним из методов реализации подобной задачи является воронка с тизером и продолжением после целевого действия. Такие воронки могут быть реализованы самыми разными способами, но в данной статье речь пойдет о переливе трафика с помощью трейлеров к фильмам и Telegram-бота. Но сначала пара слов о самой воронке для тех, кого подобное обошло стороной.
Принцип используемой воронки
Подобные воронки достаточно просты в исполнении:
- Тизер с фрагментом из фильма (или любой другой формы контента) публикуется в «донорской» социальной сети.
- В описании или комментариях размещается ссылка/название телеграм-бота, код для идентификации запрашиваемого контента и призыв получить фул с его помощью.
- При переходе и вводе кода пользователь получает уведомление о необходимости подписаться на указанные каналы.
- После подписки он получает фул.
Казалось бы — зачем на это вестись? Но на маркетинг от Apple же ведутся — не судите своего покупателя по себе. Кроме того, данная воронка, если посмотреть на нее непредвзято, имеет ряд плюсов:
Быстроту продвижения — на все про все уходит не более 10 секунд.
Бесплатность — а халяву все любят.
Возможность дифференцирования — вы можете самостоятельно выбирать пару «фильм — паблики для подписки», что, в свою очередь, повысит конверсию.
Принцип работы антиспам-бота для Telegram
Концептуально данный бот устроен несложно — он выводит название фильма в ответ на введенный код, предварительно проверяя, подписан ли пользователь на продвигаемые Telegram-каналы.
Алгоритмически же бот делает следующее:
- Прослушивает собственные ЛС в ожидании сообщений от юзеров.
- При поступлении нового сообщения актуализирует словарь кодов и словарь пабликов, загружая их из файлов.
- Затем бот загружает списки юзеров из продвигаемых пабликов.
- После чего он считывает ИД юзера и проверяет его присутствие в этих списках.
- Если юзер присутствует по всех пабликах — выдает ему название фильма в соответствии с кодом.
- Если юзера нет в каком-то из пабликов — выводит список продвигаемых каналов с призывом подписаться.
- Если юзер подписан, но ввел код, которого нет в словаре, — оповещает юзера о том, что он ввел ошибочный код.
Как видите, ничего сложного. Более того, этот алгоритм при желании можно доработать, сделав дифференциацию пабликов по фильмам. Чтобы, например, при вводе кода, соответствующего романтической комедии, выводились паблики для женской ЦА, а если код соответствует условному боевику — для мужской. Суть упрощена, но, надеемся, схема разделения ЦА понятна.
Пошаговая инструкция, как создать бота для перелива трафика в Telegram
Данный бот, несмотря на кажущееся отсутствие необходимости в использовании user_api, все же будет использовать и его. Это необходимо для корректного считывания подписчиков в продвигаемых пабликах. Так что нам снова придется авторизоваться через api_id и api_hash. Однако, кроме этого, нам понадобится и классический bot_token из BotFather. В общем, делаем следующее:
- Заходим в кабинет веб-версии.
- Жмем на «API development tools», вносим свои данные в форму.
- Сохраняем полученные api_id и api_hash в текстовый редактор.
- Стучимся в ЛС к официальном боту Telegram @BotFather — делаем по его инструкции то, что он говорит.
- Создаем имя бота по указанной инструкции от @BotFather. Имя не должно нарушать правила Telegram и должно иметь в конце _bot. Если все корректно, @BotFather выдаст токен — сохраняем его в текстовый редактор.
- Добавляем профиль нашего бота в администрацию каналов, которые вы планируете раскручивать. После завершения РК его можно убрать из админки.
Далее нам понадобится настроить свой Python-сервер под работу с API Telegram. - Вводим для этого в консоли:
pip install asyncio
pip install telethon - Затем переходим в корень сервера. Создаем там файл filmes.py
- Вставляем в этот файл следующий код:
from telethon.sync import TelegramClient, events
from telethon.tl.functions.channels import GetParticipantRequest, GetParticipantsRequestfrom telethon.tl.types import ChannelParticipantsSearch
# Замените 'YOUR_API_ID', 'YOUR_API_HASH' и 'YOUR_BOT_TOKEN' на свои значенияAPI_ID = 'ВАШ API_ID'
API_HASH = 'ВАШ API_HASH'
BOT_TOKEN = 'ВАШ BOT_TOKEN'
# Создаем объект клиентаclient = TelegramClient('bot', API_ID, API_HASH).start(bot_token=BOT_TOKEN)
# Словарь кодов фильмовfilms_dict = {}
with open('films.txt', 'r', encoding='utf-8') as file:
for line in file:
code, title = line.strip().split(':')
films_dict[code.strip()] = title.strip()
# ID пабликов, на которые нужно подписаться для доступа к названиям фильмовpublic_ids = []
with open('public_ids.txt', 'r', encoding='utf-8') as file:
for line in file:
public_ids.append(line.strip())
# Функция для проверки подписки на пабликasync def check_subscription(user_id):
subscription_info = {}
for public_id in public_ids:
try:
chat = await client.get_entity(public_id)
participant = await client(GetParticipantRequest(chat, user_id))
if participant:
subscription_info[public_id] = True
else:
subscription_info[public_id] = False
except Exception as e:
print(e)
subscription_info[public_id] = False
return subscription_info
# Обработчик сообщений@client.on(events.NewMessage)
async def echo(event):
sender_id = event.sender_id
code = event.message.text.strip()
# Проверяем подписку на паблики
subscription_info = await check_subscription(sender_id)
print("Подписка на паблики:", subscription_info) # Отладочный вывод
# Проверяем подписку на каждый паблик
subscribed = all(subscription_info.values())
# Если пользователь подписан на все паблики
if subscribed:
# Проверяем код фильма и отправляем название фильма, если код найден
if code in films_dict:
await event.respond(films_dict[code])
else:
await event.respond('Код не найден. Попробуйте еще раз.')
else:
# Призываем подписаться на паблики, если пользователь не подписан на них
await event.respond('Пожалуйста, подпишитесь на необходимые паблики:\n' + '\n'.join(['@' + public_id for public_id in public_ids]))
# Запуск ботаclient.run_until_disconnected() - Вставляем вместо ВАШ API_ID, ВАШ API_HASH и ВАШ BOT_TOKEN — свои, которые сохраняли в текстовом редакторе в шагах 3 и 5.
- Сохраняем filmes.py
- Создаем файл films.txt и вносим в него список кодов и названий фильмов по следующему шаблону (код может быть любым — не обязательно 5-значным):
12345: Название фильма 1
67890: Название фильма 2 - Сохраняем films.txt
- Создаем файл public_ids.txt и вносим в него список каналов, которые будут продвигаться, по следующему шаблону (не рекомендуем вносить больше 3 каналов за раз — конверт ОЧЕНЬ просядет. Оптимально 1-
TESTtrafficcardinal
TESTtrafficcardinal2
TESTtrafficcardinal3 - Запускаем бот командой python filmes.py — так как бот использует не только bot_api, но и user_api, Telegram вышлет запрос на авторизацию. В консоли появится надпись «Please enter your phone (or bot token)», нужно будет ввести номер, к которому привязана страница администратора продвигаемых пабликов. Затем Telegram пришлет код — в консоли будет написано «Please enter the code you received», вам останется ввести его и нажать Enter.
Теперь бот запущен, прошел авторизацию и готов к работе.
Демонстрация работы
Подводя итоги
Как видите, создать бота для перелива трафика в Telegram совсем несложно. А если проявить немного фантазии и «поиздеваться» над воронкой — можно существенно расширить его возможности без редактирования самого кода. На этом у нас все, следите за нашим телеграм-каналом, чтобы первыми узнавать о выходе новых ботов и другой полезной инфы.