Метод автоматизации, доступный всем: Google Apps Script, Gmail и Google Sheets
Объединяем Google Apps Script, Gmail и Google Sheets для автоматических выгрузок отчётов рекламных площадок из почты.
Автор: Мария Галанина, старший
Рекламные площадки, как правило, передают данные из рекламных кабинетов по API напрямую, но мобильные DSP часто ограничивают такую интеграцию. Это усложняет сбор данных, особенно с ростом доли мобильной рекламы в медиасплитах и увеличением количества
Альтернативой
Этап 1: договариваемся с площадкой
В большинстве случаев сервисы предоставляют возможность получения статистики на почту. Не имея прямого доступа к API, мы запросили у DSP отправку данных по следующему брифу:
-
данные за вчерашний день должны быть высланы до 9 утра;
-
формат файла CSV с указанием нужных полей (например, date, campaign_id, campaign_name, brand, spend, os, platform);
-
тема письма указывается в формате: Epromo_Площадка;
-
нужно указать нашу почту и аккаунт, с которого хотим получать статистику.
Эта информация помогла нам сформировать чёткие правила фильтрации.
Этап 2: пишем скрипт для автоматизации в Google Apps Script
Google Apps Script оказался идеальным инструментом, так как он нативно интегрируется с Gmail, Google Диском и Google Таблицами. Мы написали скрипт, который:
-
Использует Gmail API для поиска нужных писем.
-
Фильтрует письма по отправителю, теме и наличию вложений.
-
Сохраняет файлы в выделенную папку на Google Диске.
-
Автоматически обрабатывает CSV и загружает их в Google Sheets.
Код для получения вложений из Gmail выглядит так:
Используем GmailApp.search() для поиска писем по теме, отправителю и наличию вложений.
var query = 'subject:Epromo_Площадка has:attachment from:example@example.com newer_than:1d';
var threads = GmailApp.search(query);
var messages = GmailApp.getMessagesForThreads(threads);
messages.forEach(thread => {
thread.forEach(message => {
Logger.log(«Найдено письмо: " + message.getSubject());
});
});
}
Сохраняем
var query = 'subject:Epromo_Площадка has:attachment from:example@example.com newer_than:1d';
var threads = GmailApp.search(query);
var messages = GmailApp.getMessagesForThreads(threads);
var folder = DriveApp.getFolderById('ВАШ_ID_ПАПКИ'); // Укажите ID папки в Google Диске
messages.forEach(thread => {
thread.forEach(message => {
var attachments = message.getAttachments();
attachments.forEach(attachment => {
if (attachment.getContentType() === 'text/csv') {
var file = folder.createFile(attachment);
Logger.log(«Сохранён файл: " + file.getName());
}
});
});
});
}
Код для чтения и обработки CSV содержит такие значения:
Открываем файл и записываем данные в Google Sheets.
var folder = DriveApp.getFolderById('ВАШ_ID_ПАПКИ');
var files = folder.getFiles();
var sheet = SpreadsheetApp.openById('ВАШ_ID_ТАБЛИЦЫ').getActiveSheet();
while (files.hasNext()) {
var file = files.next();
if (file.getMimeType() === 'text/csv') {
var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
sheet.getRange(sheet.getLastRow() + 1, 1, csvData.length, csvData[0].length).setValues(csvData);
Logger.log(«Данные загружены из файла: " + file.getName());
}
}
}
Этап 3: ставим скрипт на ежедневное автообновление
Чтобы избежать ручного запуска кода, можно настроить триггеры Google Apps Script на ежедневное обновление в нужное время. Для этого нужно подключить следующие настройки:
Как автоматизация изменила процесс работы
Метод объединения Google Apps Script, Gmail и Google Sheets доказал эффективность в условиях, когда API недоступно.
Внедрение автоматизированного сбора и обработки данных позволило исключить ручной труд, повысить точность отчётности и сократить время обновления дашборда.
-
Ранее специалисты тратили до 30–40 минут в день на внесение данных вручную. После автоматизации время обработки данных сократилось в 6–8 раз.
-
Ошибки ручного ввода устранены, поскольку данные загружаются в таблицу напрямую из вложений и человеческий фактор исключается.
-
Обновление данных стало стабильным и своевременным. Файлы обрабатываются ежедневно в одно и то же время, без задержек и зависимости от человеческого ресурса.
4. Высвобождение времени специалистов. Команда может сосредоточиться на анализе данных, а не на их ручном внесении.
Дополнительные плюсы метода
Решение можно адаптировать под другие сервисы, улучшить код, добавлять проверку на дублирование файлов и данных в таблице.
-
Отсутствие необходимости в сервере. Весь процесс выполняется в облаке, без дополнительных затрат.
-
Простота освоения. Большое количество обучающих материалов в интернете, есть автоматические средства написания и совершенствования кода.
-
Простота масштабирования. При увеличении количества площадок можно легко добавить новые источники данных без изменения основной логики работы. Есть возможность вместо объединения в Google Sheets забрать файлы с диска в любое другое хранилище.
Таким образом, метод автоматизации отличается не только простотой настройки, но и универсальностью. Он эффективно интегрируется в различные
Мнение редакции может не совпадать с мнением автора. Ваши статьи присылайте нам на 42@cossa.ru. А наши требования к ним — вот тут.