В одной из прошлых статей один из авторов блога Data-Daily, Евгений Скребанов, писал о том, как подключаться к Яндекс.Метрике и забирать оттуда данные по посещаемости сайтов. В этой статье я не буду останавливаться на теории получения данных из API и генерации токена – это было подробно описано в прошлой статье, сегодня мы поговорим о нашем опыте непосредственного получения данных.
Получение данных из Яндекс-Метрики: Постановка задачи
Как обычно, задача началась с формирования требований, которые получились следующими:
- Экстрактор должен подключаться к API Яндек.Метрики.
- Получать данные с 3-х сайтов.
- Нужны различные группировки: дата, пол, возраст, география.
- Нужны различные метрики: визиты, посетители, просмотры.
Яндекс-Метрика и Qlik: Управление параметрами для загрузки нужных данных
Всеми параметрами подключения можно управлять из строки подключения с помощью переменных.
Чтобы понять, как это работает, давайте разберем синтаксис строки подключения:
1 |
<тип_метода> https://api-metrika.yandex.ru/<раздел_API>/<версия>/<имя_метода>.<формат_результата>?<параметры>?<авторизационный_токен> |
- <тип метода> ― 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 сайта и токен скрыты переменными):
1 |
https://api-metrika.yandex.ru/stat/v1/data.csv?dimensions=ym:s:gender&metrics=ym:s:users&id=$(vSiteID)&per_page=500&date1=20160301&date2=20160331&oauth_token=$(vToken) |
Имея строку подключения, нам осталось только сделать экстрактор в QlikView, который будет каждый раз подключаться с нужными параметрами, забирать данные и складывать их к нам в хранилище.
Для начала описываем входные параметры:
При необходимости добавить группировку, разрез или даже сайт для выгрузки их просто надо вписать сюда.
Стандартная процедура помесячной выгрузки для хранения в хранилище:
Непосредственно выгрузка:
Сохранение в хранилище:
В результате всех манипуляций у нас получилась таблица со следующей структурой, которая полностью отвечает нашим текущим запросам:
Коллеги, на этом сегодня все по выгрузке данных Яндекс-Метрики в Qlik! Комментируйте, делитесь своим опытом аналитики сайтов!
Свежие комментарии