В одной из прошлых статей один из авторов блога Data-Daily, Евгений Скребанов, писал о том, как подключаться к Яндекс.Метрике и забирать оттуда данные по посещаемости сайтов. В этой статье я не буду останавливаться на теории получения данных из API и генерации токена – это было подробно описано в прошлой статье, сегодня мы поговорим о нашем опыте непосредственного получения данных.

Получение данных из Яндекс-Метрики: Постановка задачи

Как обычно, задача началась с формирования требований, которые получились следующими:

  1. Экстрактор должен подключаться к API Яндек.Метрики.
  2. Получать данные с 3-х сайтов.
  3. Нужны различные группировки: дата, пол, возраст, география.
  4. Нужны различные метрики: визиты, посетители, просмотры.

Яндекс-Метрика и Qlik: Управление параметрами для загрузки нужных данных

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

Чтобы понять, как это работает, давайте разберем синтаксис строки подключения:

  • <тип метода> ― GET, POST, PUT или DELETE.
  • <раздел_API> ― название раздела API, в котором выполняется действие.
  • <версия> ― номер текущей версии API.
  • <имя_метода> ― URL ресурса, над которым выполняется действие.
  • <формат_результата> ― необязательная часть запроса. Задает формат результата. По умолчанию данные передаются в формате JSON.
  • <параметры> ― обязательные и необязательные параметры запроса.
  • <авторизационный_токен> ― oauth_token, необходимый для авторизации на OAuth-сервере Яндекса.

Именно в параметрах можно указывать группировки, метрики и период выгрузки, а также id сайта, для которого она производится. Для полноты картины я приведу выдержку из документации к API Яндекс.Метрики:

При формировании запроса к API используются группировки (dimensions) и метрики (metrics). Группировка (dimension) — это атрибут визита или хита, по которому можно сгруппировать данные. В запросах к API группировки задаются в параметре dimensions. Если необходимо указать несколько группировок, перечислите их через запятую. Также возможен отчет без группировок, в этом случае будет рассчитан суммарный результат. Метрика (metric) — числовая величина, которая рассчитывается на основе атрибута хита или визита. В запросах к API метрики задаются в параметре metrics. Если необходимо указать несколько метрик, перечислите их через запятую. Метрики и группировки, указанные в запросе к API позволяют формировать необходимую вам структуру отчета.

НА ЗАМЕТКУ! Справочная информация по списку группировок и метрик.

Теперь рассмотрим на конкретном примере. Допустим, перед нами стоит задача получения следующих данных: посещаемость сайта за период с 01.03.2016 по 31.03.2016 в разрезе пола посетителя.

Давайте соберем для нее строку подключения:

  • <раздел_API> — stat
  • <версия> — v1
  • <имя_метода> — data
  • <формат_результата> — .csv (нам показалось удобнее получать данные в .csv, т.к. это более дружественный формат для обработки непосредственно в QlikView)
  • <параметры>
    • dimensions = ym:s:gender
    • metrics = ym:s:users
    • date1 = 20160301
    • date2 = 20160331

Итоговая строка подключения (Id сайта и токен скрыты переменными):

Имея строку подключения, нам осталось только сделать экстрактор в QlikView, который будет каждый раз подключаться с нужными параметрами, забирать данные и складывать их к нам в хранилище.

Для начала описываем входные параметры:

01

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

Стандартная процедура помесячной выгрузки для хранения в хранилище:

Непосредственно выгрузка:

Сохранение в хранилище:

В результате всех манипуляций у нас получилась таблица со следующей структурой, которая полностью отвечает нашим текущим запросам:

Коллеги, на этом сегодня все по выгрузке данных Яндекс-Метрики в Qlik! Комментируйте, делитесь своим опытом аналитики сайтов!