Post #1995
746
Forwarded from Clear Query 🧊

Глава 4. Выгрузка данных в Google Sheets: автоматизируем рутину 🚀
Привет-привет! 👋 Я снова к вам с новой полезной главой. Знаю, что пишу с небольшим запозданием, но работы сейчас очень много. Стараюсь выдавать вам максимум пользы, поэтому буду писать главы порционно.
Напоминаю, что я➡️ Прохожу обучение
Немного о сегодняшней главе — в ней мы написали скрипт для выгрузки данных в Google Таблицы и их автообновления. Использовали крутой стек: Google Cloud, Google Sheets API, Python и Pandas. 🐍
В принципе, для новичка и мелких задач — это самое то. Отлично заменяет расширения вроде Adveronix. Сама я уже давно перешла на БД Google BigQuery (потому что данных много, так удобнее и быстрее), но начинала именно с таблиц.
Код программы есть в уроке, но я прогнала его через нейросеть и доработала под суровые реалии, так как на практике споткнулась о несколько ошибок.
Что я улучшила в скрипте:
✔️ Генерация уникального имени отчета. Это нужно, чтобы сбросить ошибку Яндекса, при которой отчет с дублирующимся именем просто не формируется.
✔️ Жесткая обработка ошибок API. Раньше при статусах 400, 500, 502 от Яндекса скрипт делал break (выход из цикла), но продолжал работу. Он записывал JSON-ошибку в файл .tsv, а Pandas пытался прочитать это как таблицу. Итог — фатальный сбой ValueError: No objects to concatenate. Заменила break на принудительное завершение sys.exit(1) и добавила вывод JSON-ошибки прямо в консоль.
✔️ Решение проблемы с DtypeWarning. Теперь Pandas читает файл целиком перед определением типов данных, и это предупреждение больше не засоряет логи.
✔️ Лимит Google Sheets (10 млн ячеек). Первая ошибка, которую я словила! Чтобы оптимизировать объем, я отфильтровала лишние столбцы, конвертировала форматы и сгруппировала данные по датам.
Ну и собственно всё! Пример результата — на скрине. А свой доработанный скрипт я прикрепляю ниже — забирайте, кому нужно! 💾
Зачем это вообще нужно? Да абсолютно всем! Вы можете гибко настроить выгрузку сырых данных и строить на их основе дашборды для клиентов. Ставите скрипт на крон (автовыполнение по расписанию) — и навсегда забываете о ручном составлении отчетов. Это в 100 раз быстрее, чем ковыряться в интерфейсе рекламных кабинтов.
❗️ Маленький, но важный совет аналитика: Никогда не выгружайте из API метрики, которые рассчитываются делением (CTR, CR, CPC, CPA). Рассчитывайте их уже математически в самих выгруженных данных (Клики/Показы и т.д.). Агрегированные относительные метрики из интерфейса при сложении строк дадут вам искаженные данные.
Ставьте 🔥, если забираете скрипт себе!
Привет-привет! 👋 Я снова к вам с новой полезной главой. Знаю, что пишу с небольшим запозданием, но работы сейчас очень много. Стараюсь выдавать вам максимум пользы, поэтому буду писать главы порционно.
Напоминаю, что я➡️ Прохожу обучение
Немного о сегодняшней главе — в ней мы написали скрипт для выгрузки данных в Google Таблицы и их автообновления. Использовали крутой стек: Google Cloud, Google Sheets API, Python и Pandas. 🐍
В принципе, для новичка и мелких задач — это самое то. Отлично заменяет расширения вроде Adveronix. Сама я уже давно перешла на БД Google BigQuery (потому что данных много, так удобнее и быстрее), но начинала именно с таблиц.
Код программы есть в уроке, но я прогнала его через нейросеть и доработала под суровые реалии, так как на практике споткнулась о несколько ошибок.
Что я улучшила в скрипте:
✔️ Генерация уникального имени отчета. Это нужно, чтобы сбросить ошибку Яндекса, при которой отчет с дублирующимся именем просто не формируется.
✔️ Жесткая обработка ошибок API. Раньше при статусах 400, 500, 502 от Яндекса скрипт делал break (выход из цикла), но продолжал работу. Он записывал JSON-ошибку в файл .tsv, а Pandas пытался прочитать это как таблицу. Итог — фатальный сбой ValueError: No objects to concatenate. Заменила break на принудительное завершение sys.exit(1) и добавила вывод JSON-ошибки прямо в консоль.
✔️ Решение проблемы с DtypeWarning. Теперь Pandas читает файл целиком перед определением типов данных, и это предупреждение больше не засоряет логи.
✔️ Лимит Google Sheets (10 млн ячеек). Первая ошибка, которую я словила! Чтобы оптимизировать объем, я отфильтровала лишние столбцы, конвертировала форматы и сгруппировала данные по датам.
Ну и собственно всё! Пример результата — на скрине. А свой доработанный скрипт я прикрепляю ниже — забирайте, кому нужно! 💾
Зачем это вообще нужно? Да абсолютно всем! Вы можете гибко настроить выгрузку сырых данных и строить на их основе дашборды для клиентов. Ставите скрипт на крон (автовыполнение по расписанию) — и навсегда забываете о ручном составлении отчетов. Это в 100 раз быстрее, чем ковыряться в интерфейсе рекламных кабинтов.
❗️ Маленький, но важный совет аналитика: Никогда не выгружайте из API метрики, которые рассчитываются делением (CTR, CR, CPC, CPA). Рассчитывайте их уже математически в самих выгруженных данных (Клики/Показы и т.д.). Агрегированные относительные метрики из интерфейса при сложении строк дадут вам искаженные данные.
Ставьте 🔥, если забираете скрипт себе!
- 🔥 3
- ❤ 2
















