December 17, 2025

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