Выгрузка несемплированных данных из Google Analytics с помощью R

Во все времена люди разных конфессий, взглядов и интересов объединялись перед лицом общего врага. Этот враг меняется, но сама война продолжается, проходя через пики и спады. Посмотрите новости, почитайте газеты - вы увидите, что напряжение в мире снова нарастает, на часах судного дня 2,5 минут до полуночи, и грядет апогей мировых конфликтов. Так кто же он, главный враг человечества в 21 веке? Искусственный интеллект? Пхеньян? Танос? Нет, друзья, он куда ближе и реальнее, чем вы думаете, но гораздо опаснее! Это скромная svg 18 на 18 пикселей, которую вы без труда узнаете по предостерегающему желтому цвету и символу щита, предупреждающему о необходимости укрыться. Треппщщте,  гссппда, у ваа ссмпиинг Семплинг  

Сегодня с семплингом будем бороться с помощью R.

Что нужно для выгрузки несемплированных данных?

  1. Качаем R https://cloud.r-project.org/
  2. Качаем RStudio для работы с R https://www.rstudio.com/products/rstudio/download/
  3. Запускаем Rstudio. Вот такая иконка 
  4. Cтавим библиотеку devtools

    1
    
    install.packages("devtools")

    Вы можете выполнять код в консоли, но лучше создать новый файл Ctrl+Shift+N и писать скрипт в нем. Для запуска в этом случае нужно выделить код и нажать Ctrl+Enter.

  5. Подключаем библиотеку devtools и ставим библиотеку rga

    1
    2
    
    library(devtools)
    install_github("skardhamar/rga")

    За неё большое спасибо вот этому парню https://github.com/skardhamar/rga

  6. Подключаем rga и создаем инстанс для работы с API гугла

    1
    2
    
    library(rga)
    rga.open(instance="ga")

    После этого приложение запросит у вас доступ к аккаунту Google. Выберите тот, под которым доступны счетчики. Если все окей, появится токен вроде этого 4/5T6Fh650QOox5lurBgwApkIcyWdXAOXCddQKytGM6X8 Его нужно скопировать и ввести в консоли в RStudio туда, где написано «Please enter code here»

Как выгрузить данные из Google Analytics без семплинга?

Теперь для того, чтобы скачать данные, вам нужно использовать метод getData из созданного объекта ga. Например, вот так

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
ga$getData(
  138249714, # указываем номер представления
  batch = TRUE,
  walk = TRUE, # TRUE для обхода семплинга и склейки по дням
  start.date = "2017-04-15",
  end.date = "2017-10-15",
  metrics = "ga:visits,ga:users", 
  dimensions = "ga:source",
  segment = "",
  filter = "ga:medium==organic"
)

Номер представления можно посмотреть в интерфейсе Google Analytics

Номер представления Google Analytics

  или взять из url https://analytics.google.com/analytics/web/?hl=ru&pli=1#report/content-pages/a87441111w134047391p138249714/ Вот и все! Выделяем и жмем Ctrl+Enter. Для обхода семплинга библиотека rga использует тот же принцип, что и все подобные сервисы - выкачивает данные по дням и суммирует.  У этого подхода есть очевидные минусы, о которых нужно помнить:

  1. Запрашивая показатель “Пользователи”, например, за неделю, вы получите сумму уникальных по дням. Т.е. если юзер заходил каждый день, он посчитается 7 раз.
  2. Рассчитываемые показатели, например, “Средняя длительность просмотра страницы” так же будут суммироваться по дням, а значит, вам нужно скачать данные, необходимые для их расчета, и прикинуть самостоятельно. В данном случае это ga:timeOnPage / (ga:pageviews - ga:exits)

Как составить запрос в Analytics Reporting API?

Вот вам пара ссылок в помощь для составления запросов к Reporting API:

Dimensions & Metrics Explorer - официальный справочник параметров и показателей
Query Explorer - сторонняя утилита с веб-интерфейсом для составления запросов к API. Позволит предварительно все отладить, сообщит, когда семплинг, и поможет разобраться с сегментами: создав сегмент в GA, вы увидите его в Query Explorer и сможете глянуть его код.

comments powered by Disqus