Не пропусти жодного ліда: Telegram-боти для арбітражника, які працюють на твій ROI
У світі арбітражу трафіку швидкість реакції вирішує все. Поки ти спиш, конкуренти ллють трафік, а твій прибутковий оффер може зупинитися через нульовий баланс в рекламній мережі. Класична ситуація: прокинувся, а мінусовий ROI вже не виправити. Або ще гірше — пропустив кілька дорогих лідів, бо не оновлював статистику в партнерці кожні п'ять хвилин.
Сьогодні ручний моніторинг — це прямий шлях до втрати грошей. Ринок вимагає автоматизації. І найпростіший, найдешевший та найефективніший інструмент для цього — власний Telegram-бот. Він буде твоїми очима та вухами 24/7, миттєво повідомляючи про найважливіше: нові конверсії та критичний стан балансу. Забудь про постійне оновлення вкладок браузера. Давай створимо систему, яка працюватиме на тебе.
Чому саме Telegram-бот, а не email чи SMS?
Відповідь проста: швидкість, гнучкість і нульова вартість.
- Миттєвість: Push-сповіщення приходить на телефон за секунду. Email може потрапити в спам або загубитися серед сотень інших листів.
- Гнучкість: Ти можеш налаштувати формат повідомлень як завгодно: додати дані про гео, суму виплати, назву оффера, поточний CPM. Можна навіть додати кнопки для швидких дій (наприклад, "Пауза кампанії в Keitaro").
- Безкоштовно: На відміну від SMS-шлюзів, API Telegram повністю безкоштовний. Ти платиш лише за копійчаний VPS-сервер.
Створення такого бота — це не так складно, як здається. Це не менш важлива частина інфраструктури, ніж якісний фармінг акаунтів чи підбір робочих креативів через спай-сервіси. Розберемо процес покроково.
Частина 1: Створюємо бота для сповіщень про ліди
Цей бот прийматиме postback-запити від твоєї партнерської мережі чи трекера (наприклад, Keitaro) і миттєво пересилатиме інформацію тобі в Telegram.
Крок 1: Реєстрація бота в Telegram
Все починається з батька всіх ботів — @BotFather.
- Знайди в Telegram
@BotFatherі почни з ним діалог. - Відправ команду
/newbot. - Придумай ім'я для бота (наприклад, "Арбітраж Інформер").
- Придумай унікальний юзернейм, який має закінчуватися на "bot" (наприклад,
ArbitrageInfoBot). - У відповідь BotFather надішле тобі унікальний токен. Це секретний ключ! Збережи його надійно і нікому не показуй. Він матиме вигляд
1234567890:ABCdEFGhIJKLMnOPQRSTuVWXYZ123456789.
Крок 2: Отримання твого Chat ID
Боту потрібно знати, куди саме надсилати повідомлення. Для цього йому потрібен унікальний ідентифікатор вашого з ним чату.
- Знайди свого щойно створеного бота в пошуку Telegram і почни з ним діалог, надіславши команду
/start. - Тепер відкрий в браузері спеціальний URL, підставивши свій токен:
https://api.telegram.org/botВАШ_ТОКЕН/getUpdatesУ відповіді ти побачиш JSON-структуру. Знайди блок "chat":{"id":123456789,...}. Число 123456789 — це і є твій Chat ID. Збережи його.
Крок 3: Налаштування сервера
Нам знадобиться найпростіший VPS-сервер (віртуальний приватний сервер) на Ubuntu 22.04. Досить буде найдешевшого тарифу за 3-5$.
Після підключення до сервера по SSH, виконаємо базові налаштування безпеки та встановимо софт.
# Оновлюємо пакети
sudo apt update && sudo apt upgrade -y
# Встановлюємо Python та менеджер пакетів pip
sudo apt install python3 python3-pip python3-venv -y
# Встановлюємо простий веб-сервер та firewall
sudo apt install ufw -y
# Налаштовуємо Firewall: дозволяємо SSH, HTTP, HTTPS
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Відкриємо порт, на якому працюватиме наш бот (наприклад, 5000)
sudo ufw allow 5000/tcp
sudo ufw enableКрок 4: Пишемо код на Python
Ми використаємо мікро-фреймворк Flask, щоб створити веб-сервер, який слухатиме запити від партнерки.
Створимо папку для нашого проєкту та віртуальне оточення:
mkdir lead_bot
cd lead_bot
python3 -m venv venv
source venv/bin/activate
# Встановлюємо бібліотеки
pip install Flask requests python-dotenvСтворимо файл .env для безпечного зберігання наших секретних даних:
nano .envВстав туди свої дані:
TELEGRAM_BOT_TOKEN="1234567890:ABCdEFGhIJKLMnOPQRSTuVWXYZ123456789"
TELEGRAM_CHAT_ID="123456789"
WEBHOOK_SECRET="MySuperSecretKey123" # Придумайте складний парольТепер створимо основний файл нашого бота app.py:
nano app.pyВстав наступний код:
# app.py
import os
import requests
from flask import Flask, request, jsonify
from dotenv import load_dotenv
load_dotenv()
app = Flask(__name__)
BOT_TOKEN = os.getenv('TELEGRAM_BOT_TOKEN')
CHAT_ID = os.getenv('TELEGRAM_CHAT_ID')
WEBHOOK_SECRET = os.getenv('WEBHOOK_SECRET')
TELEGRAM_API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
def send_telegram_message(message):
payload = {
'chat_id': CHAT_ID,
'text': message,
'parse_mode': 'HTML'
}
try:
requests.post(TELEGRAM_API_URL, data=payload)
except Exception as e:
print(f"Error: {e}")
@app.route('/webhook', methods=['GET', 'POST'])
def webhook():
# 1. Перевірка безпеки (щоб конкуренти не слали фейкові ліди)
secret = request.args.get('secret')
if secret != WEBHOOK_SECRET:
return "Forbidden: Invalid Secret", 403
# 2. Отримуємо дані (підтримуємо і GET-параметри, і JSON)
data = request.json if request.is_json else request.args
payout = data.get('payout', '0')
offer_name = data.get('offer', 'Unknown')
geo = data.get('geo', 'N/A')
sub_id = data.get('subid', 'N/A')
# 3. Формуємо повідомлення
message = (
f"🔥 <b>Новий лід!</b>\n\n"
f"💰 Виплата: <b>${payout}</b>\n"
f"🌍 GEO: {geo}\n"
f"📦 Оффер: {offer_name}\n"
f"🔗 SubID: <code>{sub_id}</code>"
)
send_telegram_message(message)
return "OK", 200
# Цей блок залишаємо тільки для локальних тестів.
# У продакшені запускатимемо через Gunicorn.
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Крок 5: Налаштування Postback URL в партнерці
Тепер у твоїй партнерській мережі або трекері потрібно вказати Global Postback URL. Він матиме такий вигляд:
http://IP_ТВОГО_СЕРВЕРА:5000/webhook?secret=MySuperSecretKey123&payout={payout}&subid={sub1}&offer={offer_name}&geo={geo}
Важливо: Без правильного secret (який ти прописав у .env) бот ігноруватиме запити. Це захистить тебе від спаму та фейкової статистики. {payout}, {sub1} та інші макроси потрібно замінити на ті, які використовує твоя конкретна партнерка. Зазвичай їх список можна знайти в документації. Коли партнерка зафіксує конверсію (лід), вона звернеться за цією адресою, а наш скрипт отримає дані, сформує повідомлення і відправить його в Telegram. Ваш CPA та ROI тепер під контролем.
Крок 6: Запуск бота в режимі 24/7
Просто запустити скрипт командою python app.py — погана ідея. Він зупиниться, як тільки ти закриєш SSH-сесію. Ми використаємо системний менеджер systemd, щоб наш бот працював як сервіс.
Замість простого запуску Python, робимо професійний запуск через Gunicorn.
Це критично, щоб бот не падав від навантаження. Спершу довстановимо Gunicorn (промисловий сервер для Python):
source venv/bin/activate
pip install gunicorn
Створимо файл сервісу:
sudo nano /etc/systemd/system/leadbot.serviceВставте наступний конфіг, замінивши /home/ubuntu/lead_bot на ваш реальний шлях до папки з ботом:
[Unit]
Description=Lead Notification Telegram Bot
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/lead_bot
ExecStart=/home/ubuntu/lead_bot/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 app:app
Restart=always
[Install]
WantedBy=multi-user.targetТепер запускаємо та додаємо сервіс в автозавантаження:
sudo systemctl daemon-reload
sudo systemctl start leadbot.service
sudo systemctl enable leadbot.service
# Перевіряємо статус
sudo systemctl status leadbot.serviceЯкщо все добре, ти побачиш зелений напис "active (running)".
Частина 2: Моніторинг балансу рекламних мереж
Тут підхід інший. Ми не можемо чекати на postback. Наш скрипт буде сам періодично (наприклад, раз на годину) ходити в API рекламної мережі, перевіряти баланс і надсилати сповіщення, якщо він нижчий за заданий поріг.
Більшість рекламних мереж (Facebook через Business Manager API, Google Ads, TikTok Ads, тизерні мережі) мають API для отримання даних про баланс.
Приклад скрипта (концептуальний):
# balance_checker.py
import os
import requests
from dotenv import load_dotenv
load_dotenv()
# Твої дані
API_KEY_REKLAMNA_MEREZHA = "API_KEY_HERE"
BALANCE_THRESHOLD = 50.0 # Поріг для сповіщення в $
BOT_TOKEN = os.getenv('TELEGRAM_BOT_TOKEN')
CHAT_ID = os.getenv('TELEGRAM_CHAT_ID')
def get_balance():
# Це приклад! Логіка залежить від API конкретної мережі
# url = "https://api.reklamna-merezha.com/v2/balance"
# headers = {"Authorization": f"Bearer {API_KEY_REKLAMNA_MEREZHA}"}
# response = requests.get(url, headers=headers)
# balance = response.json()['balance']
# Для тесту повернемо випадкове число
import random
return random.uniform(10.0, 100.0)
def send_telegram_alert(balance):
message = (
f"⚠️ Увага! Низький баланс!\n\n"
f"Поточний баланс: ${balance:.2f}\n"
f"Негайно поповни рахунок!"
)
# Код для відправки повідомлення (аналогічний до попереднього бота)
# ...
current_balance = get_balance()
if current_balance < BALANCE_THRESHOLD:
send_telegram_alert(current_balance)
print(f"Баланс {current_balance} нижчий за поріг. Сповіщення надіслано.")
else:
print(f"Баланс {current_balance} в нормі.")Щоб цей скрипт запускався автоматично, використаємо cron — стандартний планувальник завдань в Linux.
Відкрий редактор cron:
crontab -eДодай в кінець файлу рядок, який запускатиме скрипт кожну годину. Не забудь вказати повні шляхи до інтерпретатора Python та самого скрипта:
0 * * * * /home/ubuntu/lead_bot/venv/bin/python /home/ubuntu/lead_bot/balance_checker.py >> /home/ubuntu/lead_bot/cron.log 2>&1Цей запис означає: "запускати кожну годину (в 00 хвилин) скрипт `balance_checker.py` і записувати весь вивід в лог-файл `cron.log`".
Рівень PRO: HTTPS та безпека Якщо ти ллєш з серйозних джерел (Google Ads, Facebook), вони можуть вимагати, щоб Postback URL починався з https://. Голий IP-адреса з портом 5000 їм може не сподобатися. Щоб зробити "по-дорослому":
- Купи дешевий домен (наприклад, my-tracker-system.site).
- Налаштуй Nginx як зворотний проксі (Reverse Proxy), щоб він приймав запити на 80/443 порту і перекидав їх на твій бот (порт 5000).
- Отримай безкоштовний SSL-сертифікат через Certbot. Це звучить складно, але гуглиться за 5 хвилин по запиту "Flask Gunicorn Nginx HTTPS setup". Це зробить твого бота невразливим до перехоплення даних.
Підводні камені та часті помилки
1. Безпека: "Мій токен вкрали!"
Ніколи не "вшивай" токен бота чи API-ключі прямо в код. Використовуй змінні оточення (файл .env), як показано в прикладі. Додай .env в файл .gitignore, якщо будеш використовувати Git.
2. Мережеві проблеми: "Postback не доходить"
Переконайся, що порт (у нашому випадку 5000) відкритий у firewall (команда sudo ufw status). Також перевір, що твій скрипт запущений і слухає на правильному IP (0.0.0.0, а не 127.0.0.1).
3. Неправильні макроси: "Приходять порожні дані"
Уважно перевір документацію партнерки. Якщо замість суми виплати приходить пустота, ймовірно, ти використав макрос {payout}, а потрібно було {sum} або {revenue}. Це одна з найчастіших помилок.
4. Розширення функціоналу
Ці боти — лише початок. Ти можеш додати кнопки для управління кампаніями через API трекера. Або підключити ChatGPT, щоб він раз на добу генерував та надсилав тобі звіт-саммарі по ефективності кампаній. Це набагато краще, ніж аналізувати десятки метрик вручну.
Автоматизація рутинних завдань — це ключ до масштабування в арбітражі трафіку. Поки інші оновлюють сторінку статистики, твій бот вже повідомив тебе про лід, і ти можеш миттєво приймати рішення, базуючись на реальних даних. Вкладені в налаштування кілька годин окупляться збереженими нервами та грошима вже в перший тиждень.