Как я считаю stop-loss для объявлений в Telegram Ads
В Telegram Ads легко попасть в одну из двух крайностей.
Первая — слишком рано выключить объявление, потому что оно потратило несколько евро и пока ничего не принесло.
Вторая — наоборот, бесконечно ждать, потому что «ещё мало данных».
Поэтому я стараюсь заранее понимать, сколько денег конкретная гипотеза имеет право потратить без результата.
Раньше у меня было простое правило: если объявление потратило больше €5 и не принесло подписчика, выключаем.
Для части кампаний оно работает нормально. Но если копнуть чуть глубже, €5 сами по себе вообще ничего не говорят.
При CPC €0,10 это 50 кликов.
При CPC €1 — пять.
В первом случае данных уже прилично. Во втором мы почти ничего не проверили.
Поэтому я попробовал собрать stop-loss не от круглой суммы, а от экономики объявления и вероятности того, что мы просто получили неудачную серию.
Что вообще должен делать stop-loss
Задача здесь не в том, чтобы угадать идеальный момент выключения объявления.
Его задача проще:
не тратить слишком много на гипотезу, которая с высокой вероятностью уже не проходит по нашей экономике.
Почти как в трейдинге. Мы заранее определяем допустимый убыток, а не принимаем решение после того, как деньги уже потрачены.
Для расчёта мне нужны три значения:
CPC — сколько сейчас стоит клик;
целевой CPA/CPS — сколько я максимум готов платить за результат;
уровень уверенности, после которого готов считать нулевой результат не случайностью.
Я обычно беру 95%.
Дальше можно считать.
Шаг 1. Понимаем, какая конверсия нам вообще нужна
Допустим:
CPC = €0,25.
Подписчик должен стоить максимум €5.
Тогда минимальная конверсия клика в подписку:
CVR = CPC / CPS
Получаем:
€0,25 / €5 = 5%.
То есть объявление имеет смысл для моей экономики, если хотя бы один человек из двадцати кликов подписывается.
Теперь вопрос:
сколько кликов подряд без подписки я должен получить, чтобы перестать верить, что реальная конверсия здесь хотя бы 5%?
Вот здесь начинается статистика.
Шаг 2. Считаем вероятность получить ноль результатов
Если реальная конверсия равна p, вероятность того, что один человек НЕ подпишется:
1 − p
Вероятность получить ноль подписчиков после n кликов:
(1 − p)^n
Нам нужно найти такое n, при котором эта вероятность станет меньше 5%.
То есть:
(1 − p)^n ≤ 0,05
Отсюда:
n ≥ ln(0,05) / ln(1 − p)
Для нашей CVR 5%:
n ≈ 59 кликов.
Получается довольно конкретный ориентир.
Если связка действительно способна держать нужные мне 5% конверсии, вероятность увидеть 59 кликов подряд без единой подписки уже меньше 5%.
После этого я спокойно её выключаю.
Шаг 3. Переводим это обратно в деньги
У нас:
59 кликов.
CPC €0,25.
Получаем:
59 × €0,25 = €14,75.
Вот наш stop-loss.
Не €5.
А примерно €15.
Причём эта сумма взялась не из головы. Она получилась из:
текущего CPC;
допустимой стоимости подписчика;
минимальной нужной конверсии;
выбранного уровня уверенности.
Вот это уже можно использовать как рабочее правило.
Несколько примеров
Вариант 1
Допустимый CPS — €2.
CPC — €0,10.
Нужная CVR:
0,10 / 2 = 5%.
При 95% уверенности:
59 кликов без подписки.
Stop-loss:
59 × 0,10 = €5,90.
Вот здесь моё старое правило «около €5 и выключаем» действительно оказывается вполне адекватным.
Вариант 2
Допустимый CPS — €5.
CPC — €0,25.
Снова нужна CVR 5%.
Те же 59 кликов.
Но stop-loss уже:
€14,75.
Если выключить такое объявление после €5, мы дадим ему всего 20 кликов.
А при реальной конверсии 5% вероятность получить первые 20 кликов вообще без подписки всё ещё около 36%.
То есть нормальную связку мы можем убить просто из-за дисперсии.
Вариант 3
Лид может стоить €30.
CPC — €1,20.
Нужная конверсия:
1,20 / 30 = 4%.
Для 95%-ного порога нужно примерно 74 клика без лида.
Stop-loss:
74 × €1,20 = €88,80.
И здесь правило «потратили €5 без лида — выключаем» уже вообще не имеет смысла.
За €5 мы даже пяти кликов нормально не соберём.
Отсюда получается интересное короткое правило
Если нужная конверсия небольшая, формулу можно приблизить.
Для 95%-ной уверенности количество неудачных попыток получается примерно:
3 / CVR
Это известное статистическое приближение — так называемое rule of three.
Если подставить нашу экономику:
CVR = CPC / CPA
получаем примерно:
Stop-loss ≈ 3 × целевой CPA
То есть при нуле конверсий:
целевой результат €2 → stop-loss около €6;
целевой результат €5 → около €15;
целевой результат €10 → около €30;
целевой лид €30 → около €90.
Мне эта формула нравится не потому, что теперь надо всем срочно ставить stop-loss ровно в три CPA.
А потому, что она хорошо показывает сам принцип:
допустимый расход без результата должен масштабироваться вместе с ценой самого результата.
Если подписчик для бизнеса может стоить €1,5, ждать €30 бессмысленно.
Если нормальный лид стоит €40, выключать кампанию после €5 тоже бессмысленно.
Но есть ещё один слой
До этого мы считали только:
клик → конверсия.
На практике я ещё разделяю проблему на два этапа.
Если объявление почти не получает кликов, то статистика по подпискам нам пока малоинтересна.
Там проблема выше:
показ → клик.
То есть сначала надо понять, проходит ли объявление по CTR.
А если CTR нормальный, кликов уже достаточно, но подписок нет — тогда смотрим:
клик → посадочная → подписка.
Это разные поломки.
Поэтому для себя я бы строил stop-loss в два уровня:
1. Stop-loss по креативу.
Набрали достаточно показов, а CTR ниже минимально допустимого — выключаем или меняем объявление.
2. Stop-loss по конверсии.
CTR нормальный, клики есть, но после рассчитанного количества кликов нет целевых действий — выключаем связку или разбираем посадочную.
Сам бюджет без этой разбивки мало что объясняет.
Как это можно собрать в таблицу
Мне достаточно пяти колонок:
CPC | Целевой CPA | Нужная CVR | Кликов без результата | Stop-loss |
|---|---|---|---|---|
€0,10 | €2 | 5% | 59 | €5,90 |
€0,25 | €5 | 5% | 59 | €14,75 |
€0,40 | €4 | 10% | 29 | €11,60 |
€1,20 | €30 | 4% | 74 | €88,80 |
Дальше это спокойно автоматизируется в Google Sheets.
Входные данные меняются — stop-loss пересчитывается.
И не нужно каждый раз решать на глаз, «достаточно мы уже потратили или ещё дать покрутиться».
Где я бы не доверял этой формуле
Это всё-таки не торговый робот и не универсальная схема.
Модель предполагает, что мы тестируем одну и ту же гипотезу:
аудитория примерно одинаковая;
креатив не меняли;
посадочная та же;
конверсия нормально отслеживается;
клики более-менее независимы.
Если после первых 20 кликов мы поменяли текст, подняли ставку и начали крутиться в других каналах, считать следующие 30 кликов продолжением того же теста уже сомнительно.
То же самое с длинными воронками. Если лиды приходят с задержкой в несколько дней, stop-loss нужно считать с учётом этого лага.
И отдельно: вся формула выше особенно удобна именно для ситуации «получили ноль результатов».
Когда конверсии уже появились, там интереснее считать доверительный интервал для реального CVR, а не пользоваться rule of three.
Но как быстрый способ понять, когда ноль уже перестаёт быть просто невезением, мне эта модель нравится.
Мой практический опыт начинался с очень простого правила — примерно €5 без подписчика и объявление выключаем.
После расчётов я бы сформулировал его немного иначе:
сначала определяю, какая конверсия нужна проекту для нормальной экономики, а потом считаю, сколько нулевых попыток готов дать этой гипотезе.
Иногда ответ всё равно будет €5.
Иногда €15.
А иногда окажется, что после €5 мы вообще ещё ничего не протестировали.
Если кто-то использует похожие stop-loss модели в Telegram Ads — расскажите в комментариях, интересно сравнить подходы.
В Telegram-канале я периодически выкладываю рабочие наблюдения по Telegram Ads.
И если такой формат полезен, тоже пишите, что ещё разобрать через расчёты: бюджет теста, минимальную выборку, распределение денег между объявлениями, парсеры, автоматизацию или инструменты. Там есть куда копать.

