Зачем выгружать данные
Интерфейс аналитики удобен для быстрого просмотра, но у него есть пределы. Он не соединяет данные с другими источниками, не пересчитывает показатели по вашим правилам и не отправляет отчёт по расписанию. Автоматическая выгрузка решает эти задачи: сводный отчёт в таблице, автоматический контроль падения трафика, сравнение данных панелей вебмастеров и счётчика, собственные дашборды. Метрика предоставляет для этого программные интерфейсы, и главное — понимать, какой из них нужен.
Какие есть варианты
| Интерфейс | Что отдаёт | Когда подходит | Ограничения |
|---|---|---|---|
| API отчётов | Агрегированные показатели по измерениям и метрикам | Сводки, дашборды, регулярные отчёты | Данные обобщены, выборка при большом объёме |
| API логов | Сырые данные визитов и просмотров, поле за полем | Собственный анализ, склейка с другими данными | Асинхронная выгрузка, лимиты объёма, обработка на вашей стороне |
| API управления | Настройки счётчика, цели, фильтры | Настройка многих счётчиков сразу | Нужны права на счётчик |
| Выгрузка из интерфейса | Таблицы отчётов в файл | Разовые запросы | Ручной процесс |
Названия и возможности интерфейсов со временем меняются, поэтому перед разработкой прочитайте актуальную справку для разработчиков и убедитесь в текущих ограничениях.
Как получить доступ
- Токен даёт доступ к вашим данным, обращайтесь с ним как с паролем: не размещайте в коде страниц и в публичных репозиториях.
- Используйте отдельное приложение для выгрузки и минимальные права, достаточные для чтения статистики.
- Храните токен в переменных окружения или менеджере секретов и периодически перевыпускайте его.
Пример запроса
curl -H "Authorization: OAuth YOUR_TOKEN" "https://api-metrika.yandex.net/stat/v1/data?ids=12345678&metrics=ym:s:visits,ym:s:users&dimensions=ym:s:date&date1=7daysAgo&date2=yesterday"
Запрос вернёт число визитов и посетителей по дням за последнюю неделю. Вместо 12345678 подставьте номер своего счётчика, а вместо YOUR_TOKEN — свой токен.
import os
import requests
params = {
"ids": "12345678",
"metrics": "ym:s:visits,ym:s:users",
"dimensions": "ym:s:date",
"date1": "7daysAgo",
"date2": "yesterday",
}
headers = {"Authorization": "OAuth " + os.environ["METRIKA_TOKEN"]}
r = requests.get("https://api-metrika.yandex.net/stat/v1/data",
params=params, headers=headers, timeout=30)
r.raise_for_status()
for row in r.json()["data"]:
print(row["dimensions"][0]["name"], row["metrics"])
Токен берётся из переменной окружения, а не записывается в файл. Формат ответа, названия измерений и метрик сверяйте со справочником: они могут дополняться.
Сырые данные через API логов
Логи визитов выгружаются асинхронно: вы оцениваете возможность запроса, создаёте его, ждёте обработки, скачиваете части и затем очищаете запрос на стороне сервиса. Такая схема нужна, потому что данных много. Полученные таблицы можно загрузить в собственную базу и соединить с данными заказов или рассылок. Помните о персональных данных: если в выгрузку попадают идентификаторы посетителей, храните их по правилам вашей страны, а условия обсудите с юристом.
Что автоматизировать в первую очередь
- Ежедневную сводку по посещаемости и целям в таблицу: Google Таблицы для SEO-аналитики.
- Оповещения о резком падении трафика: автоматические оповещения.
- Регулярное сравнение данных счётчика и панели вебмастера: API панелей вебмастера.
- Собственный дашборд: дашборд технического состояния.
Типичные ошибки
- Токен в открытом коде или в общем чате.
- Запрос без учёта квот: программа сама блокируется при частых обращениях.
- Смешение выборочных и точных данных: при большом объёме отчёт может строиться по выборке.
- Автоматизация без проверки: сверьте первые выгрузки с интерфейсом.
Вывод. Для сводок берите API отчётов, для собственной глубокой аналитики — API логов, а ключи храните как пароли. Перед запуском убедитесь, что счётчик настроен верно: чек-лист аналитики нового проекта.
Частые вопросы
Чем API отчётов отличается от API логов?
API отчётов отдаёт агрегированные показатели по измерениям, а API логов даёт сырые данные визитов и просмотров для собственной обработки.
Где хранить токен доступа?
В переменных окружения или менеджере секретов, а не в коде страниц и публичных репозиториях; токен приравнивается к паролю.
Почему данные из API не совпадают с интерфейсом?
Возможные причины: разные периоды и часовые пояса, выборка при большом объёме, разные определения метрик; сверьте условия запроса.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.