Колонки

Письмо на миллион: что учесть и как сэкономить при работе с массовыми email-рассылками

Колонки
Павел Колжиков
Павел Колжиков

технический директор «Викиум»

Ольга Лисина

Компании активно коммуницируют с клиентами через email-рассылки — часто это самый эффективный способ оповестить всех об акциях и обновлениях. 

У «Викиума» сейчас более 6 млн пользователей, и ежемесячно команда отправляет около 50 млн писем. Технический директор компании Павел Колжиков рассказывает, что нужно учесть, когда аудитория измеряется семизначными числами, и на чем можно сэкономить.

Письмо на миллион: что учесть и как сэкономить при работе с массовыми email-рассылками

Когда пора разворачивать собственный сервер 

Решение о развертывании своего сервера мы приняли, когда стоимость наших рассылок перевалила за $2 тысячи, а объем составлял порядка 10–12 млн писем в месяц. С учетом темпов роста нашей пользовательской базы мы приняли решение развернуть собственный почтовый сервер, чтобы минимизировать стоимость рассылок в будущем. 

Выбор коробочных решений не так велик, и мы рассматривали четыре варианта: Mail-in-a-Box, iRedMail, Modoboa, Postal — и остановились на последнем. Наш выбор был основан на том, что это одна из немногих систем, которая позволяет «из коробки» получать метрики по рассылкам и принимает в качестве входных данных уже сверстанное письмо. Также большим плюсом является то, что подмена ссылок в письме на внутренние для дальнейшей аналитики происходит автоматически. 

Позже мы ввели в эксплуатацию еще два сервера и по ним прогревали IP. Это вынудило нас доработать логику перераспределения числа отправляемых писем с каждого сервера, чтобы плавно поднимать нагрузку на новых серверах. Возможно, на круг будет дешевле ввести больше серверов на ранних этапах и иметь запас мощности, чем потом привлекать разработчиков для реализации дополнительной логики. 

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

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


Большие объемы не подразумевают спешки

Ежедневно мы осуществляем одну-две большие рассылки на 1,7 млн пользователей. Технически возможно выполнить такую задачу за час, но мы отправляем письма семь часов. Почему?

  • Во-первых, растянутая процедура помогает нам следить за обратной связью и количеством покупок. На протяжении всего процесса мы следим за метриками и можем остановить рассылку, если что-то пойдет не так, и скорректировать письмо. 
  • Во-вторых, необходимо следить за попаданием в спам.

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


Olha Kozachenko / Shutterstock 


Проблема хранения данных

Увеличивающаяся клиентская база заставляла нас менять планы несколько раз, так как большие объемы данных ограничивают аналитику. Сначала мы планировали хранить все данные за полгода, потом — за три месяца, но в итоге ограничились лишь месяцем, а исторические данные храним в агрегированном виде по ключевым метрикам, которые рассчитываются раз в 30 минут. 

В процессе мы переехали на новый сервер БД, и силами нашего администратора удалось это сделать без даунтайма.

После резкого сокращения периода хранения данных и внедрения механизма агрегации метрик в отдельном хранилище мы выполнили оптимизацию таблиц в базы данных Postal для ее ускорения. Это наложило на нас ограничения по большим рассылкам на пару дней.

Чтобы не повторять наших ошибок, вы должны сразу попытаться оценить реальное время, которое вы сможете хранить еще не агрегированные данные, и уже на основе этого выделять сервер под базу данных с соответствующим объемом памяти и сразу предусмотреть механизмы агрегации статистических данных. 

Если же для вас важно хранить неагрегированные данные, нужно посмотреть в сторону кластера БД. 


Автоматизация рассылок

Почтовый сервер мы использовали только для доставки сообщений и сбора аналитики по ним, а подготовка писем у нас была организована в ручном режиме. Сначала верстается письмо, затем разработчик формирует запрос к БД для выборки нужного среза пользователей, далее запускается команда в консоли для отправки. 

Эти активности сильно отвлекали от основной разработки.

Мы решили автоматизировать процесс формирования шаблона письма — и разработали собственную админку для создания писем на базе заранее подготовленных шаблонов. Это позволило существенно ускорить и удешевить процесс подготовки письма для отправки. 

Сейчас процесс создания нового письма выглядит примерно так: сотрудник заполняет ряд обязательных полей, таких как название письма, уникальный идентификатор для аналитики и имя отправителя. Далее в уже сверстанный шаблон подставляется изображение и текст. Перепроверяем результат для всех типов устройств (ПК/планшет/телефон) в визуальном редакторе — и письмо готово к отправке. 

Если необходимо внедрить какой-то новый шаблон писем, заводится задача на команду разработки (это происходит крайне редко).


Как достичь максимума

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

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


Фото на обложке: HAKINMHAN / Shutterstock 

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Как отправить рассылку так, чтобы она не попала в спам?
  2. 2 Ваша рассылка не работает? Вот как можно это исправить
  3. 3 Клиенты не открывают ваши email-рассылки? Что нужно изменить в первую очередь

Актуальные материалы —
в Telegram-канале @Rusbase