Авторизация

Для использования 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-токена

Чтобы получить авторизационный токен:

  1. Создайте приложение, при этом заполните поля:

    • название — можно указать произвольно;

    • иконка сервиса — необязательно;

    • платформы приложения — выберите веб-сервисы;

    • 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.

  2. Нажмите Создать приложение и скопируйте его ClientID (напротив идентификатора нажмите значок ).

  3. Добавьте скопированный ClientID в ссылку вида

    https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
    
  4. Перейдите по ссылке и на открывшейся странице скопируйте ваш авторизационный токен.

Возможные проблемы и их решение

Ошибка 403 (Access is denied) после получения токена

Возможные причины:

На стороне приложения

  • Приложение не имеет доступа к Метрике. Для чтения данных счётчиков (построение отчётов, просмотр информации по счётчику и т.п.) нужен доступ metrika:read. Для управления счётчиками (загрузка офлайн-данных, изменения счётчиков, сегментов и т.п.) нужен metrika:write.

На стороне токена

  • Токен невалидный. Срок действия токена истек, либо на аккаунте, для которого он был заведен, изменился пароль авторизации. Перевыпустите токен.

  • Токен создан не для того аккаунта. Мог быть заведён на логине, который не имеет доступ к счётчику Яндекс Метрики.

    Важно

    Владельцем токена является не владелец приложения, а аккаунт, из-под которого вы были авторизованы, когда выполняли GET-запрос на получение токена.

  • Токен создан не для того приложения. При выполнении GET-запроса на получение токена в параметре client_id было указано не то значение или была допущена опечатка, из-за которой токен был заведён на приложение, не имеющее доступа к Метрике (metrika:read или metrika:write).

На стороне Метрики

  • На счётчике, к которому вы обращаетесь по API нет доступа у владельца токена. Подробнее о типах доступов к счётчику. Для API нужен владелец, гостевой доступ на просмотр или гостевой доступ на редактирование, если речь идёт об API управления.

На стороне API запроса

  • В коде для вызова API-запроса некорректно заданы параметры авторизации, из-за чего чтение токена происходит некорректно/не происходит вообще.
Ошибка 401 (unauthorized) после получения токена

Возможные причины:

  1. Параметры авторизации в заголовке запроса заданы некорректно.
  2. Параметры авторизации в заголовке отсутствуют.
Предыдущая
Следующая