Пошаговая инструкция по настройке рекламы Telegram-каналов за конверсии в Facebook Ads. После каждой успешкой подписки на наш канал в Facebook Ads будет прилетать конверсия. Реализовано с помощью Python-скрипта (написанного Адамом), который отслеживает информацию о новых подписчиках через библиотеку Telethon. Конверсии передаются в трекер Keitaro и через Conversion API в Facebook.
Для установки и правильной работы скрипта нам понадобится:
Установка и подготовка сервера
Покупаем VDS-сервер, например на FriendHosting, тариф Start (можно выбрать другой), выбираем операционную систему Ubuntu 22.04 64 bit и FastPanel.

Спустя 30 минут, должны прийти доступы на почту:

Переходим по адресу из письма в FastPanel, заходим по логину и паролю:

Нажимаем создать сайт:

Выбираем создать сайт вручную:

В поле «Какой домен подключаем» вписываем «telegram-keitaro-capi.com» — в дальнейшем его будем использовать в командах для терминала/консоли. Жмем переход к следующему шагу:

Выключаем базу данных, кликнув по соответствующему тумблеру, и нажимаем создать сайт:

Сайт создан, теперь переходим в карточку сайта:

Скролим вниз и переходим в FTP-аккаунты:

Справа сбоку нажимаем на редактирование уже созданного FTP-аккаунта:

Генерируем или вводим собственный пароль, логин и пароль сохраняем в блокнот, чтобы не потерять данные. Сохраняем:

Дальше используем FTP- клиент. У нас это Filezilla, в программе слева сверху кликаем на Менеджер Сайтов:

Выбираем протокол — FTP, в хост пишем IP-сервера и в Пользователь указываем логин от FTP-аккаунта. Нажимаем соединиться:

В появившимся окне вводим пароль от FTP-аккаунта и нажимаем OK:

После авторизации, удаляем имеющиеся в корневой директории файлы:

Подготовка скрипта
Скачиваем готовый скрипт с Telegram-канала “Блог Адама”:

В архив со скриптом необходимо добавить недостающий текстовый файл «links.txt», для этого разархивируем скачанный архив и создаем в папке «invites_rotator_php» пустой файл «links.txt»:

Архивируем обратно в .zip все файлы скрипта и загружаем на сервер полученный архив через FileZilla:

Возвращаемся во вкладку FastPanel, переходим в Файлы:

Кликаем по нашему загруженному файлу, справа нажимаем на троеточие и выбираем «Разархивировать»:

Открываем файл «config.py»:

Данные которые нам нужно поменять на свои:

Дальше разберем где брать эти данные.
Как получить данные от Telegram и Keitaro
- api_id = ‘20212727’
- api_hash = ‘1fa0ce4a271a1971a396ff26316f0112’
Переходим на сайт https://my.telegram.org/auth?to=apps, вводим номер телефона от Telegram и нажимаем Next:

Вводим код который пришел в Telegram, нажимаем Sign In:

Вводим рандомные названия в строки App title, Short name. Выбираем в Platform -> Android и нажимаем Create application:

Данные api_id и api_hash получены:

- phone_number = «+123467890»
Введите свой номер телефона от Telegram-аккаунта.
- channel_id = -123467890
В этом же Telegram-аккаунте, создаем Telegram-канал с частным доступом по инвайт-ссылке, от этого зависит работоспособность скрипта:

Переходим в Telegram-бот и пересылаем сообщение с Telegram-канала, чтобы узнать ID:

- kt_address = ‘https://domen.com’
Вписываем домен, который привязан к трекеру Keitaro и работает по https протоколу.
- kt_token = ’37d3312100te0s9a1a01e999f7d92e3e’
Для создание API-ключа в трекере Keitaro, перейдем в Admin -> Профиль -> API-ключи -> Создать новый ключ:

- kt_timezone = ‘Europe/Moscow’
Ставим тайм-зону в зависимости от вашей, которая находится в профиле трекера Keitaro:

После подставления всех данных, сохраняем файл «config.py»:

Создание пригласительных ссылок и сохранение хэшей
Создаем 10 и более инвайт-ссылок в Telegram-канале, для корректной работы скрипта с трекером Keitaro:

В Fastpanel переходим в папку «invites_rotator_php» и открываем файл «links.txt»

Копируем в него все созданные инвайт ссылки в формате хэшей (без https://t.me/+) и нажимаем сохранить:

Установка скрипта на сервер
Далее открываем Консоль (Windows) или Терминал (macOS), в нашем случае это Терминал:

Подключаемся к серверу по команде:
ssh ЛОГИН@IP-СЕРВЕРА -p ПОРТ
В примере:
ssh root@91.2**.**3.26 -p 3333

Вводим пароль:

Вводим команду:
cd корневой каталог
В примере:
cd /var/www/telegram_kei_usr74/data/www/telegram-keitaro-capi.com

Адрес корневого каталога берем в FastPanel -> Карточка сайта:

Устанавливаем Python:
Команда для macOS:
apt install python3-pip
Команда для Windows:
apt install python-pip

Устанавливаем зависимости:
Команда для macOS:
pip3 install -r requirements.txt
Команда для Windows:
pip install -r requirements.txt

Обновляем пакеты:
sudo apt-get update

Устанавливаем пакет screen:
sudo apt-get install screen

Создаем новую сессию в консоли/терминале для работы скрипта в автономном режиме:
screen -S telegram-keitaro-capi

После появления новой вкладки в консоли или терминале вводим команду:
Команда для macOS:
python3 main.py
Команда для Windows:
python main.py

Вводим пароль который пришел в Telegram-аккаунт:

*Если у вас появились ошибки после авторизации, возможно вылетело из Telegram-аккаунта или в файле «Config.py» введены неверные данные.
**Не советуем создавать Telegram-аккаунт на виртуальный номер, доступ к которому вы можете потерять после разлогина.
Автономный режим
ВАЖНО: После авторизации в Telegram-аккаунт, для работы скрипта в автономном режиме, в открытой вкладке Терминала или Консоли нажмите следующую комбинацию клавиш:
- CONTROL + A + D (на macOS)
- CTRL + A + D (на Windows)
Настройка источника Facebook в Keitaro
Создаем или редактируем источник для Facebook:

В «External ID» убираем значение «{fblid}» в параметре «fbclid», поскольку Facebook передает это значение автоматически:

Подставляем параметры в «sud_id_7″
- Название: Pixel ID;
- Параметр: pixel;
- Значение: вставить пиксель из рекламного кабинета Facebook, с которого вы будете проливать трафик;

Подставляем параметры в «sud_id_14″
- Название: Campaign Domain;
- Параметр: domain;
- Значение: Указываем домен кампании без протокола, на который будет запускаться реклама с Facebook;

Подставляем параметры в «sud_id_15»
- Название: FB Token;
- Параметр: token;
- Значение: В примере токен взят из приложения Facebook. Инструкция как его создать;

*Все остальные параметры не трогаем и оставляем в стандартном виде.
Настройка офферов в Keitaro
Далее необходимо создать в трекере локальные офферы под каждый инвайт и настроить их.
Подробная инструкция по добавлению локальных офферов в трекер Keitaro: https://cpa.rip/services/keitaro-tracker/#Lokalnyj_offer
Сперва переходим по каждой ранее подготовленной инвайт-ссылке с Telegram-канала и скачиваем открывшиеся в браузере страницы плагином:

Каждую скачанную страницу будем грузить в отдельный локальный оффер в трекере. Перед загрузкой обязательно меняем «index.html» на «index.php»:

Далее в каждом локальном оффере в файле «index.php» в начале перед остальным кодом вставить следующий код:
<?php
function updateParams($params) {
global $rawClick;
$subId=$rawClick->getSubId();
if (!empty($subId)) {
$result = file_get_contents('http://ТРЕКЕР_ДОМЕН/?_update_tokens=1&sub_id=' . urlencode($subId) . '&' . http_build_query($params));
}
}
updateParams(array(
'sub_id_13' => 'ХЭШ ссылки Telegram-канала' ,
));
?>
В этот код обязательно надо подставить IP адрес своего трекера Keitaro вместо «ТРЕКЕР_ДОМЕН» и прописать, соответствующий скачанной странице, хеш инвайта в параметр «sub_id_13» вместо «ХЭШ ссылки Telegram-канала».
Важно! Для каждого скачанного при переходе по инвайту лендинга необходимо подставить в код соответсвующий ему ХЭШ. Пример: если мы скачали страницу, перейдя по ссылке http://t.me/+wfla4raHVVAyM2NI, то в код вставляем в качестве значения sub_id_13 хэш из этой ссылки, т.е. wfla4raHVVAyM2NI.
Это можно сделать до загрузки файла в трекер или в самом трекере, для этого в режиме редактирования оффера в Keitaro нажимаем иконку «<>»:

И вносим нужные правки в открывшемся редакторе:

Настройка кампании в Keitaro
- Выбираем домен, с которого будет литься реклама в Facebook;
- Выбираем настроенный источник Facebook;
- Выбираем локальные офферы;
- Выбираем ротацию потоков по весу и привязываем их к потокам, лендингам и офферам.

Настройки запуска рекламы в Facebook
Копируем ссылку с кампании Keitaro и вставляем ее в Website URL, но без параметров (https://домен.com/идентификатор).

Спускаемся ниже и вставляем все параметры в поле «URL parameters»:

После всех настроек запускаем рекламную кампанию.
Передача лидов по API с Telegram в Facebook
При подписке пользователя через нашу ссылку с Keitaro, скрипт отправляет событие по API в кампанию Facebook:

Передача данных в трекер Keitaro
Скрипт передаёт в Keitaro следующие данные о пользователе, который подписался: имя, фамилию, @username (никнейм), номер телефона (если он не скрыт), и т.д.

Дополнительные команды
Во время работы со скриптом могут пригодиться следующие команды.
Проверка открытых сессий
screen -ls

Перейти к открытой сессии
screen -r telegram-keitaro-capi

Открывается рабочая сессия:

Создать новую сессию
screen -S telegram-keitaro-capi

Выйти из сессии
screen -X -S НАЗВАНИЕ_СЕССИИ quit
Пример: screen -X -S 57612.telegram-keitaro-capi quit
