События и конверсии: денежный слой воронки
Клик - это расход, пока событие не докажет, что он окупился. В Leadgram каждая конверсия - старт бота, регистрация, депозит - это событие, привязанное к конкретному клику, и именно эта связка кормит всё, что происходит дальше: выручку в Отчётах, постбэки в партнёрские трекеры, серверные конверсии, которые уходят обратно в Meta и Google, и пуш подписчику, который сконвертился - если это прописано в вашем Флоу. Наладите события правильно - и трекер начнёт показывать правду о вашем спенде.
Типы событий
- Воронка -
click,land,bot_start,channel_join,join_request,first_dm,miniapp_launch. Показывают, как пользователь движется по вашей Telegram-воронке. - Конверсии -
lead,registration,deposit,ftd,purchase. За них платит рекламодатель. - Кастомные -
custom_1-custom_8под любую специфику оффера.
Большинство конверсионных событий также двигают статус клика на странице Клики: Клик → Лендинг → Старт → Регистрация → Лид → Депозит → FTD. Статус двигается только вперёд - если registration придёт уже после ftd, клик назад не откатится. Исключение - purchase: он биллится и попадает в отчётность как любая другая конверсия, но статус клика не трогает. Так же ведут себя channel_join и события custom_* - все три записываются в базу, просто не участвуют в лестнице статусов воронки.
Как события попадают в систему
- S2S / API. Ваш бэкенд (или постбэк-скрипт рекламодателя) шлёт
POST /api/eventsсclickId, типом события и опциональнымиpayoutиnonce. API-ключ для внешних инструментов вроде Keitaro или собственных скриптов создаётся в Настройках → API ключи. Забрать события обратно можно черезGET /api/events(с пагинацией, с фильтром поtype) - удобно, когда нужно сверить, что реально сработало, с вашими собственными записями. - Флоу. Поставьте узел «Триггер события» в нужный шаг Флоу - событие сработает автоматически, когда подписчик до него дойдёт. Регистрации и депозиты прямо из Telegram-воронки, без единой строчки кода.
Дедупликация детерминированная: повторная отправка того же clickId + типа без nonce считается ретраем той же конверсии и никогда не создаёт вторую строку, второе списание или дубль Purchase в Meta. Настоящая повторная конверсия (второй депозит с того же клика) обязана идти с уникальным nonce.
Биллинг-гейт
Записать событие и доставить его дальше - две разные вещи. У каждой строки события есть billing_status: пока идёт списание, он pending, затем становится charged или free. Отправка в CAPI, постбэки и пуш подписчику по событию срабатывают только после того, как этот статус разрешится в charged или free - у приостановленной организации или при пустом балансе строка остаётся blocked (при сбое списания - error), и событие лежит в базе, так и не дойдя ни до Meta, ни до Google, ни до вашего постбэк-эндпоинта, ни до подписчика.
Если конверсия появилась в списке событий, а на другом конце ничего не сработало - сначала проверьте биллинг, а не интеграцию. Событие в статусе blocked не сломано, оно ведёт себя ровно так, как задумано.
Поле payout
Передавайте payout (USD, до двух знаков после запятой) с каждой платящей конверсией. Оно попадает в два места:
- Выручка в Отчётах - колонка выручки складывается из payout всех подтверждённых событий.
- Google Ads - payout становится
conversionValueсерверной конверсии, и Smart Bidding оптимизируется на реальные деньги.
Постбэки payout не передают. Партнёрским трекерам доступны плейсхолдеры {click_id}, {event_type}, sub-цепочка и нативные click id рекламных площадок - полный список смотрите в Постбэках. Если вашему трекеру нужна сумма конверсии, передавайте её через собственную интеграцию.
Что значит колонка CAPI
В таблице «Последние события» на Дашборде у каждого события есть статус CAPI: Отправлено означает, что все рекламные площадки, привязанные к кампании, приняли конверсию; В ожидании означает, что хотя бы одна доставка ещё в очереди или падает. Детали по площадкам - попытки, последняя ошибка, повторная отправка в один клик - на странице Доставка конверсий.
Безопасное тест-событие
На странице Facebook у каждого CAPI-аккаунта Meta есть кнопка «Отправить тест-событие». Она шлёт синтетический Purchase с вашим кодом Test Events из Meta Events Manager, поэтому событие появляется во вкладке Test Events и никогда не затрагивает оптимизацию рекламы, атрибуцию или списания. Это самый быстрый способ убедиться, что пиксель и токен работают, ещё до того, как потрачен первый доллар. Без кода кнопка не сработает - событие без кода Meta засчитала бы как настоящее.
Частые грабли
- Пропустить
nonceна повторной конверсии - второй депозит молча посчитается ретраем и будет отброшен. - Отправлять события без
payout- выручка в Отчётах останется нулевой, а Google получит конверсии без ценности. - Отправить
registrationдля клика, который уже дошёл доftd, и ждать, что статус изменится - не изменится, так задумано. - Ждать, что
purchaseсдвинет статус клика по воронке - никогда не сдвинет, хотя биллится как любая другая конверсия. - Читать «В ожидании» в колонке CAPI как баг - сначала загляните в Доставку конверсий, там обычно названа конкретная ошибка площадки.
- Считать, что записанное событие уже доставлено - статусы биллинга
blocked,errorиpendingозначают, что оно так и не дошло ни до CAPI, ни до постбэков, ни до пушей.