Чистим рассылку с помощью Mailchimp, Google Sheets и здравого смысла

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

Удивительно, но когда мы — я говорю о группе маркетинга коворкингового пространства "Терминал 42" в Одессе, — созрели принять решение решительно почистить базу подписчиков, оказалось, что для этого недостаточно просто отсортировать лист по активности и несколько раз кликнуть мышкой. Задача, несмотря на распространенность, оказалась не очень тривиальной, но интересной.

Вводные данные

Наша рассылка существует с мая 2015 года, когда, собственно, открылся коворкинг, и основное её содержание — это новости коворкинга и анонсы мероприятий, которые в нем проводятся. Календарь мероприятий у нас достаточно насыщенный и рассылка выходит один-два раза в неделю. База подписчиков собирается в основном на сайте — как стандартной формой подписки, так и всплывающими окнами (впрочем, от этого способа отказались), кроме того, по умолчанию подписка предлагается всем, кто покупает билеты на мероприятия у нас на сайте. Чтобы облегчить процесс подписки, мы не применяли double opt-in, но недавно все же решили его включить — опыт показал, что наша аудитория на спам не жалуется, но открывать внезапно прилетевшие рассылки тоже не спешит. На момент начала генеральной чистки в базе числилось 6596 адресов подписчиков и около 2к адресов в статусе Unsubscribed. Средний open rate колебался на уровне 10-13%, CTR — 1-1,5%, что в абсолютных числах давало 600-700 открытий писем и 50-80 кликов в письмах. При этом анонсы в рассылке генерировали определенные продажи и многие посетители говорили, что узнали о мероприятиях из рассылки.

Продажа билетов у нас реализована с помощью Woocommerce и это дало в своё время возможность интегрировать магазин с Mailchimp и видеть, кто из подписчиков делает реальные покупки. Побочный эффект — Mailchimp хранит у себя данные и про тех покупателей, которые на рассылку не подписаны. Забегая вперед, скажу, что эта интеграция оказалась хорошей подмогой в решении нашей задачи.

Этап 1. Валидация листа

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

Должен сказать, что этот этап оказался довольно противоречивым. Мы попробовали сразу несколько сервисов — Correct.email, Emaillistverify и Zerobounce. Предсказуемо все сервисы дали разные результаты, сойдясь в нескольких пунктах:

  • Ошибки вида invalid mailbox или user unknown — это объективно невалидный адрес и такой адрес можно удалять сразу.
  • Ролевые адреса считаются источником риска, поскольку их читают несколько человек и их не принято использовать для личных подписок.
  • Адреса временных сервисов типа mailinator выделяются отдельно и тоже не рекомендуются к рассылке.

На этом этапе нам очень помогла интеграция с магазином — когда тебе говорят, что адрес info@ является опасным, а ты видишь несколько реальных покупок с этим адресом в профиле, опасность перестаёт казаться неминуемой :). В итоге после внимательного анализа всех результатов мы отписали только явно невалидные адреса, приводившие к hard bounce, их было около 40.

Этап 2. Сегментация базы по активности пользователей

Несмотря на очевидность этого этапа, технически его не так просто реализовать. Для начала — какого пользователя считать активным? Mailchimp предлагает считать неактивным того, кто 5 выпусков подряд не открывает вашу рассылку. Но если рассылка выходит 2 раза в неделю, то человек, в последний раз открывший рассылку в середине декабря, к концу новогодних каникул станет неактивным, а правильно ли это? К тому же наши посетители часто ездят и без каникул, могут улететь зимовать в теплые страны и вряд ли хотят с нами расставаться из-за этого. Мы решили считать неактивным подписчиком того, кто 3 месяца не открывал нашу рассылку — и столкнулись с первыми трудностями.

Встроенные фильтры для построения сегментов в Mailchimp позволяют построить сегмент тех, кто за последние 3 месяца открывал рассылку. А вот обратный сегмент — тех, кто не открыл ни одного выпуска за 3 месяца, — построить нельзя. Предлагается лишь опция "Те, кто за 3 месяца не открыл все выпуски" — и с ней в список неактивных влетает чуть ли не 90% базы, ведь достаточно не прочесть хотя бы один выпуск из примерно 20.

Мы разделили задачу пополам и для начала выделили активных подписчиков, которым продолжили посылать стандартную рассылку. Правда, одновременно мы начали тестировать несколько фишек для повышения открываемости, поэтому полностью корректными результаты назвать нельзя. Но вот что получилось в итоге:

Кол-во получателейОткрытияOR, %КликиCTR, %
1655580812,4871,3
2317669822,0300,9
32852147151,7752,6
4328889127,1652,0

Как видно, программа-минимум выполнена — уменьшение более чем вдвое количества рассылаемых писем не привело к уменьшению открытий. Кроме того, открываемость и кликабельность выпусков колеблется и от других причин.

Остаётся вторая часть задачи — разбудить неактивных подписчиков.

Особенности фильтров Mailchimp

Здесь необходимо сделать небольшое отступление. Дело в том, что у Mailchimp есть одна особенность — даже когда пользователь отписывается от вашей рассылки, он не удаляется из базы. Это полезно и хорошо, поскольку даёт возможность видеть всю активность подписчиков, но в определенных местах может вылезти боком. Например, когда вы составляете сегмент неактивных подписчиков. По умолчанию сегменты строятся из всех адресов базы, включая отписавшихся и (помните про нашу интеграцию с Woocommerce) non-subscribed пользователей. Если этого не учесть, то ваше письмо "Нам кажется, что вы нас не читаете" уйдёт и тем, кто только что отписался, и тем, кто вообще не подписывался.

К сожалению, это сильно ограничивает возможности сегментации — поскольку фильтр может теперь выглядеть только как комбинация параметров, причем только вот такого вида:

Если не выбрать параметр Email Marketing Status, в сегмент попадут и отписавшиеся от рассылки

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

Этап 3. Разбудить неактивных

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

ПисьмоКол-во получателейОткрытияOR, %КликиCTR, %
1373145412,2691,9
23317912,8170,5
332021334,2351,1

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

Этап 4. Определение безнадежно неактивных подписчиков

В общем-то, ради этого всё и затевалось и казалось, что всё просто — сейчас мы возьмём список тех, кто остался неактивным, несмотря на все наши усилия, и отпишем их от рассылки. Но вспомните то, что мы писали раньше про особенности фильтров Mailchimp. Мы выгрузили один сегмент пользователей — и обнаружили в нём вполне активных подписчиков. Немного поменяли фильтры — все равно в сегмент попадают подписчики, открывавшие рассылку совсем недавно или только что подписавшиеся. И, если написать им по ошибке письмо "Эй, ну где вы?" оказалось нестрашно, то отписывать по ошибке лояльных пользователей совершенно не хотелось. Задача бы сильно упростилась, если Mailchimp указывал бы хоть какие-то параметры активности в файле экспорта листа или сегмента, но он этого не делает.

Пришлось изобретать довольно заковыристый способ — сначала экспортировать список подписчиков целиком, потом сделать экспорт сегмента "Открыли хотя бы одно письмо за три месяца" и потом "вычесть" сегмент из общего списка. Покажем, как это сделать с помощью Google Sheets.

Первым шагом делаем экспорт всего листа — для этого требуются полномочия админа аккаунта. На выходе получается архив с тремя списками — subscribed, unsubscribed и non-subscribed (в нашем случае), из которых нам понадобится, понятно, только первый.

Вторым шагом строим сегмент активных подписчиков — он, вообще-то, уже у нас есть еще со второго этапа, Mailchimp его обновляет автоматически, так что достаточно его только скачать.

Настройка сегмента "Подписчики, открывшие хотя бы раз письмо за 3 месяца"

Третьим шагом создаем новую таблицу на сервисе Google Sheets. На первый лист таблицы импортируем данные полного списка — для этого выбираем File-Import…-Upload и загружаем csv-файл.

Добавляем еще один лист в таблицу и повторяем импорт уже для файла с экспортом сегмента активных подписчиков.

Для "вычитания" списков мы используем функцию VLOOKUP, которая находит значение заданной ячейки одной таблицы в другой (или на другом листе той же таблицы) и, если поиск неудачен, запишет в ячейку "#N/A". Вот как будет она выглядеть в нашем случае:

VLOOKUP(A1:A,'Активные'!$A$2:$A$6500,1, false)

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

При небольшом размере списка подписчиков формулу можно просто скопировать привычным образом — потянув за угол первой ячейки вниз. Нам тянуть 6500 строк не хотелось и поэтому, введя формулу в первую строку таблицы, мы нажали Cmd+Shift+Enter (это для OS X, в Windows нажмите Ctrl+Shift+Enter) и таблица сама подставила формулу для всего столбца:

ArrayFormula(VLOOKUP(A1:A,'Активные'!$A$2:$A$18818,1, false))

И осталось всего ничего — Data-Filter On-Create new filter view, где в качестве фильтра снять все галки и выбрать только "#N/A". Это и будут те пользователи из общего списка, которых нет в списке активных.

Кстати, на этом месте у нас начал вешаться Google Chrome и пришлось воспользоваться Safari.

Этап 5, последний. Удаляем неактивных

А вот теперь действительно просто — после того, как в нашей таблице видны только неактивные пользователи, просто выделяем первый столбец, содержащий email-адреса, копируем в буфер обмена и идем в настройках рассылки в пункт Manage Contacts - Unsubscribe addresses. Только стоит все же включить здравый смысл и вручную посмотреть на получившийся список — поскольку из-за тех же особенностей Mailchimp в сегменте активных пользователей не оказалось тех, кто только что подписался на рассылку, и их удалять, конечно, не стоит. Впрочем, они будут в самом конце или в самом начале списка плотной группой, так что исключить их не составит труда.

Вставляем адреса в форму, нажимаем на Unsubscribe и идем отдыхать. К сожалению, более человеческого способа Mailchimp не предлагает, а с этим он будет тупить довольно долго, но в итоге прожует и несколько тысяч адресов.

Послесловие

В итоге от нашего списка в 6596 подписчиков осталось 3444 подписчика, то есть чуть больше половины. Если бы в нашем аккаунте это была единственная рассылка, то моментальный эффект выразился бы в $25 ежемесячной абонплаты на сервисе. Но экономия — это вторичный эффект. А как изменились другие параметры рассылки?

Кол-во получателейОткрытий%Кликов%
1647185713,3761,2
2328895229,0662,0
3346091326,4682,0

В таблице выше приведены данные для трех выпусков рассылки:

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

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

На наш взгляд, хорошо, не правда ли?

preview Сохраненные копии страниц – это не то, что находится в индексе

Сохраненные копии страниц – это не то, что находится в индексе

В Яндексе версия анализируемой страницы в сохраненной копии свежее версии в индексе, а в Google – наоборот
preview Что такое «dwell time» и почему этот показатель важен для SEO

Что такое «dwell time» и почему этот показатель важен для SEO

Dwell time – это одна из тех метрик, которые упоминаются во многих статьях, социальных медиа и выступлениях на конференциях...
preview Ищем новые возможности для SEO с помощью лог-файлов

Ищем новые возможности для SEO с помощью лог-файлов

Единственный инструмент, который даёт полное представление о том, как поисковые системы сканируют сайт – это лог-файлы
preview HTTPS для всех или Шаг к безопасному рунету

HTTPS для всех или Шаг к безопасному рунету

Возможная потеря трафика при смене протокола до сих пор волнует очень многих и зачастую останавливает от начала этого процесса
preview Как избежать SEO-проблем с параметрами URL: подробное руководство

Как избежать SEO-проблем с параметрами URL: подробное руководство

В статье автор делится практическими советами и тактиками, которые помогут оптимизировать работу с параметрами URL
preview Голосовой поиск и SEO: что нужно знать?

Голосовой поиск и SEO: что нужно знать?

Популярность голосового поиска в будущем будет расти, и с этим надо считаться