yandex-metrika
Яндекс Метрика: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и доступы к счётчикам. Cache-first подход для гигиены контекстного окна. Triggers: яндекс метрика, yandex metrika, metrika analytics, метрика трафик, метрика конверсии, метрика отчёт, создать сегмент, доступ к счётчику, выдать доступ рекламному кабинету.
How do I install this agent skill?
npx skills add https://github.com/artwist-polyakov/polyakov-claude-skills --skill yandex-metrikaIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is a well-designed tool for Yandex Metrika analytics that follows security best practices. It safely handles OAuth tokens by checking file permissions on the configuration file and using private temporary files for API requests. It also implements a human-in-the-loop approach by requiring confirmation for sensitive actions and limiting the volume of external data ingested into the agent's context.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
yandex-metrika
Работа с API Яндекс Метрики: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и прямые доступы к счётчикам.
Config
Требуется YANDEX_METRIKA_TOKEN в config/.env. Для чтения нужен доступ
metrika:read, для создания сегментов и управления доступами — metrika:write.
Инструкция: config/README.md.
Philosophy
- Cache-first — конфигурационные данные (счётчики, цели, инфо) кешируются надолго. Отчёты кешируются по ключу counter+dates+params. Перед API-запросом всегда проверяем кеш.
- Context window hygiene — stdout ограничен 30 строками. Полные данные в CSV/файл. Кеш доступен через grep/rg для поиска без загрузки в контекст.
- Точные данные — accuracy=1 (без сэмплирования), фильтр isRobot по умолчанию.
- Атрибуция — дефолт
lastsign(последний значимый источник). Спрашиваем пользователя при первом запуске.
Workflow
STOP! Перед любым анализом:
-
Получи список счётчиков:
bash scripts/counters.sh -
Спроси пользователя (если счётчик не очевиден из контекста):
"О каком счётчике/сайте идёт речь? Укажите ID, название или домен."Если пользователь назвал сайт/домен — ищи через
--search:bash scripts/counters.sh --search "metallik"Это grep по TSV (id + name + site), поэтому находит и по домену.
-
Получи инфо о счётчике и его цели:
bash scripts/counter_info.sh --counter <ID> bash scripts/goals.sh --counter <ID> -
Спроси про конверсионные цели:
"Какие из этих целей являются конверсионными для вашего бизнеса? [список целей из goals.sh] Сохраню выбранные для будущих отчётов." -
Сохрани конфигурацию в
cache/counter_<id>/config.json:{ "attribution": "lastsign", "conversion_goals": [ {"id": 12345, "name": "Заказ оформлен"}, {"id": 67890, "name": "Заявка отправлена"} ] } -
Запускай отчёты по задаче пользователя.
Сегменты и доступы
Для API-сегмента сначала зафиксируй понятное название и выражение filters.
Создание и удаление без --apply показывают план и ничего не меняют.
Перед записью сценарий читает свежую роль на счётчике; сервер API остаётся
окончательным источником прав.
bash scripts/segments.sh --counter <ID> --action create \
--name "Посетители карточек" \
--expression "EXISTS(ym:pv:URL=@'/catalog/')"
# после проверки плана повторить с --apply
Получи точный логин от вызывающей задачи, затем проверь прямой доступ к счётчику и при необходимости подготовь минимальную роль:
bash scripts/grants.sh --counter <ID> --action get --login <LOGIN>
bash scripts/grants.sh --counter <ID> --action add \
--login <LOGIN> --permission view
# после проверки плана повторить с --apply
Для использования сегмента обычно достаточно view. Не выдавай edit, если
задача не требует менять счётчик. Если пользователь выбрал analyst или edit,
передай эту роль через --permission; существующую роль меняй через update.
Список /grants содержит прямые разрешения;
владелец выводится отдельно, а представители аккаунта в этот список не входят.
После записи верни вызывающей задаче номер счётчика, ID сегмента, логин и
подтверждённую роль.
Подробности: API-сегменты и
прямые доступы к счётчику.
Scripts
Общий паттерн вызова:
bash scripts/<script>.sh --counter <ID> --date1 YYYY-MM-DD [--date2 ...] [--group month] [--csv path]
| Script | Description | Special params |
|---|---|---|
counters.sh | Список счётчиков | --search "query" |
goals.sh | Цели счётчика | — |
counter_info.sh | Метаданные счётчика | — |
traffic_summary.sh | Трафик по источникам | — |
conversions.sh | Достижение целей | --goals "ID,ID" / --all-goals; по умолчанию из config.json |
utm_report.sh | UTM-разбивка | — |
search_engines.sh | Поисковые системы (organic) | — |
ecommerce.sh | Покупки, выручка, средний чек | --currency RUB|USD|EUR; авто из counter_info |
direct_clients.sh | Логины Директа | — |
direct_costs.sh | Расходы Директа (ym:ad:*) | --direct-client-logins "login"; нет --group/--device/--source |
comparison.sh | Сравнение двух периодов | --date1a/--date2a/--date1b/--date2b; --dimension, --metrics |
segments.sh | Список, просмотр, создание и удаление API-сегментов | --action; запись только с --apply |
grants.sh | Владелец и прямые доступы по логинам; роли view, analyst, edit | --action; запись только с --apply |
Не все скрипты поддерживают все общие параметры — см. Special params.
Сценариям управления segments.sh и grants.sh для надёжного разбора JSON
нужен Python 3.10+ либо uv; обычные отчёты по-прежнему работают без них.
Отчёт по целям
conversions.sh автоматически запрашивает цели частями по шесть и объединяет их
в один CSV. Это работает для --all-goals, --goals и целей из config.json.
При --all-goals список целей сначала обновляется через Management API.
Объединение выполняется обычным awk; для запуска отчётов Python и uv не нужны.
На каждую цель сохраняются три метрики: визиты с достижением, достижения и конверсия.
Порядок целей в колонках соответствует выбранному списку.
В запросы добавляется общий показатель визитов, чтобы источники с нулевыми достижениями не исчезали из отдельных частей. В итоговом CSV служебных метрик нет, но источники без конверсий сохраняются; итоговая конверсия учитывает их визиты. Источники сортируются по визитам с достижением первой выбранной цели, при равенстве — по источнику.
--limit ограничивает число источников: без --group допустимо 1–100000
(по умолчанию 100); с --group — 1–30 (по умолчанию 30, параметр API top_keys).
Даты при этом не сокращаются. Отчёт попадает в кеш и --csv только после
успешного получения и объединения всех частей.
Общие параметры отчётных скриптов
| Param | Required | Default | Values |
|---|---|---|---|
--counter | yes | - | ID счётчика |
--date1 | yes | - | YYYY-MM-DD |
--date2 | no | today | YYYY-MM-DD |
--group | no | - | day, week, month |
--device | no | all | desktop, mobile, tablet |
--source | no | all | organic, ad, referral, direct, social |
--attribution | no | lastsign | lastsign, last, first |
--filters | no | без роботов | выражение сегментации API отчётов |
--limit | no | API default | число строк |
--csv | no | - | путь для экспорта |
--no-cache | no | - | пропустить кеш |
Кеш-стратегия
Кеш хранится в cache/:
counters.json+counters.tsv— все счётчикиcounter_<id>/info.json— метаданные (permanent)counter_<id>/goals.json+goals.tsv— целиcounter_<id>/config.json— атрибуция, конверсионные целиcounter_<id>/direct_clients.json— логины Директаcounter_<id>/reports/*.csv— результаты отчётов
Сегменты и доступы всегда читаются заново и не сохраняются в кеш: эти данные меняются независимо от отчётов, а список доступов содержит логины пользователей.
Для поиска по кешу: grep "text" cache/counters.tsv или rg "text" cache/.
Расширенные сценарии
- Популярные поисковые запросы
- Произвольные отчёты и JSON-запросы (drilldown, metrika_get и др.)
- Справочник dimensions/metrics
- Сравнение периодов год-к-году
- Расходы Директа и PnL
- API-сегменты для подбора аудитории в Директе
- Проверка и выдача доступа рекламным кабинетам
- Ограничения API (bytime, scope mixing, drilldown CSV)
Лимиты API
- Reporting API: ~200 запросов / 5 минут (при превышении — ждите ~5 минут)
- Скрипты автоматически обрабатывают 429 (Retry-After ≤ 60s → retry, иначе fail с сообщением)
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/artwist-polyakov/polyakov-claude-skills/yandex-metrika">View yandex-metrika on skillZs</a>