Быстрый старт
Шаг 1. Получите 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) после получения токена
Возможные причины:
- Параметры авторизации в заголовке запроса заданы некорректно.
- Параметры авторизации в заголовке отсутствуют.
Шаг 2. Выберите API для работы
Метрика предоставляет три основных API:
- API управления. Через этот API можно создавать/редактировать счетчики, цели, фильтры и другие объекты.
- API импорта данных. Через этот API можно импортировать данные о клиентах и заказах из CRM, звонках, офлайн-конверсиях, параметрах посетителей.
- API отчетов. Через этот API можно получать информацию о посещаемости сайта и другие данные. Формировать отчеты, в том числе с помощью сегментации и параметризации.
- API Logs. Через этот API можно получать неагрегированные данные, которые собирает Яндекс Метрика. Используйет API, если самостоятельно обрабатывающих статистические данные и использующих их для решения уникальных аналитических задач.
Шаг 3. Измените объект через API
В качестве примера возьмем API управления и создадим цель:
-
Перед тем как создать цель, выбираем счетчик, на котором необходимо создать цель. Для этого вызываем метод GET https://api-metrika.yandex.net/management/v1/counters и выбираем нужный счетчик из списка.
Запрос:
curl -i -X GET 'https://api-metrika.yandex.net/management/v1/counters' \ -H 'Authorization: OAuth 05dd3dd8...'
Ответ:
{ "rows": 2, "counters": [ { "id": 880000, "status": "Active", "owner_login": "example-developer", "code_status": "CS_ERR_UNKNOWN", "activity_status": "low", "name": "counter_option test example-developer", "type": "simple", "favorite": 0, "hide_address": 0, "pro": 0, "permission": "view", "webvisor": { "arch_enabled": 0, "arch_type": "none", "load_player_type": "proxy", "wv_version": 2, "allow_wv2": true, "notify_wv2": false, "wv_forms": 1 }, "code_options": { "async": 1, "informer": { "enabled": 0, "type": "ext", "size": 3, "indicator": "pageviews", "color_start": "FFFFFFFF", "color_end": "EFEFEFFF", "color_text": 0, "color_arrow": 1 }, "visor": 0, "track_hash": 0, "xml_site": 0, "clickmap": 1, "in_one_line": 0, "ecommerce": 0, "alternative_cdn": 0, "ecommerce_object": "dataLayer", "ytm": false }, "create_time": "2022-03-25T15:59:52+03:00", "time_zone_name": "Europe/Moscow", "time_zone_offset": 180, "partner_id": 0, "site": "example-developer.ru", "site2": { "site": "example-developer.ru", "domain": "example-developer.ru" }, "gdpr_agreement_accepted": 0, "delete_guest_allowed": 1 }, { "id": 87686941, "status": "Active", "owner_login": "example-manager", "code_status": "CS_ERR_UNKNOWN", "activity_status": "low", "name": "example-manager_1", "type": "simple", "favorite": 0, "hide_address": 0, "pro": 0, "permission": "edit", "webvisor": { "arch_enabled": 0, "arch_type": "none", "load_player_type": "proxy", "wv_version": 2, "allow_wv2": true, "notify_wv2": false, "wv_forms": 1 }, "code_options": { "async": 1, "informer": { "enabled": 0, "type": "ext", "size": 3, "indicator": "pageviews", "color_start": "FFFFFFFF", "color_end": "EFEFEFFF", "color_text": 0, "color_arrow": 1 }, "visor": 0, "track_hash": 0, "xml_site": 0, "clickmap": 1, "in_one_line": 0, "ecommerce": 0, "alternative_cdn": 0, "ecommerce_object": "dataLayer", "ytm": false }, "create_time": "2022-03-02T16:06:27+03:00", "time_zone_name": "Europe/Moscow", "time_zone_offset": 180, "partner_id": 0, "site": "example-manager.ru", "site2": { "site": "example-manager.ru", "domain": "example-manager.ru" }, "gdpr_agreement_accepted": 0, "delete_guest_allowed": 1 } ] }
-
Для создания цели используем метод POST https://api-metrika.yandex.net/management/v1/counter/{counterId}/goals. Создадим цель MessengerGoal, которая будет фиксировать переходы в определенный мессенджер.
Запрос:
curl -i -X POST 'https://api-metrika.yandex.net/management/v1/counter/XXX/goals' \ -H 'Authorization: OAuth 05dd3dd8...' \ -H 'Content-Type: application/json' \ -d '{ "goal": { "id": 0, "name": "MyMessengerGoal", "type": "messenger ", "conditions" : [{ "type" : "messenger", "url" : "whatsapp" }] } }'
Ответ:
HTTP/1.1 200 OK { "goal": { "id": 222, "name": "MyMessengerGoal", "type": "messenger", "conditions" : [{ "type" : "messenger", "url" : "whatsapp" }] } }