Прошлой осенью лили нутру на DACH, бюджет $480/день, в кабинете рисовался ROI 14%. Через три недели вытянули постбэки с CRM партнёрки и оказалось — реальный ROI 41%, потому что пиксель Meta проглатывал треть конверсий на iOS. Считай, два месяца мы душили связку, которая фактически вытаскивала команду в плюс. С того кейса я больше ни одного крео не запускаю без жёсткой sсхемы tracking — клик, лид, апрув, выплата, всё на одном S2S.
Эта статья — выжимка того, что у нас на проде живёт уже на 5М+ кликов: пять блоков практик, без воды, с примерами и цифрами. Если ты гоняешь связки на $200+/день и принимаешь решения по тому, что показывает рекламный кабинет — почти наверняка ты теряешь 20–35% маржи на слепых пятнах. И вот как их закрыть.
- 1. Сшивка клика с выплатой, а не с лидом
- Как это выглядит технически
- Что считать минимумом
- 2. Гигиена данных: дубли, пропуски, расхождения
- Где обычно течёт
- Привычка, которая окупается
- 3. Атрибуция: last-click убивает связки, которые греют воронку
- Что у меня работает
- Подсказка из практики
- 4. UTM-дисциплина и naming-конвенция
- Минимальная схема UTM
- Зачем это нужно
- 5. Tracking как фильтр качества: антифрод поверх постбэка
- Что я держу в трекере поверх кликов
- Почему пиксели уже не вытягивают
- Мини-кейс: как переход на S2S вытащил связку из минуса
- Чек-лист: проверь свой tracking за 7 минут
1. Сшивка клика с выплатой, а не с лидом
Первое, что я ставлю в новой связке — сквозной идентификатор click_id, который доезжает до момента, когда деньги легли на баланс. Не до лида. Не до отправленной формы. До выплаты. Потому что между лидом и выплатой по нутре отваливается 40–60% объёма (апрув, треш, рефанды), и оптимизировать креативы по лидам — значит масштабировать самые «лидогенерящие», но не самые «деньгогенерящие» связки.
Как это выглядит технически
На пролёте через прокладку трекер вшивает уникальный sub_id в ссылку партнёрки. Партнёрка возвращает его в postback при апруве/выкупе/рефанде. На выходе у меня в Clickhouse строка: креатив → плейсмент → click_id → лид → апрув → факт денег. Когда лили на $400/день финансы на CIS, я нашёл крео, у которого CR в лиде был 2.1%, а EPC по выплатам — $1.4 против средних $0.62 по связке. В кабинете оно выглядело середняком. После переноса 70% бюджета на этого «середняка» ROAS поднялся с 1.18 до 1.51 за 9 дней.
Что считать минимумом
Если ты не можешь ответить на вопрос «сколько я заработал с конкретного крео X за неделю Y», ты управляешь не экономикой, а интерфейсом рекламного кабинета. Минимум — клик-постбэк апрува-постбэк выплаты. Лиды это полезная косвенная метрика, но решения по бюджету по ним принимать нельзя.
2. Гигиена данных: дубли, пропуски, расхождения
Даже идеально настроенный S2S гниёт за месяц-два, если за ним никто не следит. У меня в команде раз в неделю прогон по трём контрольным точкам: расхождение кабинета и трекера по кликам, дубли постбэков по одному sub_id, дырки между шагами воронки. Норма расхождения кабинет↔трекер — до 3%. Всё что выше 7% — флаг, идём искать причину.
Где обычно течёт
Самые частые источники мусора: редиректы преленда теряют параметры (особенно если используешь сокращалки), мобильные браузеры режут cookies на iOS Safari, антибот-скрипты партнёрки иногда дублируют postback при ретраях. На одном офере по гемблингу я ловил 12% дублей выплат — партнёрка ретраила postback при таймауте, а наш трекер засчитывал оба. Поправили через идемпотентность по transaction_id — экономика проекта мгновенно сошлась с реальным балансом.
Привычка, которая окупается
Сверка кабинет ↔ трекер ↔ партнёрка раз в неделю — 20 минут работы. Цена пропущенной аномалии — пара тысяч долларов, скрученных в неправильную сторону. У меня в Notion висит чек-лист на 7 пунктов, прохожу по нему каждый понедельник перед тем, как трогать ставки.
3. Атрибуция: last-click убивает связки, которые греют воронку
Last-click — модель по умолчанию почти везде, и она удобная, потому что не требует объяснений. Но если у тебя в связке преленд + ретаргет + органика по бренду, last-click припишет 80% денег ретаргету, а холодный пуш с TikTok будет выглядеть убыточным. Хотя именно он приводит новую аудиторию, которую дальше дожимает ретаргет.
Что у меня работает
На дешёвых офферах (до $30 payout) держу last-click — проще и достаточно. На дорогих ($60+) и на связках с длинным циклом подключаю data-driven через position-based: 40% на первое касание, 40% на последнее, 20% размазываю по середине. Не идеальная модель, но даёт куда более честную картину, чем last-click. Когда переключился на этом анализе на одной финансовой связке, бюджет на «холодные» источники вырос на 31%, а общий ROAS — на 19%.
Подсказка из практики
Никогда не сравнивай две атрибуции «вживую» — сравнивай ретроспективно на одном и том же отрезке. Иначе шум данных съест разницу. Подробнее о портфельной модели и сравнении подходов писал в разборе сравнение моделей атрибуции на TikTok и Meta.
4. UTM-дисциплина и naming-конвенция
Если в отчётах у тебя creative_v3_final_FINAL и creative_v3_final_new — ты не сможешь нормально агрегировать данные. Я через это прошёл, теперь у нас в команде жёсткая схема naming, любой бай флага не пройдёт код-ревью пока не назовёт связку по стандарту: ГЕО_оффер_сорс_крео-номер_лендинг-номер_дата. Один взгляд — и понятно, что это за поток.
Минимальная схема UTM
- utm_source — площадка (fb, tt, gads), без вариаций;
- utm_medium — тип трафика (cpc, cpm, push, native);
- utm_campaign — связка по naming-конвенции, никаких пробелов и кириллицы;
- utm_content — креатив (crea_001, crea_002), номера сквозные по проекту;
- utm_term — таргет/сегмент (lal3_male_25-44).
Зачем это нужно
Когда у тебя 40+ активных кампаний, без naming-конвенции ты физически не сможешь сравнить, что лучше — лендинг A или лендинг B на одном крео. Я в первый месяц без дисциплины терял часа полтора в день на ручную разборку отчётов. После внедрения схемы — 15 минут на дашборд. Развёрнутую структуру и анти-паттерны разобрал отдельно в материале разбор UTM-структуры и naming convention.
5. Tracking как фильтр качества: антифрод поверх постбэка
Связь tracking и качества трафика — самое недооценённое в нашей вертикали. У тебя может быть идеальный S2S, аккуратные UTM, честная атрибуция — но если на связку зашёл бот-фарм через сомнительный паблишер, ты увидишь это только через апрув-рейт. А это уже минус $1500–3000, в зависимости от объёма.
Что я держу в трекере поверх кликов
Поверх click_id у меня едут: IP-репутация (через сторонний антифрод-сервис), отпечаток браузера, скорость наполнения формы (бот всегда заполняет быстрее 4 секунд), повторные клики с одного fingerprint в пределах часа. Если по источнику апрув-рейт падает с 38% до 22% за двое суток — связка ставится на паузу автоматически, без моего участия. Один раз эта автоматика отсекла $850 трат на паблишере, который начал миксовать в трафик бот-фарм через клоаку. Если бы крутил вручную — заметил бы дня через четыре.
Почему пиксели уже не вытягивают
На iOS 17+ и в режимах усиленной приватности браузеры режут до 32% событий пикселя. Это значит, если ты опираешься только на client-side, треть твоего сигнала уходит в туман. Server-side postback не зависит от куки и блокировщиков, потому что бьёт с бэка партнёрки прямо на твой трекер. Поднять S2S — это 2–4 часа работы для одного оффера, дальше он живёт сам. Подробнее про сигналы и фильтрацию мусора собрал в материале о качество трафика и антифрод.
Мини-кейс: как переход на S2S вытащил связку из минуса
Декабрь, связка по финансам на DE, лили через FB Ads + преленд-калькулятор. По кабинету: CTR 2.8%, CPL $4.20, бюджет $480/день, ROAS 0.92. То есть мы 8% литим в минус каждый день. По логике — гасить.
Подключили server-side postback от партнёрки, прокинули sub_id через всю воронку, добили дашборд через неделю данных. Картина перевернулась: треть лидов на iOS просто не доезжала до пикселя Meta, фактический CPL — $3.10, апрув-рейт по «теневой» части был выше среднего (51% против 37% по видимой), потому что туда шла платежеспособная аудитория старых iPhone. Реальный ROAS после S2S — 1.27.
Не выключили связку — наоборот, увеличили бюджет до $720/день и переключили оптимизацию на конверсии из CRM, а не из пикселя. Через 30 дней средний ROAS по связке встал на 1.34, чистая маржа +27% к стартовому показателю. Технически вся работа — пара дней одного разработчика. Цена ошибки, если бы прихлопнули связку — упущенные ~$8.5K маржи за квартал.
Чек-лист: проверь свой tracking за 7 минут
- Click_id доезжает до выплаты, не только до лида;
- Постбэки идемпотентны (нет дублей по transaction_id);
- Расхождение кабинет ↔ трекер по кликам не превышает 3–5%;
- UTM единые, по naming-конвенции, без вариаций;
- Креативы и сегменты разнесены — видишь EPC и ROAS по каждому;
- Поверх кликов работает антифрод (fingerprint, скорость формы, IP-репутация);
- Server-side postback поднят минимум на iOS-аудиторию;
- Сверка трекера и CRM партнёрки раз в неделю, по чек-листу;
- Есть отдельный слой коммерческих метрик: апрув, выкуп, средний чек, рефанды;
- Решения по бюджету принимаются по деньгам, а не по лидам в кабинете.
Если по этому списку у тебя минусов больше двух — почти наверняка теряешь маржу на пустом месте. Каждая позиция — это не идеология, это рабочие шаги, которые я и моя команда проходили на собственных деньгах. Дешевле починить tracking, чем масштабировать неправильную связку ещё на месяц.





