Получаем данные из logs api яндекс метрики при помощи python

В данной задаче есть 2 этапа:

  1. Получить токен для подключения яндекс метрики
  2. Установить и настроить библиотеку python для получения данных по api

Если у вас на компьютере нет python, то сначала прочтите статью «Как установить python на компьютер»

В этой статье я буду показывать работу в системе windows, с применением IDE jupyter notebook.

 

1) Получение токена для яндекс метрики

 

Создание приложения

Для начала работы у вас должен быть аккаунт в яндексе. После переходим по ссылке https://oauth.yandex.ru/ и нажимаем кнопку «зарегистрировать новое приложение».

pm1

 

Указываем название приложения, при желании можете заполнить описание.

pm2

 

В разделе «платформы» выберите пункт веб-сервисы и нажмите на ссылку «подставить url для разработки».

pm3

 

 

Ниже на этой же странице, в разделе «доступы» находим яндекс метрику и ставим галочку рядом с правом “Получение статистики, чтение параметров своих и доверенных счетчиков”

pm4

 

В конце страницы жмем кнопку «создать приложение».

pm5

 

Откроется страница с данными, вам нужно скопировать ID

pm6

 

Мы зарегистрировали приложение через которое будем работать с api метрики, теперь нужно получить OAuth токен. Для получения доступа к определенному счетчику метрики необходимо чтобы аккаунт получил токен. Не закрывайте эту страницу, далее она нам понадобится.

 

Получение токена

Для того, чтобы получить токен нужно перейти по следующей ссылке. На конце ссылки вместо букв ID вы должны указать ID своего приложения, который вы получили на предыдущем шаге https://oauth.yandex.ru/authorize?response_type=token&client_id=ID

После перехода по ссылке вам придет уведомление о том, что приложение запрашивает у вашего аккаунта разрешение на доступ к данным метрики, жмем разрешить.

pm7

После откроется окно в котором вы получите токен с помощью которого можно получить доступ к статистике метрики.

pm8

На следующем этапе мы используем этот токен для извлечения данных из метрики.

 

2 Установка python библиотеки для работы с logs api метрики

Будем использовать библиотеку которую написал Павел Максимов. Для начала её нужно установить, я буду рассказывать как это делается в windows, на других системах операции похожи. Для этого запускаем командную строку и пишем команду и жмем enter

pm9

Должна произойти установка, в конце которой вы получите уведомление Successfully installed.

 

Также понадобится библиотека simplejson, для её установки пишем

pm10

 

Теперь переходим в jupyter notebook и создаем новый документ. О том что такое jupyter notebook можно узнать из статьи “как установить python на компьютер”.

Копируем код из документации библиотеки. Страница github где копируем код. Ниже скриншот кода который копируем.

pm11

Вместо {ваш токен доступа} указываем токен, который мы получили ранее, а вместо {идентификатор счетчика} указываем номер счетчика метрики из которого хотим получить данные. (Токен и  номер счетчика пишем в кавычках)

В разделе params мы можем настроить запрос к logs api метрики, указать какие параметры хотим получить, а также указываем диапазон дат за который получаем данные.

pm12

 

В результате в ответ получаем строки с данными, пример ниже.

pm13

 

В таком виде работать с этими данными не очень удобно, поэтому создадим из них pandas dataframe.

Для этого импортируем pandas и проведем преобразование текста в json, а после загрузим в pandas dataframe.

pm14

 

В результате получим dataframe

pm15

 

Вы можете продолжить работать с полученными данными при помощи pandas, если вы не знакомы с pandas, то можете пройти вводный бесплатный курс на яндекс практикуме, чтобы ознакомиться с этой библиотекой, так же вот большая подборка материалов для изучения pandas

 

Скачать тетрадку jupyter notebook к этой статье можно по ссылке