SEO
1494313200

Выгружаем данные из Google Analytics для 100+ проектов одновременно — кейс агентства Netpeak

Помните, мы рассказывали о создании ВI-аналитики в отделе контекстной рекламы? Теперь мы решили внедрить BI-систему в департаменте поискового продвижения. Начали со сбора данных из Google Analytics по всем SEO-проектам агентства. Но проектов много, а Google Analytics ограничивает выгрузку данных о более чем 100 проектах на одну почту.

В этой статье я покажу, как обойти это ограничение с помощью языка R.

Как открывать доступ к проектам

Доступ к данным Google Analytics для всех проектов можно открыть на обычный аккаунт Google или на сервисный аккаунт.

Авторизация для обычного аккаунта Google

В связи с ограничением по количеству проектов, мы сделали несколько адресов. Когда упираемся в лимит на каком-то из них, начинаем открывать доступ к новым проектам на следующий адрес.

Для авторизации в сервисах Google мы используем библиотеку google AuthR Марка Эдмондсона.

Для обычной авторизации нужно задать область доступа и авторизоваться с помощью функции gar_auth().

Главный недостаток метода — нужно при каждом запуске скрипта авторизоваться с помощью браузера. При этом токен по умолчанию кешируется в файл .httr-oauth. Такой вариант не позволяет использовать автоматический запуск с помощью «Планировщика задач».

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

Пример записи токена в файле:

# задаем название файлаfile_name <- “ga-token”# 
задаем в опциях область доступа и имя файла для кеширования токена
options(googleAuthR.scopes.selected = 
c("https://www.googleapis.com/auth/analytics", 
"https://www.googleapis.com/auth/analytics.readonly"), 
googleAuthR.httr_oauth_cache = 
file_name)# авторизируемся в GA и получаем токенga_token
 <- googleAuthR::gar_auth(new_user = TRUE)

Чтение токена из файла:

auth_token <- readRDS(file_name)
[[1]]options(googleAuthR.scopes.selected = 
c("https://www.googleapis.com/auth/analytics",                                           
"https://www.googleapis.com/auth/analytics.readonly"))
googleAuthR::gar_auth(auth_token)

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

Авторизация для сервисного аккаунта Google

Создание сервисных аккаунтов описано в первом шаге руководства Google по API Google Analytics.

Вкратце:

  1. Создайте аккаунт.
  2. Скачайте json файл с секретным ключом.
  3. Расшарьте Google Analytics на сгенерированный email сервисного аккаунта.

Авторизация в этом случае проще. Нужно всего две строки кода:

# Формируем имя json файлаjson_file <- "file_path.json"# 
Авторизация в Google Analyticsgar_auth_service(json_file = 
json_file, scope = "https://www.googleapis.com/auth/analytics")

Создаем справочник проектов

У каждого аккаунта Google Analytics может быть множество ресурсов и представлений. В самом начале нужно знать, из каких представлений брать данные. В качестве примера я сделал справочник проектов в таблице Google. А у нас все проекты хранятся в ERP-системе агентства.

Для выгрузки нужен столбец с «domain» и профилем GA «ga_main_view_id».

Скрипт выгрузки данных

Скрипт для выгрузки — по ссылке. Можете скопировать его себе, указать ключ к таблице вашего справочника (пункт 1.3.), названия ваших аккаунтов Google (пункт 2.1.) и работать.

Что делает скрипт:

1. Берет из справочника в таблице Google домены проектов и нужные представления Google Analytics.

2. Выгружает все id представлений, которые расшарены на аккаунты отдела.

3. В цикле по проектам из справочника определяет, расшарен ли id представления на аккаунты отдела.

3.1. Если да, выгружает трафик за прошлый месяц для него.

3.2. Если нет, записывает в список нерасшаренных проектов.

4. Дописывает выгруженные данные в конец листа «ga_db».

5. Перезаписывает лист «Нерасшаренные» и вставляет туда список нерасшаренных проектов.

6. Сохраняет данные с трафиком в CSV-файл.

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

Выводы

Как выгружать данные из Google Analytics для 100+ проектов одновременно:

  1. Расшарить все проекты GA на отдельные аккаунты.
  2. Сделать справочник проектов и их представлений, чтобы знать откуда выгружать данные.
  3. Запустить скрипт выгрузки с откомментированным кодом для авторизации (в пункте 2.3. скрипта). Потом откомментировать его, потому что токены будут закешированы в отдельных файлах.
  4. Поставить скрипт на автозапуск с помощью планировщика задач.

В следующих статьях о BI-решении для SEO: какие данные важно выгружать, как их обрабатывать и хранить.

О других способах применения языка R в маркетинге читайте здесь.

31
29
0
Обнаружили ошибку? Выделите ее и нажмите Ctrl + Enter.