Курс Google Analytics → Google Analytics API для маркетолога на практическом примере

Нет времени? Сохрани в

Привет! По мотивам реализации одной из задач по анализу источников трафика решил написать статью-инструкцию для маркетологов. Это случай, когда маркетологам без Google Analytics API не обойтись. Статья пишется на благо веб-разработчикам, чтобы маркетологи не отвлекали по «всякой фигне».

Знакомимся с технологией на практическом примере. Поехали!

Задача

Есть около 150 000 пользователей, которые зарегистрированы на сайте. Нужно понять, из каких источников изначально пришли 1500 пользователей, которые купили продукт в октябре.
Для привлечения лидов используется модель фримиум, цикл продажи может быть до 1 года.

Из дополнительных настроек, на этапе интеграции Google Analytics, мы подключили UserID и дублировали его значение в Custom Dimension 1 (Scope: User), чтобы с UserID можно было взаимодействовать в отчетах.

Решение

 

Алгоритм

Для определения первого источника нужно:

  1. Открыть сервис Query Explorer.
  2. Пройти авторизацию, выбрать Account, Property и View.
  3. Составить отчет:
    • end-date: дата регистрация пользователя + 5 дней (с запасом на всякий случай)
    • start-date: дата регистрации пользователя -25 дней (с запасом, пользователь до регистрации мог совершать взаимодействия с сайтом)
    • metrics: ga:sessions
    • dimensions:ga:sourceMedium — источника / канал
      ga:dateHourMinute — время, включает дату, часы и минуты.
    • sort: ga:dateHourMinute — чтобы самая первая сессия отображалась в первой строке.
    • filters: ga:dimension1==158384 — ID пользователя.
  4. Должно получится как-то так:
  5. Запустить запрос, нажимая на Run Query.

Результат

После исполнения запроса должна появиться таблица с результатами:

Т.е. видим, что в заданный период до регистрации первая сессия была из источника yandex / organic.

Для одного пользователя сделали. Но как собрать для 1500, автоматизация?

Автоматизация

Под таблицей с результатами запроса, есть 2 текстовых поля:
Direct link to this Report и API Query URI.

Нас интересует второе поле с проставленной галочкой “Include current access_token …”.

Содержание поля примерно такое:

https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=2017-10-01&end-date=2017-10-26&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D158384&access_token=ya29.Gl30BMgGpR89kexsBJS8VMIWimIEghKVHubx9iQH7RljCyQNLjX2LLBQ9AyCCRW9K0TjfJEvwe6qY3SIRKbkm8idMZjdygbN647O7JUgXqcGyDt5b63Y2FjDbeQabfA

Если мы откроем ссылку в браузере — увидим результат исполнения запроса в формате JSON:

Т.е. подставляя в query url данные dimension1, start-date, end-date — можем получить такую информацию по каждому из пользователей.

Файл с данными пользователей

Я сделал обычный txt файл, который содержит строки вида (UserID start-date end-date):

123456	2017-10-01	2017-10-26
123457	2017-10-02	2017-10-27

Подготовить start-date и end-date можно легко — через Excel или Google Spreadsheets:

start-date:
=date(year(B2),month(B2),day(B2)-25)

end-date:
=date(year(B2),month(B2),day(B2)+5)

Где B2 — ячейка с датой регистрации пользователя.

Делаем скрипт

В качестве языка выбрал Python — просто потому что изучаю его в настоящее время.

Алгоритм работы скрипта:

  1. Открываем файл с информацией о пользователях.
  2. Каждую из строк файла делим по “табуляции”.
  3. Разделенные данные из строки подставляем в Query String, которую мы получили при работе с Query Explorer.
  4. Получаем информацию по этой ссылке.
  5. Конвертируем текст ответа в JSON, чтобы можно было взаимодействовать с ним.
  6. Делаем бекап ответов по каждому из пользователей, который сохранится в users/%userID%.txt
  7. Попробуем пройтись циклом по разделу “rows”.
    • Если получилось — пишем на экран UserID и Source/Medium.
    • Если не получилось — пишем просто UserID.
import json
import requests


with open('users_regs.txt') as f:
    for line in f:
        value = line.split("\t")
        source = 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A118898472&start-date=' + value[1] +'&end-date=' + value[2].strip('\n') +'&metrics=ga%3Asessions&dimensions=ga%3AsourceMedium%2Cga%3AdateHourMinute&sort=ga%3AdateHourMinute&filters=ga%3Adimension1%3D%3D' + value[0] +'&access_token=ya29.Gl3wBOWAecjWj4GgW0Gj920Sx2SBtVBkCHZjOsPNu6MWnN1XnsNwwzVzPVBcdVwDf_7lWJd0mege38pP1PSNvc9aBA7wbndUn-h6vqS5bbbEhSOKHp4cjQvVSQiN5R4'
        
        r = requests.get(source)
        l = json.loads(r.text)
        
        with open('users/' + value[0]+'.txt', 'w') as outfile:
           json.dump(l, outfile)
    
        try:
           for row in l["rows"]:
              print(value[0] + "	" + row[0])
              break				 
        except:
           print(value[0])

Файл со скриптом назвал ga.py.
Запускаем скрипт через командную строку, наслаждаемся результатом:

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

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

Если вы будете работать с большим объемом данных — раз в час вам придется генерировать новый токен (открываем снова Query Explorer и нажимаем Run Query) и подставлять в Query String в вашем скрипте.

Успехов!

Источник: https://habr.com/company/englishdom/blog/341282/

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Head of Lead Generation
в OWOX

Другие уроки курса "Google Analytics"

  1. Google Analytics: обзор системы с примером использования
  2. Определяем цели и метрики
  3. Как установить Google Analytics на сайт
  4. Как подготовить свой Google Analytics к GDPR
  5. Как Google Analytics собирает информацию
  6. Пользователь, сессия, просмотр страниц
  7. Показатель отказов в Google Analytics
  8. Показатель отказов на одностраничных сайтах
  9. Google Analytics: Что такое Client ID
  10. Сегменты в Google Analytics
  11. События в Google Analytics
  12. Цели в Google Analytics
  13. Как Google Analytics определяет источник трафика?
  14. Ярлыки и сохраненные отчеты в Google Analytics
  15. Заметки / аннотации в Google Analytics
  16. UTM-метки в Google Analytics: зачем нужны и как настроить
  17. Все что вы хотели знать о UTM-метках, но боялись спросить
  18. Почему в direct попадает другой трафик и как это исправить
  19. Интерфейс отчетов + пользовательские отчеты в Google Analytics
  20. Обзор отчетов Google Analytics в реальном времени
  21. Сравнение моделей мульти­канальной атрибуции
  22. Диаграмма «Новые и вернувшиеся пользователи» — будьте осторожнее!
  23. Анализ просмотренных блоков страницы
  24. Пользовательские сводки / Dashboards в Google Analytics
  25. Специальные оповещения / Custom Alerts в Google Analytics
  26. Когортный анализ в Google Analytics
  27. Идентификатор отслеживания аккаунта Google Analytics
  28. Дополнение Google Analytics для Google Taблиц
  29. Пользовательские параметры и показатели
  30. Какие данные запрещено собирать в Google Analytics
  31. Как передать ClientID в произвольный параметр
  32. Как настроить User ID в Google Analytics
  33. Собственная группа каналов в Google Analytics
  34. Как в Google Analytics отобразить полный адрес страницы
  35. Вычисляемые показатели в Google Analytics
  36. Отслеживание внутреннего поиска на сайте в Google Analytics
  37. Расхождения данных о кликах из AdWords в Google Analytics
  38. Что такое GA Measurement Protocol
  39. Google Analytics API для маркетолога на практическом примере
  40. Отправка информации об оплате в GA из Google Spreadsheet (без CRM)
  41. Как определить мошенничество CPA-сетей с помощью GA API и R
  42. Обходим семплирование и собираем сырые данные
  43. Google Forms: фиксируем событие отправки формы в Google Analytics
  44. Cоздаем списки ремаркетинга из старых пользователей без ограничений
  45. Стриминг данных из Google Analytics в Facebook Pixel
  46. Синхронизация событий с пикселями Facebook, VK, Yandex, MyTarget
  47. Как добавить больше двух параметров в отчет Google Analytics
  48. Несколько действий внутри customTask
  49. Как фиксировать трафик и лиды с партнерских сайтов
  50. Удаляем параметр fbclid из отчетов
  51. Скрипт. Исключаем метку fbclid в промышленных масштабах

Marketello читают маркетологи из крутых компаний