All skills

Яндекс Метрика: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и доступы к счётчикам. Cache-first подход для гигиены контекстного окна. Triggers: яндекс метрика, yandex metrika, metrika analytics, метрика трафик, метрика конверсии, метрика отчёт, создать сегмент, доступ к счётчику, выдать доступ рекламному кабинету.

Use this Skill: https://skilld.dev/gh/artwist-polyakov/polyakov-claude-skills/yandex-metrika

This session only. Nothing lands on disk.

SKILL.md

≈162 tokens always: the name and description. ≈2.9k when used: this file. ≈9.6k more on demand in 8 files.

yandex-metrika

Работа с API Яндекс Метрики: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и прямые доступы к счётчикам.

Config

Требуется YANDEX_METRIKA_TOKEN в config/.env. Для чтения нужен доступ metrika:read, для создания сегментов и управления доступами — metrika:write. Инструкция: config/README.md.

Philosophy

  1. Cache-first — конфигурационные данные (счётчики, цели, инфо) кешируются надолго. Отчёты кешируются по ключу counter+dates+params. Перед API-запросом всегда проверяем кеш.
  2. Context window hygiene — stdout ограничен 30 строками. Полные данные в CSV/файл. Кеш доступен через grep/rg для поиска без загрузки в контекст.
  3. Точные данные — accuracy=1 (без сэмплирования), фильтр isRobot по умолчанию.
  4. Атрибуция — дефолт lastsign (последний значимый источник). Спрашиваем пользователя при первом запуске.

Workflow

STOP! Перед любым анализом:

  1. Получи список счётчиков:

    bash scripts/counters.sh
  2. Спроси пользователя (если счётчик не очевиден из контекста):

    "О каком счётчике/сайте идёт речь?
    Укажите ID, название или домен."

    Если пользователь назвал сайт/домен — ищи через --search:

    bash scripts/counters.sh --search "metallik"

    Это grep по TSV (id + name + site), поэтому находит и по домену.

  3. Получи инфо о счётчике и его цели:

    bash scripts/counter_info.sh --counter <ID>
    bash scripts/goals.sh --counter <ID>
  4. Спроси про конверсионные цели:

    "Какие из этих целей являются конверсионными для вашего бизнеса?
    [список целей из goals.sh]
    Сохраню выбранные для будущих отчётов."
  5. Сохрани конфигурацию в cache/counter_<id>/config.json:

    {
      "attribution": "lastsign",
      "conversion_goals": [
        {"id": 12345, "name": "Заказ оформлен"},
        {"id": 67890, "name": "Заявка отправлена"}
      ]
    }
  6. Запускай отчёты по задаче пользователя.

Сегменты и доступы

Для 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/.

Расширенные сценарии

Лимиты API

  • Reporting API: ~200 запросов / 5 минут (при превышении — ждите ~5 минут)
  • Скрипты автоматически обрабатывают 429 (Retry-After ≤ 60s → retry, иначе fail с сообщением)

Source: SKILL.md on GitHub

No alerts15d3 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    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.

  • Socket15d

    No alerts

  • Snyk15d

    Risk: LOW · No issues

Signed by skilld at 20da02c. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last week.

Activeupdated 3 weeks ago

README badge

README badge for artwist-polyakov/polyakov-claude-skills/yandex-metrika