Кейс

Клики почтовых сканеров: как роботы завышают CTOR email-рассылок

5 мин чтения
926 слов

Весной 2026 года я собирал для крупного международного FMCG-холдинга платформу аналитики email-программы: семь брендов, 1 433 шаблона, больше 19 млн отправок за 2024–2026 годы. Задача была обычная: показать, какие письма работают, и научить AI-разбор объяснять почему. По дороге выяснилось, что одна из главных метрик — CTOR, доля кликнувших среди открывших, — заметно завышена. Кликали не только люди.

Этот кейс — о том, как это увидеть в данных ESP, как оценить вклад роботов без доступа к логам почтовых серверов и чего такая оценка не умеет.

Коротко

Откуда берутся лишние клики

Платформа хранит по каждому письму клики по ссылкам — всего 12 414 строк «письмо × ссылка × число кликов». Обычно на такие данные смотрят сверху вниз: какая кнопка собрала больше всего. Для этой задачи полезнее смотреть снизу вверх — на самые непопулярные ссылки.

Корпоративные системы защиты почты проверяют письмо до того, как отдать его получателю: переходят по ссылкам и смотрят, не ведут ли они на фишинг. ESP видит такой переход как обычный клик. Разница с человеком — в поведении: сканер нажимает каждую ссылку письма, человек — одну-две, обычно главную кнопку или баннер.

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

Метод: пол по ссылкам

Если сканер нажимает каждую ссылку письма, то у каждой ссылки есть одна и та же «подложка» из роботов. Люди добавляют сверху своё: много — на главной кнопке, почти ничего — на футере. Значит, минимум кликов среди всех ссылок письма — это и есть подложка плюс то немногое, что люди дали самой непопулярной ссылке.

Отсюда правило:

  1. Для каждого письма берём клики по всем его ссылкам.
  2. Минимум по ссылкам — оценка числа кликнувших роботов.
  3. Вычитаем её из кликнувших и пересчитываем CTOR.

Метод не требует ни логов почтовых серверов, ни заголовков запросов, ни user-agent: хватает той выгрузки, которую ESP и так отдаёт маркетологу. Поэтому его можно повторить на любой программе, где есть клики в разрезе ссылок.

Что получилось в цифрах

На 1 346 письмах с кликами по ссылкам:

Показатель Значение
Медиана CTOR за 1 кв. 2026, по отчёту 26,4%
Медиана CTOR за 1 кв. 2026, без роботов ≈ 20,8%
Доля роботов среди кликнувших, 4 кв. 2025 15%
Доля роботов среди кликнувших, 1 кв. 2026 20%
Писем, где роботы дают ≥ 1/5 кликнувших 221 из 1 346

Разница между 26,4% и 20,8% — это не погрешность, а другой уровень эффективности программы. А рост доли роботов квартал к кварталу значит, что сравнение «этот квартал лучше прошлого» по сырому CTOR начинает врать: часть роста — это рост защиты почты у получателей, а не интерес к письмам.

Что сделали с находкой

Записка аналитику клиента. Метод, цифры и список писем, где роботы дают заметную долю кликов, ушли аналитику клиента. Решение, как учитывать поправку в их отчётности, — за ними.

Поправка в AI-разборе. Платформа пишет разбор каждого письма: что сработало, что нет, что поменять. Проценты и планки для разбора считает код, модель их только объясняет. Поправку на сканеры я встроил в разбор: он должен учитывать клики роботов и не хвалить письмо за клики, которых не было. На момент публикации эта версия разбора готова и ждёт выкладки на сервер заказчика.

Старые выводы — под перемер. Раньше на этой же платформе я считал эффективность контентных тегов: например, конкретная сумма в теле письма давала +13,2 п.п. CTOR, а «Привет, Имя!» в теме — минус 4,5 п.п. Эти цифры посчитаны до поправки на сканеры. Если роботы распределены по письмам неравномерно — а в 221 письме их заметно больше, чем в остальных, — выводы по тегам нужно пересчитать. Пока этого не сделано, я привожу их только с этой оговоркой.

Ограничения метода

Честно о том, чего пол по ссылкам не умеет:

Поэтому в платформе это именно поправка с пометкой «≈», а не новая «истинная» метрика.

Что из этого стоит забрать

  1. Смотрите на самые непопулярные ссылки. Аномалии в метриках часто видны не в топе, а в хвосте распределения.
  2. Проверяйте метрику, прежде чем строить на ней выводы. Прогнозы, A/B-тесты и выводы о тегах наследуют ошибку исходной метрики.
  3. Цифры для модели считает код. Когда проценты считает код, а модель их только объясняет, поправку достаточно внести в одном месте — и разбор перестаёт хвалить письма за роботов.

Платформу я спроектировал и довёл до эксплуатации через Claude Code; находку со сканерами сделал при разборе данных для AI-разбора.

Стек: Next.js 16, React 19, FastAPI, PostgreSQL 16, pandas, Playwright, tesseract; AI-разбор — на российской модели в контуре заказчика.