Авторизация

Для использования 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. Создайте приложение и выберите пункт Для доступа к API или отладки.

  2. Заполните поля:

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

    • почта — укажите предпочтительную почту для связи;

    • доступ к данным — укажите набор доступов для вашего приложения.

      Какие бывают доступы:

      • metrika:read — получение статистики, чтение параметров своих и доверенных счетчиков, получение списка счетчиков;
      • metrika:write — создание счетчиков, изменение параметров своих и доверенных счетчиков, загрузка любых данных;
      • metrika:expenses — загрузка в счетчики расходов;
      • metrika:user_params — загрузка в счетчики параметров пользователей;
      • metrika:offline_data — загрузка в счетчики офлайн-данных (данные из CRM, офлайн-конверсии, звонки).

      Доступы metrika:expenses, metrika:user_params, metrika:offline_data не обязательны, если используется доступ metrika:write.

    Примечание

    Если вы работаете через porg-логины (логины организации), то в правах доступа добавьте passport:business — это необходимо для выдачи токена от организации.

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

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

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

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

Ошибка 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. Параметры авторизации в заголовке отсутствуют.
Предыдущая
Следующая