Авторизация
Для использования API Яндекс Метрики необходимо получить авторизационный токен через OAuth-сервер Яндекса. Токен необходимо передавать для каждого метода в HTTP-заголовке Authorization
.
GET /management/v1/counters HTTP/1.1
Host: api-metrika.yandex.net
Authorization: OAuth 05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037
Content-Type: application/x-yametrika+json
Content-Length: 123
Если метод API вызван без токена или в запросе передан недействительный токен, сервер возвращает HTTP-статус 401 Unauthorized
.
Примечание
Обеспечьте безопасное хранение авторизационного токена, не передавайте его третьим лицам.
Получение OAuth-токена
Чтобы получить авторизационный токен:
-
Создайте приложение, при этом заполните поля:
-
название — можно указать произвольно;
-
иконка сервиса — необязательно;
-
платформы приложения — выберите веб-сервисы;
-
redirect URI — укажите
https://oauth.yandex.ru/verification_code
; -
доступ к данным — укажите набор доступов для вашего приложения. Какие бывают доступы:
- metrika:read — получение статистики, чтение параметров своих и доверенных счетчиков, получение списка счетчиков;
- metrika:write — создание счетчиков, изменение параметров своих и доверенных счетчиков, загрузка любых данных;
- metrika:expenses — загрузка в счетчики расходов;
- metrika:user_params — загрузка в счетчики параметров пользователей;
- metrika:offline_data — загрузка в счетчики офлайн-данных (данные из CRM, офлайн-конверсии, звонки).
Примечание
Доступы metrika:expenses, metrika:user_params, metrika:offline_data не обязательны, если используется доступ metrika:write.
-
-
Нажмите Создать приложение и скопируйте его ClientID (напротив идентификатора нажмите значок ).
-
Добавьте скопированный ClientID в ссылку вида
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
-
Перейдите по ссылке и на открывшейся странице скопируйте ваш авторизационный токен.
Возможные проблемы и их решение
Ошибка 403 (Access is denied) после получения токена
Возможные причины:
На стороне приложения
- Приложение не имеет доступа к Метрике. Для чтения данных счётчиков (построение отчётов, просмотр информации по счётчику и т.п.) нужен доступ
metrika:read
. Для управления счётчиками (загрузка офлайн-данных, изменения счётчиков, сегментов и т.п.) нуженmetrika:write
.
На стороне токена
-
Токен невалидный. Срок действия токена истек, либо на аккаунте, для которого он был заведен, изменился пароль авторизации. Перевыпустите токен.
-
Токен создан не для того аккаунта. Мог быть заведён на логине, который не имеет доступ к счётчику Яндекс Метрики.
Важно
Владельцем токена является не владелец приложения, а аккаунт, из-под которого вы были авторизованы, когда выполняли GET-запрос на получение токена.
-
Токен создан не для того приложения. При выполнении GET-запроса на получение токена в параметре
client_id
было указано не то значение или была допущена опечатка, из-за которой токен был заведён на приложение, не имеющее доступа к Метрике (metrika:read
илиmetrika:write
).
На стороне Метрики
- На счётчике, к которому вы обращаетесь по API нет доступа у владельца токена. Подробнее о типах доступов к счётчику. Для API нужен владелец, гостевой доступ на просмотр или гостевой доступ на редактирование, если речь идёт об API управления.
На стороне API запроса
- В коде для вызова API-запроса некорректно заданы параметры авторизации, из-за чего чтение токена происходит некорректно/не происходит вообще.
Ошибка 401 (unauthorized) после получения токена
Возможные причины:
- Параметры авторизации в заголовке запроса заданы некорректно.
- Параметры авторизации в заголовке отсутствуют.