Парсим данные из Яндекс Метрики
Для чего это нужно?
Это полезно, когда вам нужно быстро подготовить нестандартный отчет и сэкономить на этом кучу времени (часов) на ручной работе.
Парсинг данных по конкретной цели — может быть полезным занятием для ее аналитики, например за определенный период (месяц или квартал), чтобы сравнить данные ее конверсии по дням — об этом и пойдет речь в этом посте. Это может быть полезно, если вы добавили на сайт новую цель и хотите проверить ее эффективность, или проводите A/B тест
Как это работает?
- Отправляем GET запрос к API Яндекс Метрики;
- API возвращает в ответ JSON с данными;
- Обрабатываем JSON под формат эксель таблицы.
Необходимый стек:
- Python и библиотеки для парсинга и обработки данных;
- API Яндекс Метрики;
- ИИ.
Если с питоном и ИИ все понятно, то с API Яндекс Метрики может быть чуть сложнее. Для ее работы необходимо создать специальное приложении (с аккаунта владельца счетчика) с необходимыми доступами к вашему счетчику:
Настройка счетчика:
- Перед созданием приложения необходимо перейти в настройки вашего счетчика (с аккаунта владельца);
- Далее перейти в раздел «Доступ» и активировать «Публичный доступ к статистике» (включить тумблер переключатель).
Создание приложения:
- Переходим по ссылке https://oauth.yandex.ru/client/new;
- Вводим название приложения (можно назвать также, как называется ваш счетчик, чтобы потом не путаться в приложениях — если их будет несколько);
- Подгружаем иконку;
- Выбираем платформу «Веб-сервисы»;
- В Redirect URI указываем ссылку: https://oauth.yandex.ru/verification_code;
- Указываем доступы для работы с Яндекс Метрикой (нужно ввести названия каждого доступа, так как в интерфейсе их нет):
metrika:read — выбираем «получение статистики, чтение параметров своих и доверенных счетчиков, получение списка счетчиков»;
metrika:write — выбираем «создание счетчиков, изменение параметров своих и доверенных счетчиков, загрузка любых данных»;
metrika:expenses — выбираем «загрузка в счетчики расходов»;
metrika:user_params — выбираем «загрузка в счетчики параметров пользователей»;
metrika:offline_data — выбираем «загрузка в счетчики офлайн-данных (данные из CRM, офлайн-конверсии, звонки)».
- Нажать на кнопку «Создать приложение»;
- После создания приложения вы увидите свой ClientID (это идентификатор приложения для получения QAuth токена);
- Далее нужно вставить этот ID в конце ссылки (после знака равно): https://oauth.yandex.ru/authorize?response_type=token&client_id=КЛИЕНТ-АЙДИ и перейти по ней для получения вашего токена (его нужно будет скопировать и запомнить).
Создание скрипта:
Для создания скрипта парсинга данных по конкретной цели из Яндекс Метрики нам понадобится:
- Номер счетчика;
- Номер цели (можно увидеть рядом с ее названием в разделе «Цели» в Метрике);
- QAuth токен;
- Необходимые данные на вход (например: период, детализация, роботность, источник визита и тд — тут уже все на ваше усмотрение);
Рекомендую использовать ИИ (кстати, недавно писал пост — почему я не доверяю ИИ при работе с Python — почитайте, будет полезно). Пример промпта, который можете переделать под себя будет в комментариях к этому посту.
Про лимиты:
У Яндекс Метрики есть квоты на запросы к счетчику по API и их нужно соблюдать, чтобы не словить ошибку, о которой предупреждает сам Яндекс:
В случае превышения квот дальнейшие действия пользователя временно блокируются. При этом API возвращает ответ с HTTP-статусом 429 Too Many Requests. В теле ответа содержится информация о типе превышенной квоты.
Подробнее про сами квоты можете почитать здесь: https://yandex.ru/dev/metrika/ru/intro/quotas
На самом деле это все не нужно, когда в Яндекс Метрике есть отчет «Параметры целей» — просто выберите в таблице под графиком конкретную цель, укажите необходимый период, настройте детализацию (например по дням) и скачайте эксель таблицу графика. Но теперь вы знаете, как можно парсить данные из Метрики и возможно вам это пригодится для создания кастомного отчета