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

Так что давай займемся обезьяньим делом!

Здесь очень пригодятся приложения DataStudio и Googles Script Apps.

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

Mailchimp API

Mailchimp поставляется с API разработчика, который легко использовать с любым языком или фреймворком, который вы выберете, но для целей этого руководства Google Script Apps и его простой JavaScript - это все, что нам понадобится.

Перейдите в Учетная запись ›Дополнительно› Ключи API и нажмите Создать ключ. Теперь вы должны увидеть панель со всеми вашими ключами API. Скопируйте куда-нибудь длинную строку ключа API, так как она нам понадобится позже.

Затем откройте электронную таблицу Google в своей учетной записи на Диске и дайте ей интуитивно понятное имя, например MailchimpCampaignData. Откройте редактор Google Script Apps, выбрав Инструменты ›Редактор скриптов.

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

function chimpCampaigns() {
var API_KEY = 'YOUR_MAILCHIMP_API_KEY_HERE'; // MailChimp API Keyvar var REPORT_START_DATE = '2019-01-01 00:00:00'; // Start Date
var ss = SpreadsheetApp.openById('YOUR_SPREADSHEET_HASH_ID_HERE');
var sheet = ss.getSheetByName("CampaignData");
var dc = API_KEY.split('-')[1];
var api = 'https://'+ dc +'.api.mailchimp.com/3.0';
var count = 500; // Max rows to return
var campaignList = '/campaigns?&count='+count+'&since_send_time='+REPORT_START_DATE
var options = {"headers": {"authorization": 'apikey '+API_KEY}};
var apiCall = function(endpoint){
apiResponseCampaigns = UrlFetchApp.fetch(api+endpoint,options);
json = JSON.parse(apiResponseCampaigns);
return json
}
var campaigns = apiCall(campaignList);
var total = campaigns.total_items;
var campaignData = campaigns.campaigns;
if (campaignData) {
sheet.clear(); // Clear all data in Spreadsheet
// Create the Header
sheet.appendRow(["Sent Time", "Campaign ID", "Campaign Title", "Subject Line", "Emails Sent", "Abuse Reports", "Unsubscribed", "Unsubscribe Rate", "Hard Bounces", "Soft Bounces", "Bounces Total", "Syntax Errors", "Forwards Count", "Forwards Opens", "Opens Total", "Unique Opens", "Open Rate", "Last Open", "Clicks Total", "Unique Clicks","Unique Subscriber Clicks", "Click Rate", "Last Click"]);
}
for (i=0; i< campaignData.length; i++){
  var c = campaignData[i];
  var cid = c.id;
  var title = c.title;
  var subject = c.subject;
  var send_time = c.send_time;
  if (send_time){
    apiResponseReports = UrlFetchApp.fetch('https://'+ dc+'.api.mailchimp.com/3.0/reports/'+cid,options);
    reports = JSON.parse(apiResponseReports);
    reportsSendTime = reports.send_time; 
    if(reportsSendTime){ 
        var campaign_title = c.settings.title;
var subject_line = c.settings.subject_line;
var emails_sent = reports.emails_sent;
var abuse_reports = reports.abuse_reports;
var unsubscribed = reports.unsubscribed;
var unsubscribe_rate = unsubscribed/emails_sent;
var hard_bounces = reports.bounces.hard_bounces;
var soft_bounces = reports.bounces.soft_bounces;
var bounces = hard_bounces+soft_bounces;
var syntax_errors = reports.bounces.syntax_errors;
var forwards_count = reports.forwards.forwards_count;
var forwards_opens = reports.forwards.forwards_opens;
var opens_total = reports.opens.opens_total;
var unique_opens = reports.opens.unique_opens;
var open_rate = reports.opens.open_rate;
var last_open = reports.opens.last_open;
var clicks_total = reports.clicks.clicks_total;
var unique_clicks = reports.clicks.unique_clicks;
var unique_subscriber_clicks = reports.clicks.unique_subscriber_clicks;
var click_rate = reports.clicks.click_rate;
var report = [send_time, cid, campaign_title, subject_line,
emails_sent, abuse_reports, unsubscribed, unsubscribe_rate, hard_bounces, soft_bounces, bounces, syntax_errors, forwards_count, forwards_opens, opens_total, unique_opens, open_rate, last_open, clicks_total, unique_clicks, unique_subscriber_clicks, click_rate];
sheet.appendRow(report);
}
}
}
}

Если вы выполните сценарий, выбрав Выполнить ›Выполнить функцию› ChimpCampaigns, вы действительно сможете увидеть, как строки заполняются данными. 👏

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

Это можно сделать, сначала перейдя на главную панель инструментов Google Script Apps. Там, в разделе Все проекты, вы можете вызвать меню параметров сценария chimpCampaigns, щелкнув значок с тремя точками и выбрав Триггеры. Появится всплывающее меню, в котором будет настроено выполнение по времени, например, каждый понедельник в 1:00.

Импорт в DataStudio

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

Подключите недавно созданный источник данных, выбрав коннектор электронных таблиц Google и электронную таблицу, в которую были загружены все данные кампании.

Вот и все, что вам удалось! Теперь начните создавать потрясающие информационные панели с данными вашей электронной почты.

Надеюсь, вам понравился этот урок. 😃