Перейти к содержимому
Жёлтый веб

Автоматизация и арбитраж трафика

Поиск
English
English
Категории
  • Браузеры
  • Домены
  • Клоакинг
  • Креативы
  • Ленды-Проклы
  • Перевод
  • ПП
  • Скрипты
  • Советы-Полезности
  • Софт
  • Трекеры
  • Фб
  • Финансы

Оптимизируемся на подписку в Телеграм: реальные юзеры, а не клики

Оставьте комментарий / Софт, Трекеры, Фб

Друзья, приветствую! Сегодня покажу софтину, которую я написал под вполне конкретную боль: как оптимизировать рекламу в Facebook на факт подписки на Telegram-канал или вступление в группу.

Сколько людей доходит из клика по кнопке до реальной подписки, знает каждый, кто лил на тг. Доходит хорошо если треть. Остальные потерялись по дороге: не захотели ставить Телеграм, отвлеклись, передумали. А фэбэ, если мы льём тупо на преленд и отстреливаем событие пикселя при нажатии на кнопку, фб считает всех кликнувших конверсиями и оптимизируется на них. В итоге алгоритм находит вам людей, которые любят кликать по кнопкам. Любителей подписываться он найти не может, потому что вы ему о них не сообщаете. Да и как о них сообщить?

Сама идея

Идею схемы подал ещё в далёком 2023м Адам в своём тг-канале. См. пост про пролив за подписки, и разбор механики с инвайт-линками вот тут. Вкратце суть там в том, что мы можем отслеживать юзеров, вступающих по инвайт-линку и связывать их с нужным id клика, после чего отправлять постбэк в трекер.

Вариант Адама собирался так: на прокладке ротируются безлимитные инвайт-ссылки, скрипт на Telethon раз в 30 секунд читает админский лог канала, по хэшу ссылки понимает, кто вступил, достаёт из трекера сохранённый fbclid и шлёт событие в ФБ по CAPI. Схема рабочая, но с нюансами, и Адам сам их честно перечисляет: прилка Telegram с сессией на реальном номере, аккаунт должен быть владельцем канала, ротация ссылок на лендинге, возможный разлогин всех сессий.

Мне идея понравилась, а вот возня с Telethon и опросом лога не вдохновила. Я пошёл другим путём и убрал всё это из уравнения: вместо опроса админского лога — вебхук бота-админа, вместо ротации безлимитных ссылок — персональный инвайт на каждый клик, вместо прилки с сессией — обычный бот от BotFather. Встречайте: TG.JoinProof

Схема работы TG.JoinProof

Как работает связка по шагам:

  1. Человек кликает по рекламе и попадает в трекер. В моём случае это Yellow TDS, но подойдёт любой, кто умеет принимать постбэки: AIO, Binom, Zeus и так далее.
  2. Трекер делает редирект на системную ссылку TG.JoinProof, подставляя в неё свой click ID: https://yourdomain.com/subscribe.php?target=-1003410571937&click_id={clickid}
  3. Система запоминает click ID, создаёт через Bot API персональную инвайт-ссылку на одного пользователя и редиректит человека уже по ней, в Telegram.
  4. Человек вступает в канал. Бот-администратор канала ловит это событие, система по вебхуку получает апдейт, сопоставляет инвайт-ссылку с сохранённым click ID.
  5. Система отправляет в трекер постбэк: конверсия, статус lead. Дальше трекер может скормить событие Фейсбуку через CAPI, например через PixelLink. И вуаля: теперь алгоритм учится на тех, кто реально подписался.

Зачем инвайт-ссылки персональные

Тут есть пара приятных мелочей, которые получились сами собой из механики.

Инвайт создаётся с лимитом на одного участника и сроком жизни 24 часа. Как только человек вступил, ссылка сразу отзывается. То есть спарсить вашу рекламную ссылку и, например, налить в канал ботов по ней не выйдет: каждая ссылка умирает после первого использования.

По одному click ID конверсия засчитывается один раз. Если человек прошёл по ссылке второй раз, его отправит на fallback: для публичного канала это обычная ссылка t.me/username, для приватного система заранее создаёт отдельный общий инвайт без отслеживания. Дублей в статистике не будет. И ещё момент: конверсия фиксируется только при реальном переходе из состояния «не участник» в «участник». Человек, который уже состоит в канале, события не создаст.

Где взять и куда поставить

Всё лежит на Гитхабе, бесплатно: github.com/dvygolov/TG.JoinProof

Технически это PHP 8.1+ и SQLite. Никаких внешних библиотек. Заливаете файлы, правите файл .env, открываете панель, и всё: база и таблицы создадутся сами при первом заходе. Ставится на любой shared-хостинг типа Beget, отдельный VPS не нужен (но при желании никто не мешает завести и на нём). Полная инструкция по развёртыванию есть в README репозитория, расписывать её здесь не буду, там всё по шагам.

Настройка

Сначала идём к @BotFather и создаём бота, как обычно. Потом добавляем этого бота администратором вашего канала или чата. Единственное право, которое ему нужно, это «Приглашение пользователей» (в апи оно зовётся can_invite_users). Остальные галочки можно не трогать.

Дальше открываем админку системы, логинимся паролем из .env и добавляем бота: название плюс токен от BotFather. Система токен проверит.

Добавление бота

Теперь добавляем цель: выбираем бота, вбиваем числовой ID канала или чата (либо паблик юзернейм) и вставляем постбэк-ссылку трекера. При сохранении система сама проверит тип цели и права бота, и зарегистрирует вебхук.

Добавление канала

Всё, цель добавлена, жмём кнопку копирования у канала/чата и получаем системную ссылку.

Канал подключён

Эту системную ссылку ставим в кампанию трекера как редирект.

Проверка в бою

Я прогнал этот флоу через Yellow TDS на тестовый канал. Кликнули с телефона по ссылке, Telegram открылся по инвайту, вступили в канал.

Переход по ссылке с телефона

В админке системы сразу появилась конверсия:

Конверсия в админке TG.JoinProof

А в Yellow TDS прилетел лид:

Лид в Yellow TDS

Детали лида в Yellow TDS

Работает, гайз!

Что ещё можно передать в трекер

Помимо click ID, в постбэке доступны макросы с данными вступившего пользователя. Telegram присылает их вместе с событием, и можно сразу нарезать статистику:

  • {is_premium}: есть ли у юзера Telegram Premium;
  • {language_code}: язык приложения;
  • {user_id}, {username}, {first_name}, {last_name}: идентификаторы и имя.

Пример полного постбэка:

https://tracker.example/postback?click_id={clickid}&status={status}&premium={is_premium}&lang={language_code}&username={username}

Премиум-подписчики это, как правило, более платёжеспособная и живая аудитория. Можно пролить пару дней траф, посмотреть по срезу, с каких крео и кампаний идёт больше премиумов, и перекидывать бюджет туда.

Технические требования

Коротко, что нужно для работы софта:

  • Публичный HTTPS-адрес с нормальным сертификатом: Telegram шлёт вебхуки только на https.
  • Один бот равно один вебхук. Если этого же бота подключить куда-то ещё, где тоже вызывается setWebhook, вебхуки перезапишут друг друга. Заведите отдельного бота под систему.
  • Инвайт-ссылка живёт 24 часа. Кликнувший сегодня и подписавшийся послезавтра это экзотика, но просто имейте в виду, что у ссылки есть срок.

Всё остальное, включая повторные попытки доставки постбэка (до трёх раз, если трекер лежит), система берёт на себя.

Выводы

Если льёте траф на тг — всё это можно оптимизировать по нормальному: FB учится на тех, кто реально подписался, трекер видит настоящие конверсии, а вы получаете стату по параметрам аудитории, которых раньше не было.

Софт бесплатный, забирайте с Github. И ещё раз спасибо Адаму за идею.

На связи был Жёлтый Веб, лейте в плюс, господа!

Что ещё почитать

Открыть полный хаб по арбитражу трафика →

PixelLink: серверные пиксели Facebook и TikTok без лишней возни PixelLink - серверная прослойка между Keitaro/Binom и Facebook CAPI/TikTok Events API. Показываю, как поставить сервис на VPS, настроить… Долгоживущий токен Facebook API: как получить и использовать Рассказываю о том, как уйти от стандартного токена от Ads Manager и жить долго и счастливо. Полный разбор работы со спай-сервисами: нападение и защита. Подробно разбираем, как пользоваться спай-сервисами и как попробовать от них защититься.
← Предыдущая Запись

Оставьте комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Полезные ссылки
  • Реклама
  • Райдер
  • ПОДДЕРЖАТЬ
  • ВКонтакте
  • MAX
  • Telegram
  • YouTube
Copyright © 2026 Любое копирование информации без активной ссылки на источник запрещено!