Skip to content

Me-atom/TransferYandexMetricToGoogleSheets

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Введение

Этот скрипт позволяет настроить регулярную загрузку данных из Яндекс Метрики в Google Sheets. Я это использую для построения регулярной отчётности в Datalens по калькулятору размера выборок в A/B тестах ABnTester.

Как использовать

Общие слова

  • Скрипт main.py берёт сырые данные из Яндекс Метрика по API по визитам и хитам (событиям) и перекладывает их в Google Sheets.
  • .github/workflows/transfer.yml является скриптом, который Github Actions запускает по крону, что позволяет обновлять данные в Google Sheets ежедневно.
  • Скрипты используют креды Github Secrets. Их получение и установка описаны ниже.

Что нужно для запуска

Для того, чтобы скрипты отрабатывали, нужно получить несколько доступов.

Секреты в Github Actions

Скрипты используют креды в 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 Яндекс Метрики по своему счётчику, нужно получить токен API. Сделать это нужно согласно инструкции в официальной документации. Полученный токен нужно положить в секрет под названием TOKEN.

API сервисов Google

Для того, чтобы обновлять файлы Google Sheets, нужно тоже получать доступы. Рекомендую следовать инструкции из официальной документации. Я создавал Service Account, под что адаптировал скрипт в репозитории.

Полученный JSON нужно будет положить в секрет под названием GOOGLE_SERVICE_ACCOUNT. Но! Нужно будет:

  1. экранировать все знаки ";
  2. убрать переносы строк (оставить только \n в private_key).

Иначе скрит работать не будет.

Обновляемые файлы в Google Sheets

Нам осталось только указать ссылки на те файлы, в которых будут перезаписываться файлы.

  • HIT_SHEET_URL - ссылка на файл с хитами.
  • VISIT_SHEET_URL - ссылка на файл с визитами.

Для получения ссылки нужно:

  1. открыть файл в Google Sheets;
  2. открыть настройки доступа к файлу;
  3. включить доступ у всех, у кого есть ссылка, на уровне редактора.

Полученную ссылку и нужно копировать в секрет.

Как использовать

Пайплайн будет работать автоматически по расписанию, указанному в файле .github/workflows/transfer.yml.

Можно редактировать набор полей, по котором будет отправляться запрос в API. Для этого можно редактировать файл api_fields.py. Список полей можно посмотреть в официальной документации: просмотры и визиты.

Ссылки

  • То, для чего это всё сделано: калькулятор размера выборки для A/B тестов ABnTester.
  • За основу была взята инструкция по интеграции с Datalens через Clickhouse.
  • Скрипты интеграции с Logs API были заимствованы отсюда.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%