Отчёты о рассылках из UniSender в Power BI.
Часть 1. Описание отчета и получение
данных из Unisender
Первая часть статьи по созданию автоматических отчетов из сервиса рассылок Unisender в Power BI от EmailSoldiers.
Разберем получившийся отчет и научимся забирать данные о рассылках из Unisender по API.
Вторая часть статьи по ссылке.

Сегодня мы соберём данные о email-кампаниях из UniSender в красивые отчёты в Microsoft Power BI. Это полезно для наглядности и простого наблюдения за показателями рассылок. Такие отчёты автоматически обновляются, и вам не придётся каждый месяц собирать их вручную. Доступ к ним можно давать клиентам, чтобы те смогли посмотреть отчёт в любой момент. Удобно ещё и то, что однажды сделав отчёт, на его базе можно создавать и другие, всего лишь немного подправив первый.

Хотя эта инструкция учит, как забирать данные из UniSender, вы сможете применять полученные знания не только для этой системы рассылок, но и практически для любого сервиса, необязательно из области email-маркетинга.

Давайте прежде всего разберемся, для чего всё это нужно.

Использовать будем данные компании NeedForData.

В нашем отчёте 4 страницы.

На первой странице — ключевые показатели кампаний. До применения фильтров мы имеем сводный отчёт за все время использования платформы. В фильтрах мы можем выбрать отчётный период / списки подписчиков, статистика которых нас интересует / отдельную рассылку.
На второй странице уже размещёны все показатели в табличном виде. Тут присутствует фильтр по спискам / также в один клик можно получить сводный отчёт за месяц работы.
Третья страница «Клики» демонстрирует статистику переходов. Мы можем выявить самые популярные ссылки в письмах и получить представление о том, какие письма отработали эффективно, какие нет / на какие результаты фактически нацелены произведенные рассылки.
Страница «Листы» в данном отчёте отражает общее состояние списков подписчиков. Если заказчик активно использует формы подписки на сайте, если подписчики попадают в базу подписчиков при регистрации на сайте или при заказе услуги / совершении покупки на сайте, то имеет смысл добавить в этот отчёт график динамики роста базы.
Этот отчёт составлен из данных, интересных нам и конкретному заказчику. Вы сможете настроить то, что важно для вас.

Запросы к API

Итак. Отчёт у нас состоит из четырех страниц. В нём задействованы только данные из UniSender.

Сегодня мы рассмотрим, как создавать именно такие отчёты. Следующие шаги — добавление данных из Яндекс.Метрики и Google Analytics, это мы рассмотрим в следующий раз.

Данные из UniSender мы будем получать с помощью API. В справке находим соответствующую информацию.

В общем виде запрос к API UniSender выглядит так: http://api.unisender.com/LANG/api/METHOD?format=json&api_key=KEY&arg1=ARG_1&argN=ARG_N

Как видно, для совершения запросов нам нужен API KEY.

Обычно его можно получить в личном кабинете сервисов, и UniSender в этом плане не является исключением.

Идём в аккаунт UniSender. Далее идём в Настройки аккаунта → «Интеграция и API» → копируем «Ключ доступа к API».

В справке смотрим, какие методы предоставляет API платформы. Сначала объём информации может показаться устрашающим. Но мы сразу можем исключить из просмотра методы действий (например, целый раздел методов «Методы для партнёрских сайтов», раздел «Создание и отправка сообщений» и т.д.).

Для формирования отчёта нам нужны методы, возвращающие какие-то данные, которые могут быть пригодны для изучения. Даже по заголовкам с коротким описанием можно выделить потенциальных кандидатов на попадание в отчёт (в конечном счёте, далеко не все они будут использованы):

getLists — получить списки рассылки с их кодами
getTotalContactsCount — получить размер базы пользователя
getContactCount — получить количество контактов в списке
getWebVersion — получить ссылку на веб-версию отправленного письма
listTemplates — получить список всех шаблонов без body
getCampaignDeliveryStats — получить отчёт о статусах доставки сообщений для заданной рассылки
getCampaignAggregateStats — получить отчёт о статусах доставки сообщений для заданной рассылки, сгруппированных по типам результата
getVisitedLinks — получить статистику переходов по ссылкам
getCampaigns — получить список рассылок
getCampaignStatus — получить статус рассылки
getMessages — получить список сообщений
getMessage — получение информации об SMS или email сообщении
listMessages — получить список сообщений без тела и вложений
getTags — получить список пользовательских меток

Теперь протестируем работу API.

Для начала проверим, как работает метод getCampaigns.
Этот метод служит для получения списка всех имеющихся рассылок.

Для быстрого тестирования запросов я люблю использовать сервис Postman. Предлагаю вам его также скачать и установить.

Запускаем Postman и собираем запрос:

http://api.unisender.com/ru/api/getCampaigns?format=json&api_key=KEY&from=TIME&to=TIME

Для совершения запросов предпочтительно использовать метод POST. Все параметры должны быть в кодировке UTF-8. В примере выше параметры указаны в GET-запросе, но можно передавать их и в POST. Более того, параметр api_key мы настоятельно рекомендуем передавать через POST, чтобы он не сохранялся в логах прокси-серверов.

В документации метода говорится, что в запросе мы обязаны использовать api_key. Временной интервал from / to не является обязательным и сейчас мы его не будем использовать, но в будущем он нам пригодится.

Сейчас посмотрим, что же мы в результате получим.

Отправляем запрос:
Отлично, API работает. Мы получили наши первые данные. Выглядит неплохо.

Как мы видим, полученные данные соответствуют примеру возвращаемого значения, приведенному в документации.

Обратим внимание на заголовок ответа, видим, что ответ имеет JSON формат. Об этом же нам написано и в документации: «Ответ приходит в виде объекта формата JSON.» При помощи сервиса http://jsoneditoronline.org мы можем подсчитать объём полученных данных.

У нас получилось 1444 рассылок, что вполне соответствует действительности.

Я так и не понял, какую функцию выполняет «аргумент limit со значением 50 по умолчанию», но пока мы получили всё, что хотели. Рассылок в текущем аккаунте гораздо меньше 10 000= (лимит метода на один запрос), поэтому пока мы можем использовать этот метод без дополнительных заморочек.

Теперь попробуем использовать метод getCampaigns для получения данных в Power BI desktop. Если вы ещё его не устанавливали, то сейчас самое время это сделать.

Я рекомендую использовать англоязычную версию программы, поскольку большая часть обучающих материалов, обсуждений на форумах, в статьях подразумевают работу с англоязычной версией. Чтобы её скачать, надо зайти на англоязычную версию официального сайта Power BI.

Далее кликаем «Get started free», скачиваем (во всплывающей форме можно ничего не писать), устанавливаем.