Аналитика
Счётчики сайта — Яндекс Метрика, Google Analytics 4, Google Search Console и Яндекс Вебмастер — это четыре поля настроек, по одному на сервис: metrika, ga, gsc, webmaster. Каждое пишется своим запросом: свой номер или код только записывается, "auto" поручает OnPress найти или завести ресурс в своём аккаунте и подтвердить права, null отключает. Читаются поля вместе с остальными настройками — GET /data/settings; как подключить счётчики в консоли — Аналитика.
Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Права на всех эндпоинтах страницы — администратор сайта. Как выбирается сайт и в какой форме приходят отказы — Доступ и токен.
PUT /data/settings/{metrika|ga|gsc|webmaster}
Записывает одно поле счётчика: номер или код, "auto" — подключение через OnPress, null — отключение. Например, записать свой номер Метрики:
curl -s -X PUT "$API/site/$SITE/data/settings/metrika" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"value": "12345678"}'
{
"success": true,
"site_id": "x9HTLHECq",
"field": "metrika",
"value": "12345678",
"enabled": true,
"name": null,
"open_url": "https://metrika.yandex.ru/dashboard?id=12345678",
"auto_available": true,
"data": null,
"changed": true,
"result": { "mode": "own", "value": "12345678", "refreshed": { "pages": [], "cache": { "…": "…" } } },
"rebaked": { "status": "nothing", "…": "…" }
}
| Поле | Что принимает value | Что в value при чтении |
|---|---|---|
metrika | номер счётчика (цифры), "auto", null | номер счётчика |
ga | measurement ID G-…, регистр не важен; "auto", null | measurement ID |
gsc | код тега google-site-verification — значение content или тег целиком; "auto", null | код тега |
webmaster | "auto", null | id сайта в Вебмастере |
"auto" — OnPress находит по домену сайта или заводит счётчик, ресурс GA4, сайт в Search Console или Вебмастере в своём аккаунте, ставит код на страницы и подтверждает права; запрос обращается к Яндексу или Google и идёт до минуты. Свой номер или код только записывается, Яндекс и Google не вызываются. null или "" отключает: номер и признаки очищаются, у Яндекса и Google ничего не удаляется; webmaster: null отключает и свой аккаунт Яндекса. Search Console, которая ещё не увидела тег, отвечает на "auto" кодом 200 с result.pending: true и verified: false — повторите запрос через минуту.
| Поле ответа | У кого | Описание |
|---|---|---|
enabled | metrika, ga | код счётчика выводится на страницах |
name | metrika, ga | название счётчика или ресурса, если его подключил OnPress |
property_id | ga | числовой id ресурса GA4, если его подключил OnPress |
mode | gsc, webmaster | auto — через OnPress, own — свой код или аккаунт, null — не подключено |
verified | gsc, webmaster | права подтверждены; у gsc в режиме own — null |
site_url, login | gsc, webmaster | адрес ресурса; логин своего аккаунта Яндекса |
open_url | все | ссылка на отчёт сервиса |
auto_available | все | "auto" доступен |
connect_url | webmaster | страница консоли, где подключается свой аккаунт Яндекса |
data | все | {last_date, collected_at, days} — последний день загруженной статистики, время загрузки (UTC), число дней; null, пока ничего не загружено |
changed | запись | изменилось ли состояние сервиса |
result | запись | mode (own, auto, disconnect), ответ сервиса и refreshed — обновлённые копии страниц и сброс кэша |
Код счётчика стоит в <head> страниц, а не во фреймах, поэтому rebaked.status всегда nothing.
| Код | Статус | Когда | Что делать |
|---|---|---|---|
value_required | 400 | в теле нет value | пришлите {"value": …} |
invalid_metrika, invalid_ga, invalid_gsc | 400 | значение не той формы | пришлите номер, G-… или код тега |
invalid_webmaster | 400 | не "auto" и не null | свой код Вебмастера подключается в консоли |
auto_not_available | 409 | у OnPress нет ключа этого сервиса | пришлите свой номер или код |
service_failed | 502 | Яндекс или Google отказали: их ответ в message, шаг — в service_error | исправьте причину и повторите |
internal_unavailable | 502 | сайт не ответил | повторите запрос |