Становлячись поданим Logs API ки, SEO кейси соціалки, реклама, інструкція

соціалки

Але Метрика не зупинилася у своєму розвитку на звичайній API, яка дозволяє витягнути дані лише за заданим списком угруповань, обмеженим 10 угрупованнями у запиті. Розробники Яндекса надали можливість отримувати «сирі» дані зі сховища даних Яндекс.Метрики - Logs API.

Агреговані або узагальнені дані, які ви бачите в інтерфейсі Метрики або вивантажуєте через API звітів, розраховуються для певної групи візитів. Наприклад, метрика «Час на сайті» обчислюється для всіх переходів із будь-якого джерела трафіку, всіх візитів від відвідувачів чоловічої статі або всіх візитів із планшетів.

У цій статті я хочу поділитися своїм рецептом отримання даних з Logs API Яндекс.Метрики, а також про декілька прийомів обробки цих даних.

Увага: надалі в прикладах я використовуватиму недійсний токен, тому, щоб приклади працювали, вам потрібно використовувати власноруч отриманий токен або можна спробувати токен, вказаний як тестовий в документації:05dd3dd84ff948fdae2bc4fb91f13e2

Друге: Запит створення лога

Метод "Створення лога запитів" створює запит на підготовку звіту, в якому будуть потрібні дані.

Це POST-запит наступної структури:

POST https://api-metrika.yandex.ru/management/v1/counter//logrequests? date1= &date2= &fields= &source=

Параметри запиту створення лога

Розглянемо всі параметри, які потрібно надіслати у запиті:— ідентифікатор лічильника Метрики.date1— дата початку звітного періоду у форматі YYYY-MM-DD (наприклад, 2015-08-31).date2- дата кінця звітногоперіоду у форматі YYYY-MM-DD (не може бути поточним днем).fields- список полів, які треба отримати. Поля поділяються комами.

Давайте розглянемо параметри fields докладніше.

Припустимо, ми хочемо детально отримати кожен візит із зазначенням:

Дивимося таблицю полів для візитів та визначаємо, що нам потрібні такі поля:

Далі потрібно зробити POST-запит. Один із найпростіших способів зробити POST-запит, не вдаючись до програмування – скористатися розширенням Postman для Chrome.

Як зробити POST-запит до API Яндекс.Метрики?

1. Встановлюємо та запускаємо розширення Postman:

реклама

2. Вибираємо тип HTTP-запиту "POST", а в поле введення запиту вставляємо сформований вище запит:

реклама

3. Натискаємо синю кнопку "Send".

4. Отримуємо відповідь від API:

соціалки

5. У відповіді нас цікавить ідентифікаторrequest_id. Це ідентифікатор, створений запит на отримання даних з Logs API:

становлячись

Цей ідентифікатор копіюємо, він знадобиться на наступному кроці.

Треття: Отримання інформації про запит логів

Після того як ми відправили в АПІ заявку на формування лога, потрібно отримати статус лога: дізнатися, чи готовий він для скачування. Для цієї мети існує метод «Інформація про запит логів».

Викликається цей метод за допомогою наступного GET-запиту:

GET https://api-metrika.yandex.ru/management/v1/counter//logrequest/

ЗамістьcounterIdпідставляємо ідентифікатор лічильника, для якого ми робили запит на створення, а замістьrequestIdставимо ідентифікатор request_id, отриманий у відповіді на попередній запит. Після цього через знак "?" вказуємо параметр oauth_token.

заПо суті, це звичайний GET-запит, тому виконати його можна і в звичайному браузері, але зручніше буде в Postman, тому що в нього вбудований pretty-висновок JSON і дивитися на результат буде приємніше.

Вставляємо запит у Postman, вибираємо тип HTTP-запиту «GET» та натискаємо «Send»:

поданим

У відповіді нас цікавить параметрstatus. Цей параметр може набувати кількох значень, описаних тут . У нашому випадку він набуває значення «processed», яке говорить про те, що запит лога оброблений і лог готовий до скачування. Це те що треба!

Зверніть увагу на параметрparts. Може так вийти, що отриманий лог виявиться занадто великим і буде розбитий на кілька частин, які доведеться завантажувати окремо.

Перейдемо до скачування ліг.

Четверте: Завантаження лога

Цей метод, як і попередній, викликається з допомогою GET-запроса:

GET https://api-metrika.yandex.ru/management/v1/counter//logrequest//part//download

Аналогічно тому, як ми робили це у попередньому запиті, замістьcounterIdпідставляємо ідентифікатор лічильника, замістьrequestIdвказуємо вже відомий нам ідентифікатор request_id, а на місцеpartNumberставимо порядковий номер тієї частини ліг, яку ми хочемо завантажити. У нашому прикладі лише одна частина, тому ставимо 0. Після цього через знак «?» вказуємо параметр oauth_token.

Цей GET-запит можна виконувати як у браузері, так і через Postman, але у випадку з Postman'ом замість Send треба вибрати варіант Send and Download:

А потім зберегти отриманий файл у форматі CSV:

становлячись

Всі! Ми отримали лог і зберегли його собі на диск, тому можна позбавити Яндекс від зберігання зайвоїінформації та очистити лог за допомогою методу «Очищення підготовлених для завантаження логів обробленого запиту». Робиться це за допомогою звичного нам POST-запиту.

Прикінцеве: Обробка лога

Чесно кажучи, обробка логів за допомогою Excel - це ще збочення, я б рекомендував використовувати для таких завдань щось більш підходяще, наприклад, Pandas або R. Але Excel - базовий інструмент аналізу даних, тому розгляну на його прикладі.

Відкриваємо файл CSV в Excel. Для цього створюємо нову книгу, відкриваємо вкладку «Дані» та вибираємо «З тексту»:

Вибираємо файл і вказуємо у майстрі текстів, що наш файл містить роздільники та записаний у кодуванні UTF-8:

поданим

На наступному кроці вибираємо символом-розділювачем знак табуляції, а потім встановлюємо формати колонок, найкраще для ідентифікаторів задати текстовий формат колонок.

Отже, ми завантажили наші дані до таблиці:

соціалки

Далі давайте вирішимо два прості завдання:

Побудуємо найпростішу зведену таблицю:

становлячись

Тепер ми можемо застосувати фільтр у таблиці з даними, щоб зрозуміти, з яких сторінок ці користувачі найчастіше потрапляли на сайт і як часто заходили.

Та й отримувати дані з Logs API за допомогою запитів у Postman'і – це не зовсім зручний спосіб. Якщо вам захочеться робити ці вивантаження постійно, все складувати у себе і періодично аналізувати - найкращий варіант складати дані в БД ClickHouse. Добре, що для інтеграції Logs API з ClickHouse в Яндексі вже розробили простий у використанні Python-скрипт. Звичайно, це складніше, доведеться підняти ClickHouse, навчитися запускати скрипти на Python'і, а ще краще не ручками, а за розкладом.повірте, все це набагато цікавіше та відкриває купу нових можливостей!