Dating бот для получения трафика и конверсий прямо в telegram (v.1.0)
Хочу рассказать о своём способе работы с телеграмом для получения dating трафика.
Несколько лет назад прочитал про телеграм дорвеи, как перспективном способе получения УБТ и решил попробовать.
Зарегал несколько аккаунтов и наделал простых каналов с постами в виде картинки, текста и ссылки для перехода в ПП.
Трафик пошел, конверсии,- иногда сразу же, иногда через пару дней, некоторые не пошли вовсе.
Со временем и с получением опытом, понял, что наилучшая конверсия будет, если пользователь не будет переходить по внешней ссылке из телеграма в браузер, а оставаться и совершать конверсии в самом мессенджере.
Поэтому, сначала сделал dating бота, где пользователь при запуске получает доступ к тексту с изображениями и ссылками под ними, вроде таких:
А чтобы при нажатии кнопки для перехода в ПП юзер остался в телеге, я сделал, чтобы все ссылки открывались в webapps внутри самого бота во всплывающем окне.
Так юзер может сделать регистрацию, не выходя из мессенджера, что весьма положительно сказалось на конверсии.
Чем ещё хорош бот - мы божем собрать id пользователей, которые его запустили и сделать по ним абсолютно легальную рассылку, без всяких лимитов и с любым оффером, без риска быть забаненным телегой.
import telebot
import random
import os
from telebot import types
# Придумываем профили соцсетей и имена с возрастом:
NAMES1 = ('Sarah 27 years', 'Diana 26 years', 'Alice 25 years', 'Julliet 23 years')
CONTACT1 = ('💝instagram.com/f****', '💝twitter.com/x****', '💝facebook.com/d****')
NAMES2 = ('Milka 32 years', 'Paula 34 years', 'Keshia 35 years')
CONTACT2 = ('💝instagram.com/*g***', '💝facebook.com/**l**', '💝twitter.com/***d*')
# Получаем токен бота в @BotFather:
bot = telebot.TeleBot('токен')
@bot.message_handler(commands=['start'])
def startpg(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add('❤ GIRLS ❤') # Добавляем первую кнопку
keyboard.add('💋 WOMEN 💋') # Добавляем вторую кнопку в новой строке
bot.send_message(message.chat.id, 'Welcome!\nChoose your preference:', reply_markup=keyboard)
# Отправляем chat_id пользователя в канал
chat_id = message.chat.id
channel_id = '-100..........' # Укажите #@имя канала или id
bot.send_message(channel_id, f"Пользователь {chat_id} запустил бот @ВАШbot") # Отправляем сообщение в канал
@bot.message_handler(content_types=['text'])
def base(message):
##########GIRLS#######################
ListOfImage1 = os.listdir('girls')
photoName1 = random.choice(ListOfImage1)
##########GIRLS#######################
##########WOMAN#######################
ListOfImage2 = os.listdir('woman')
photoName2 = random.choice(ListOfImage2)
##########WOMAN#######################
# Выбор при запуске бота:
if message.text == '❤ GIRLS ❤':
buttons = types.InlineKeyboardMarkup()
but_1 = types.InlineKeyboardButton(text=random.choice(CONTACT1), web_app=types.WebAppInfo(url="Ваша партнерская ссылка"))
but_2 = types.InlineKeyboardButton(text='MY PROFILE', web_app=types.WebAppInfo(url="Ваша партнерская ссылка"))
but_3 = types.InlineKeyboardButton(text='BOT RESTART', url='https://telegram.me/вашbot?start=url')
buttons.add(but_1)
buttons.add(but_2)
buttons.add(but_3)
bot.send_photo(message.chat.id, open('girls/' + photoName1, 'rb'), caption=random.choice(NAMES1), reply_markup=buttons)
ListOfImage1.remove(photoName1)
elif message.text == '💋 WOMEN 💋':
buttons = types.InlineKeyboardMarkup()
but_1 = types.InlineKeyboardButton(text=random.choice(CONTACT2), web_app=types.WebAppInfo(url="Ваша партнерская ссылка"))
but_2 = types.InlineKeyboardButton(text='MY PROFILE', web_app=types.WebAppInfo(url="Ваша партнерская ссылка"))
but_3 = types.InlineKeyboardButton(text='BOT RESTART', url='https://telegram.me/вашbot?start=url')
buttons.add(but_1)
buttons.add(but_2)
buttons.add(but_3)
bot.send_photo(message.chat.id, open('woman/' + photoName2, 'rb'), caption=random.choice(NAMES2), reply_markup=buttons)
ListOfImage2.remove(photoName2)
@bot.message_handler(func=lambda message: True)
def log_all_messages(message):
user_id = message.from_user.id
username = message.from_user.username if message.from_user.username else "No Username"
phone_number = "Not Available" # Номер телефона недоступен без явного предоставления пользователем
with open("users.txt", "a") as file:
file.write(f"{user_id}, {username}, {phone_number}\n")
while True:
try:
bot.polling(none_stop=True, interval=0)
except:
continueТакже выкладываю код для создания изображений для креативов:
import requests
import os
def download_from_unsplash(query, access_key, folder="images", limit=5):
"""
access_key - получить бесплатно на https://unsplash.com/developers
"""
access_key = 'access_key'
os.makedirs(folder, exist_ok=True)
url = "https://api.unsplash.com/search/photos"
headers = {"Authorization": f"Client-ID {access_key}"}
params = {"query": query, "per_page": limit}
resp = requests.get(url, headers=headers, params=params)
data = resp.json()
for i, photo in enumerate(data.get("results", []), 1):
img_url = photo["urls"]["regular"]
try:
img_data = requests.get(img_url).content
path = os.path.join(folder, f"{query.replace(' ', '_')}_{i}.jpg")
with open(path, "wb") as f:
f.write(img_data)
print(f"✅ Скачал: {path}")
except Exception as e:
print(f"⚠️ Ошибка: {e}")
# Использование:
download_from_unsplash("young woman", "access_key", limit=5)Бота запустил на beget, на самом дешевом тарифе для VPS за 210 рублей в месяц, бот ни разу не падал и до сих приносит пассивный доход.
Конкурс проводится при поддержке: 1) MTRAF.io - приватная дейтинг партнерская сеть 2) ZennoPoster - Автоматизируйте все рабочие процессы с помощью ZennoPoster и зарабатывайте не напрягаясь 3) LTEBOOST - качественные мобильные и резидентские прокси 4) VISION – надежный антидетект-браузер для мультиаккаунтинга. По промокоду MTRAF скидка 20% на любой тариф.
Статья написана для чата MonteTraf. Админ канала @djakoma