Техническое задание: Скрипт для Google Таблиц (Apps Script)
Цель проекта
Создать автоматизированное решение для ежедневного сбора статистики из рекламных кабинетов ВКонтакте и её структурированного представления в Google Таблицах.
Основные требования
- Язык и платформа: Скрипт должен быть написан на Google Apps Script и интегрирован непосредственно в Google Таблицу.
- Источники данных: Скрипт должен работать с API рекламной платформы ВКонтакте, поддерживая как новый, так и старый интерфейс кабинета.
- Открытость кода: Весь код должен быть предоставлен в открытом виде. Запрещено использование закрытых или сторонних библиотек, кроме официальных API Google и VK.
Функциональность
1. Выгрузка данных
- Получение статистики по рекламным кампаниям с детализацией по каждому дню в заданном диапазоне дат.
- Данные должны агрегироваться в соответствии с заданными группировками и показателями.
2. Настраиваемый блок переменных
В коде должен быть четко выделенный и удобный для редактирования блок с переменными, который позволит пользователю самостоятельно настроить:
- Токен доступа к API VK.
- ID рекламного кабинета.
- Начальная и конечная дата для выгрузки статистики. Конечная дата по умолчанию должна устанавливаться на вчерашний день.
- Поля для группировки данных: Например, дата, название кампании, ID кампании.
- Запрашиваемые метрики (показатели): Например, показы, клики, расход, количество заполненных лид-форм.
- Название листа в Google Таблице для вывода результатов.
3. Структура вывода
Данные в Google Таблице должны быть организованы в виде четкой таблицы, где строки соответствуют выбранным группировкам (например, день + кампания), а столбцы - запрошенным метрикам.
Критерии приемки
- Скрипт успешно выполняет запросы к API VK Рекламы.
- Данные корректно выгружаются и записываются в указанный лист Google Таблицы.
- Блок настроек интуитивно понятен и позволяет гибко менять параметры выгрузки без правки основного кода.
- Код содержит комментарии, объясняющие ключевые моменты работы.
- Обработаны основные сценарии ошибок (например, неверный токен, проблемы с доступом к API).