Этот скрипт позволяет настроить регулярную загрузку данных из Яндекс Метрики в Google Sheets. Я это использую для построения регулярной отчётности в Datalens по калькулятору размера выборок в A/B тестах ABnTester.
- Скрипт
main.py
берёт сырые данные из Яндекс Метрика по API по визитам и хитам (событиям) и перекладывает их в Google Sheets. .github/workflows/transfer.yml
является скриптом, который Github Actions запускает по крону, что позволяет обновлять данные в Google Sheets ежедневно.- Скрипты используют креды Github Secrets. Их получение и установка описаны ниже.
Для того, чтобы скрипты отрабатывали, нужно получить несколько доступов.
Скрипты используют креды в workflow, поэтому для запуска на вашей стороне нужно будет указать некоторые креды. Они доступны в настройках (Settings) репозитория в разделе
Security > Secrets and variables > Actions.
Здесь нужно будет создавать новые секреты. Если все будут созданы, Github Actions смогут работать, используя ваши креды.
На это момент вы уже сможете указать следующие креды.
COUNTER_ID
- ID счётчика в Яндекс Метрике.START_DATE
- дату, с которой получать логи (в форматеYYYY-MM-DD
).END_DATE
(опционально) - дату, до которой получать логи (в форматеYYYY-MM-DD
). Автоматически дата будет равна вчерашнему дню, так какEND_DATE
должна быть раньше текущего дня. Логи будут получены по23:59:59
указанной даты.
Для того, чтобы делать запросы
к API Яндекс Метрики по своему счётчику,
нужно получить токен API.
Сделать это нужно согласно инструкции
в официальной документации.
Полученный токен нужно положить в секрет
под названием TOKEN
.
Для того, чтобы обновлять файлы Google Sheets, нужно тоже получать доступы. Рекомендую следовать инструкции из официальной документации. Я создавал Service Account, под что адаптировал скрипт в репозитории.
Полученный JSON нужно будет положить
в секрет под названием GOOGLE_SERVICE_ACCOUNT
.
Но! Нужно будет:
- экранировать все знаки
"
; - убрать переносы строк (оставить только
\n
вprivate_key
).
Иначе скрит работать не будет.
Нам осталось только указать ссылки на те файлы, в которых будут перезаписываться файлы.
HIT_SHEET_URL
- ссылка на файл с хитами.VISIT_SHEET_URL
- ссылка на файл с визитами.
Для получения ссылки нужно:
- открыть файл в Google Sheets;
- открыть настройки доступа к файлу;
- включить доступ у всех, у кого есть ссылка, на уровне редактора.
Полученную ссылку и нужно копировать в секрет.
Пайплайн будет работать автоматически
по расписанию, указанному в файле .github/workflows/transfer.yml
.
Можно редактировать набор полей,
по котором будет отправляться запрос в API.
Для этого можно редактировать файл api_fields.py
.
Список полей можно посмотреть в официальной документации:
просмотры
и визиты.
- То, для чего это всё сделано: калькулятор размера выборки для A/B тестов ABnTester.
- За основу была взята инструкция по интеграции с Datalens через Clickhouse.
- Скрипты интеграции с Logs API были заимствованы отсюда.