В два раза меньше недоставок и неотправок. Как в Т—Ж справились с атакой ботов, переполненными ящиками и заблокированными IP

Т—Ж — издание про деньги и жизнь, первое и самое охватное бренд-медиа в России
Масштаб бизнеса. 
33 млн уникальных читателей в месяц
автор
Ирина Карпенко,
лид коммуникаций Т—Ж
Задача
Сохранить репутацию почтового домена
Решение
Расследовать причины недоставок и неотправок, чтобы снизить их количество
Результат
60 тыс. → 30 тыс. среднее количество недоставок и неотправок в месяц

Срок. 

3 месяца
Весной 2024 года в Т—Ж начали увеличивать базу активных email-подписчиков и настроили регулярные отправки клиентам, которые не открывали рассылки минимум месяц. На фоне этого среднее количество недоставок и неотправок в месяц быстро выросло до 60 тысяч. Из-за этого репутация домена могла пострадать — рассылки стали бы часто попадать в спам. Поэтому команда начала операцию по спасению доставляемости — за несколько месяцев неотправки и недоставки снизили в два раза.
Лид коммуникаций Т—Ж рассказывает, как расследовали рост недоставок и неотправок и какие неочевидные причины обнаружили. Например, что ошибки отправки могут возникать из-за содержания писем или атаки ботов.
Мастрид для тех, кто хочет держать доставляемость под контролем и сохранять репутацию домена, чтобы не попадать в «Спам».

Результат

  • 60 тыс.30 тыс.
    среднее количество недоставок и неотправок в месяц за март — май и июнь — август 2024 года. Данные Mindbox

Среднее количество недоставок и неотправок в месяц

С июня начали устранять причины роста недоставок и неотправок

В какой момент увеличились недоставки и неотправки

Автор
Ирина Карпенко,
лид коммуникаций Т—Ж
В Т—Ж выходят статьи о детях, психологии, автомобилях — всего 32 темы, внутри которых есть еще подтемы. Чтобы не пропускать новые публикации, читатели подписываются на интересные им рубрики.
В 2024 году Т—Ж работал над ростом лояльной аудитории, поэтому мы в команде коммуникаций поставили перед собой цель — увеличить активную аудиторию регулярных рассылок. Активными мы считаем пользователей, которые открыли хотя бы одно письмо за месяц. Всех остальных разделили на два сегмента:
  • тех, кто открывает нетематические рассылки, например уведомления о новых публикациях или сервисные письма. Мы предположили, что вкусы таких пользователей изменились и темы, на которые они когда-то подписались, им уже неинтересны;
  • тех, кто последние сто дней не реагирует ни на какую коммуникацию.
Выбранным сегментам сначала отправили массовые рассылки. Например, тем, кто открывал сервисные, предложили подписаться на новые темы. Из писем, которые срабатывали лучше других, собирали автоматические кампании, например реактивацию для тех, кто больше ста дней не читает наши письма.
Картинка
Подписчикам, которые ранее подписались на тематические рассылки, но открывали только нетематические, предложили выбрать новые темы
Картинка
Подписчикам, которые не открыли ни одной рассылки от Т—Ж за сто дней, отправили реактивационное письмо
Мы предполагали, что число отписок, неотправок и недоставок вырастет, так как это «холодная» аудитория: часть адресов могла стать неактуальной или подписчики могли закинуть письма в спам. Обычно в среднем за месяц число неотправок и недоставок колебалось в районе 40 тысяч, в редких случаях доходило до 45 тысяч. Поэтому мы решили: если превысим порог в 45 тысяч, рассылки останавливаем и пересматриваем сегменты и механики, чтобы не ухудшать репутацию почтового домена.
Однако недоставки и неотправки увеличились слишком быстро: через месяц после запуска суммарное количество недоставок и неотправок превысило 60 тысяч в месяц — почти на треть больше предельного значения. Мы не ожидали такого сильного роста, поэтому остановили рассылки и начали искать причины.

Как выясняли, почему выросли недоставки и неотправки

Прежде всего мы обратились к метрикам новых рассылок и обнаружили, что показатели отписок, жалоб на спам и недоставок в норме. Значения были чуть выше, чем у остальных коммуникаций, но это было ожидаемо, так как аудитория была неактивная. К тому же в абсолютных значениях прирост был незначительным.
Проанализировали общие метрики рассылок, для этого воспользовались отчетом «Здоровье email» в Mindbox. Он также показывал, что все в порядке: наши показатели были даже лучше, чем в среднем в индустрии.
Итак, мы поняли, что дело все же не в новых рассылках, но показатели по недоставкам и неотправкам слишком высокие. А значит, на проекте что-то работает не так — оставить проблему без внимания нельзя, иначе это выльется в еще больший процент ошибок и приведет в спам. Поэтому мы начали более глубокое расследование.
Картинка
В отчете «Здоровье email» показатели Т—Ж были в норме
Мы решили найти рассылки, которые генерируют ошибки. Для этого:
1. Выгрузили все ошибки доставки или отправки из Mindbox в Google-таблицу. Для удобства взяли данные за семь дней, так как каждую неделю мы отправляем одинаковый набор рассылок — больший период не принес бы новых данных, а просто увеличил бы их количество и усложнил бы обработку.
Картинка
Фильтр Mindbox для выгрузки всех ошибок доставки или отправки
2. По каждому действию выделили типы недоставки или неотправки — определили самые частые.

Типы недоставок

Типы неотправок

3. По самым частым типам недоставки и неоправки нашли рассылки с наибольшим количеством ошибок. Интересно, что в основном это были базовые рассылки, запущенные до эксперимента.

Рассылки с ошибкой «адрес не существует»

Пример поиска рассылок, которые приносят больше всего ошибок определенного типа
4. Изучали рассылки, у которых было много одинаковых неотправок и недоставок. Когда расследовали ошибку «невалидный контакт», смотрели на сегменты, которые участвовали в рассылке. Если письма возвращались с ошибкой «актуальность рассылки закончилась», проверяли их настройки.

Из-за чего выросли неотправки и недоставки и как устранили причины

При расследовании обнаружили шесть причин роста неотправок и недоставок.

Причина 1. Атака ботов

В некоторых рассылках мы заметили отправки по ботам, из-за которых и падала доставляемость отдельных кампаний. Вычислили их по трем паттернам поведения:
  1. Первая группа ботов оставляла в попапе несуществующий контакт и после подписки не совершала на сайте ни одного действия в течение 2–3 дней.
  2. Вторая группа также подписывалась на рассылки через попап и оставляла несуществующий контакт. Но при этом они могли совершать действия на сайте.
  3. Третья группа вызывала операцию подписки на сайте напрямую, кодом — в Mindbox передавалась только подписка без каких-либо других действий на сайте.
Также у ботов были схожие признаки:
  • не были указаны имя и фамилия;
  • в Mindbox стояла пометка, что устройство деактивировано;
  • была общая «маска» email, например восемь случайных символов в адресе электронной почты.
С помощью фильтров Mindbox всех ботов объединили в сегмент и исключили из рассылок, а затем настроили автоудаление.
Картинка
Фильтр Mindbox, с помощью которого отделяли ботов от реальных подписчиков

Причина 2. Письма формировались слишком долго и не успевали отправиться

В Mindbox можно установить актуальность рассылки — время, в течение которого письмо может отправиться подписчику. Это полезно, например, если нужно рассказать про акцию, которая длится пару часов: клиенты не получат рассылку в момент, когда акция уже закончилась.
Письма, которые не успевают отправиться в указанное время, возвращаются с ошибкой «актуальность рассылки закончилась, сообщение не успело отправиться». В нашем случае эта ошибка была одной из самых распространенных.
Мы заметили, что часто такая проблема случается с письмами, в которых много блоков персонализации: содержание письма зависит от дополнительных полей, интересов пользователя, его поведения на сайте. Если в рассылке много подобных блоков, нужно время, чтобы письмо сформировалось и отправилось. Из-за того, что мы ограничивали актуальность рассылки 10 минутами, наши письма не успевали отправиться.
Мы пересмотрели содержание рассылок и поняли, что клиенты не пострадают, если получат такие письма, например, в течение часа. Срок актуальности увеличили, и ошибок стало меньше.
Картинка
Чтобы повысить конверсию в подтверждение почты, DOI-письмо подставляют тему, на которую подписался пользователь. Из-за этого отправка могла формироваться дольше 10 минут и не отправлялась
Картинка
В параметрах рассылки можно указать срок, за который она должна отправиться

Причина 3. Не было проверки email на валидность

Мы заметили, что не во всех сценариях есть проверка email на валидность. Выяснили, что такая проблема повторяется в рассылках, которые раньше были массовыми: мы сделали их автоматическими, но во время переноса потеряли условие.
Решение простое — прошлись по всем рассылкам и добавили проверку на валидность во все сценарии, где ее не было.
Картинка
Проверка на валидность email в сценарии для автоматической рассылки

Причина 4. Подписчики с переполненными ящиками

Часть недоставок случалась из-за переполненных почтовых ящиков. Решением стал карантин. Мы настроили пересчитываемый сегмент, в который попадают клиенты с недоставками из-за переполненного ящика за последние семь дней. После попадания в сегмент подписчик на неделю исключается из рассылок. По истечении этого времени ему снова отправляют письма, но если они опять не доставляются, контакт возвращаем в карантин.

Логика отправки подписчиков с переполненными ящиками в карантин

Картинка
Фильтр Mindbox, который отделяет клиентов с переполненными ящиками

Причина 5. Отправки с заблокированных IP

Некоторые недоставки были из-за отправок с заблокированных IP. С ними также помог карантин, но не на семь дней, как с переполненными ящиками, а на два часа.
Картинка
Фильтр Mindbox выделяет клиентов, которым пытались отправить рассылку с заблокированного IP

Дополнительная причина — технические сбои в мобильных пушах

Пока искали причины недоставки и неотправки, нашли технические ошибки, которые раньше не замечали. Например, у нас отключился Firebase и мобильные пуши перестали отправляться — отсюда недоставки. На тот момент мы только начинали развивать мобильные пуши, база была небольшой, поэтому без этого расследования могли упустить эти ошибки.
Картинка
Firebase не отправлял мобильные пуши, и Mindbox сообщал о недоставке
Еще один технический сбой произошел в базе данных. Для отправки мобильных пушей нам достаточно, чтобы в настройках устройства стояло согласие на показ уведомлений от мобильного приложения. То есть пользователи не подписываются и не отписываются от пушей — они включают или выключают уведомления. Однако из-за сбоя по некоторым пользователям в Mindbox стал передаваться статус «отписан».
Найденные ошибки передали разработчикам, а также провели диагностику интеграции мобильного приложения с Mindbox.

5 правил высокой доставляемости

За пару месяцев мы снизили недоставки и неотправки с 60 до 30 тысяч — это меньше нашего планового значения. Прошло уже семь месяцев, но мы до сих пор удерживаем достигнутый уровень. Помогают нам в этом несколько правил:
  1. В каждой рассылке должна быть проверка на валидность.
  2. Клиенты с недоставкой из-за переполненного ящика отправляются в карантин на семь дней.
  3. Без острой необходимости не сокращаем срок актуальности рассылки — в большинстве случаев оставляем окно в 24 часа, если важно, чтобы подписчик получил письмо день в день.
  4. Исключаем из всех рассылок ботов.
  5. Настроили автоудаление неактивных и невалидных пользователей из Mindbox.
P. S. В этой истории мы рассказывали о нашем продукте Рассылки. Узнайте подробнее на его странице или в разговоре с консультантом.