Записываем данные из Google analytics в БД Postgresql при помощи Python

Сразу скажу, что решение не идеальное, но оно работает, если у вас есть рекомендации по улучшению, то добро пожаловать в комментарии.

В одной из прошлых статей мы рассмотрели как получить данные из Google analytics при помощи Python, если вы не знакомы с этой статьей, то лучше начните с неё. Сегодня мы продолжим работу с этими данными. Наша задача настроить ежедневную загрузку данных из Google analytics за прошедший день в базу данных. 

Выгружать будем следующие данные:

  • Date
  • Client id 
  • Session id
  • Source/medium
  • Sessions
  • Goal

По умолчанию из GA нельзя выгрузить Client id  и Session id, нужно настроить custom dimension для сбора этих данных, после этого данные начнут собираться в GA. О том как настроить  Client id  и Session id можно прочитать у Simo Ahava. Либо можете настроить выгрузку каких-то других данных, которые по умолчанию доступны в API GA, посмотреть можно здесь.

База данных будет установлена локально на моём компьютере под управлением windows 10, скрипт будет размещен там же. Конечно это все можно разместить на linux сервере или воспользоваться google cloud, но в этой статье будет мой комп с windows.

 

План действий

  1. Установить postgresql, настроить БД
  2. Настроить загрузку данных в БД из GA
  3. Настроить ежедневные выгрузки/загрузки в планировщике windows

 

 

1 Установка postgresql, настроить БД

  1. Установка

Переходим на страницу загрузки postgresql, выбираем нужную операционную систему и последнюю версию программы. У меня windows. Выбираем последнюю версию и жмем download.

pg1

 

После того как файл скачается, запускаем его. В появившемся окне жмем next

pg2

 

Выбираем директорию для установки

pg3

 

 

В окне выбора компонентов выбираем все компоненты и жмем next

pg4

 

Придумайте пароль

pg5

 

Выберите локализацию. Лучше Америку.

pg6

 

Далее еще несколько раз жмем next и ждем пока пройдет установка.

 

Настройка

Далее в меню пуск находим программу pgadmin и запускаем её. Запустится локальный сервер postgres, а в браузере откроется вкладка для работы с postgresql.

pg7

 

 

Вводим пароль

pg8

 

По умолчанию у вас уже будет создана БД под названием Postgres, нажмите на неё, а затем на кнопку отмеченную на картинке номером 2 (query tool)

pg9

 

 

У вас откроется окно для ввода SQL запросов — query editor. Теперь нам надо создать таблицу в которую будем записывать данные из google analytics. Для этого пишем запрос и жмем кнопку  f5 чтобы выполнить его.

 

pg10

 

 

Теперь у вас должна появиться таблица в разделе schemas → tables, у меня там 21 таблица, но у вас должна быть одна под названием ga.

pg11

 

В этой таблице должны быть 6 столбцов, которые мы создали через SQL запрос.

pg12

 

2 Настройка загрузки данных из GA в БД

В прошлой статье мы рассмотрели, как выгрузить данные из GA Мы возьмем скрипт из этого файла, модифицируем его и дополним блоком для загрузки в БД. Но предварительно нужно установить пару библиотек.

Вам понадобятся библиотеки gaapi4py, её установку мы рассмотрели в статье про GA аналогично нужно установить библиотеку psycopg2. Для этого в командной строке windows и выполняем команду

pg13

 

Также нам понадобятся библиотеки numpy, pandas, datetime, но их устанавливать не надо если вы установили Python при помощи пакета Anaconda, они уже есть у вас.

Ниже уже модифицированный код с помощью которого будем грузить данные в GA, там в коде есть комментарии поясняющие за что отвечает каждый кусок кода.

В будущем этот скрипт необходимо улучшить, добавить обработку ошибок, например если при загрузке данных в БД произойдет ошибка, то нужно сделать так чтобы скрипт инициировал новую загрузку, чтобы мы не потеряли данные из-за ошибки. Но в данной статье обойдемся без этого.

Теперь этот код нужно сохранить в формате файла python, т.е. c расширением py и положить в одну папку с JSON ключом, с помощью которого наш скрипт будет получать доступ к GA. Об этом файле мы подробно говорили в статье  как выгрузить данные из GA. Я назвал свой файл connector-ga.py

Для тех кто хочет более подробно изучить как работает модуль psycopg2 и другие способы коннекта с различными СУБД, могу порекомендовать статью.

 

3 Настройка ежедневной выгрузки/загрузки данных в планировщике windows

Находим в пуске планировщик заданий и запускаем его.

pg14

 

Выбираем пункт создать задачу

pg15

 

На вкладке “Общие” Указываем произвольное название задачи.

 

pg16

 

На вкладке “Действия” жмем “Создать”

pg17

 

Вводим данные

pg18

 

В пункте программа или сценарий пишем просто python (если python добавлен в переменную среды path). Если вы устанавливали python по моей инструкции, то вам не надо думать о path.

Далее указываем название файла с нашим скриптом и указываем путь к нему. Жмем ок.

 

Переходим на вкладку “триггеры” и создаем новый.С помощью триггера обозначим время когда должен запускаться наш скрипт.

pg19

 

Выбираем ежедневно, выбираем дату когда начать выгрузку и время, повторять каждый 1 день. Сохраняем все изменения.

Поздравляю мы настроили ежедневную выгрузку данных из GA в базу данных.

После того как произойдет выгрузка, мы можем зайти в БД и посмотреть данные.

Вот пример данных у меня в БД, которые загрузил скрипт.

pg20

 

Теперь к этой БД можно подключиться например через power bi и сделать отчеты/визуализации.