Skip to content
Back to skills

Che Direct Analytics Skill

ASecurity

Собирает и рассчитывает данные Директа и Метрики раздельно, сверяет периоды, KPI и аномалии. Применяется для диагностики кампаний, ключей, CPA/ROAS/CTR и атрибуции; не распределяет неизвестную выручку по расходам.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 13, 2026
ai-agentspythonbashsqlrailsgitapi

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Pro scans all 19 files and shows the line behind each finding

Scanned October 13, 2026

npx -y skills add LuCheremisina/marketing-skills --skill che-direct-analytics-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Che Direct Analytics Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Che Direct Analytics Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lucheremisina-che-direct-analytics-skill/badge)](https://www.skillsdirectory.com/skills/lucheremisina-che-direct-analytics-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: che-direct-analytics-skill
description: "Собирает и рассчитывает данные Директа и Метрики раздельно, сверяет периоды, KPI и аномалии. Применяется для диагностики кампаний, ключей, CPA/ROAS/CTR и атрибуции; не распределяет неизвестную выручку по расходам."
license: MIT
metadata:
  version: 3.0.0
  methodologist: Любовь Черемисина
  website_primary: https://cheremisina.ru
  website_secondary: https://cheremisina.online
  repository: https://github.com/LuCheremisina/marketing-skills
  display_name: CHE_direct-analytics-skill
  author: Любовь Черемисина
---

# CHE_direct-analytics-skill — che-direct-analytics-skill

## Границы и принцип работы

Навык только читает API и локальный SQLite-кэш. Он никогда не меняет кампании,
ставки, бюджеты или цели. Любое предложенное действие — черновик для проверки
аналитиком.

Директ и Метрика — параллельные источники. `CrossSourceROAS` рассчитывается
только по явно сопоставленным строкам: выручка Метрики ÷ расход Директа.
Подписывай оба источника, период и правило сопоставления; это межисточниковая оценка.
Неатрибутированная выручка остаётся отдельной строкой и никогда не
распределяется по расходу.

## Настройка проекта

Проверь `~/.direct_analytics/{project}/config.json`. Для нового проекта:

```bash
python scripts/setup.py --new
```

Помимо OAuth-токенов, зафиксируй data contract:

- `REPORT_TIMEZONE` — IANA timezone отчёта;
- `UTM_SOURCE` и `UTM_MEDIUM` — фильтр трафика Директа, обычно `yandex` и `cpc`;
- `UTM_CAMPAIGN_MAPPING` — `campaign_id` или `campaign_name`;
- `ATTRIBUTION_MODE` — только `parallel` в первой версии;
- `GUARDRAILS` — проектные цели и `min_abs_delta` для алертов;
- `MONITOR_METRICS` и `COHORT_RULES` — список контролируемых KPI и regex-правила внутренних когорт.

Не добавляй универсальные пороги CPA/ROAS: они должны быть заданы в конкретном
проекте и иметь бизнес-смысл.

## Сбор фактов

```bash
python scripts/collect.py --project NAME --date_from 2026-08-01 --date_to 2026-08-07
python scripts/collect.py --project NAME --scope keyword --scope ad --date_from D --date_to D
```

- По умолчанию собирается `core`: `campaign`, `device`, `region`, `placement`, `adnetwork`.
- `keyword` и `ad` собираются только отдельными Direct Reports и только по явному `--scope`.
- Все данные сохраняются по завершённым дням. Пустой день — валидный факт;
  ошибка API — `complete=false` и будет повторно запрошена при следующем запуске.
- `--refresh` инвалидирует и пересобирает весь выбранный диапазон.
- Collector печатает contract, покрытие дат, свежесть и ошибки. Успешный выход
  не является доказательством production-эффекта — только успешного чтения API.

## Аналитика и reconciliation

```bash
python scripts/analyze.py --project NAME --period 7d --dim campaign --compare prev_period --format json
python scripts/analyze.py --project NAME --dim keyword --date_from D --date_to D
python scripts/analyze.py --project NAME --dim campaign --anomaly
```

Доступные разрезы: `campaign`, `device`, `region`, `keyword`, `placement`,
`ad`, `day`, `adnetwork`.

`campaign` и `day` читают reconciliation; поэтому могут показать Direct KPI,
Метрика KPI и подписанные cross-source показатели. Остальные разрезы показывают
только нативные Direct KPI, пока для них не настроено совместимое зерно Метрики.
Если нужный scope отсутствует, `analyze.py` подскажет точную команду сбора.

`--anomaly` применяет только `GUARDRAILS` проекта. Он не содержит скрытых
глобальных правил и не рекомендует автоматическое отключение площадок.

## Диагностика и feedback

```bash
python scripts/diagnose.py --project NAME --metric MetrikaRevenue \
  --date_from 2026-08-01 --date_to 2026-08-07 --compare prev_period --format json

python scripts/diagnose.py feedback --project NAME --run-id RUN_ID \
  --verdict confirmed --actual-cause "Campaign was paused" \
  --action-outcome "No change was applied"
```

`diagnose.py` возвращает `diagnosis_record`:

- data-status, coverage, timezone и правила атрибуции;
- trigger и сравниваемые периоды;
- воронку `показы → клики → визиты/цели → транзакции/выручка`;
- `confirmed_causes` только с прямым системным доказательством;
- `likely_drivers` как численный вклад, не как причинное утверждение;
- `hypotheses` и следующий read-only тест;
- draft-действие с явным требованием approval для любого изменения кабинета.

Human feedback хранит `confirmed`, `partial` или `refuted`, фактическую причину
и результат действия. Он предназначен для измерения калибровки, не для
неявного обучения модели.

## Monitor, бенчмарки и dashboards

```bash
python scripts/monitor.py --project NAME --date 2026-08-10 --format json
python scripts/benchmark.py --project NAME --period 30d --format html
python scripts/dashboard.py --project NAME --spec report-spec.json --format html
```

Monitor использует четыре предыдущих сопоставимых дня недели за 28 дней,
median и MAD. High alert требует одновременно статистической аномалии,
проектной материальности и полного data-quality gate. При недостаточной истории
возвращается `baseline_insufficient`. Доставка ограничена CLI + JSON/HTML:
n8n, Telegram и scheduler не входят в навык.

`benchmark.py` строит только внутренние когорты и показывает `n`, p25, median,
p75. Внешний market benchmark не создаётся.

LLM может превратить естественный запрос в `ReportSpec`, но `dashboard.py`
принимает лишь JSON со списком зарегистрированных `metrics`, `dimension`,
`period` либо `date_from/date_to` и `chart` из `table|line|bar`. Ответ всегда
содержит исходный query-spec и data-status.

Пример:

```json
{
  "dimension": "campaign",
  "metrics": ["Cost", "MetrikaRevenue", "CrossSourceROAS"],
  "period": "30d",
  "chart": "bar",
  "top": 10
}
```

## Quality gate

Перед результатом применить `evals/shared.csv`, `evals/skill-specific.csv` и
`evals/judge_prompt.md`. Арифметику, зерно данных, coverage, filters,
reconciliation, нулевые знаменатели и baseline проверяет код; LLM оценивает
только трассируемость и интерпретацию. Не вычислять общий балл.

Запуск локального test gate:

```bash
PYTHONPYCACHEPREFIX=/tmp/directanalytics-pycache \
python3 -m unittest discover -s tests -v
```

### Shadow-mode до запуска мониторинга

Для десяти исторических отклонений аналитик сохраняет `confirmed`, `partial`
или `refuted` через `diagnose.py feedback`. В каждом `run_id` обязательны
complete data-status и evidence trail. Локальный gate не обучает модель и не
запускает мониторинг:

```bash
python scripts/shadow_gate.py --project NAME --minimum-cases 10 --format json
```

Он считает долю подтверждённых диагнозов, false-certainty для явных
`confirmed_cause`, precision high-priority кейсов (если они промаркированы) и
медианное время до human verdict. Пока gate не `passed`, реальный запуск
монитора запрещён процессом; CLI сам не создаёт расписание или доставку.

## Навигация по ресурсам

- [references/api_notes.md](references/api_notes.md) — читать при соответствующем этапе workflow.

## Зависимости

Python-зависимости: [requirements.txt](requirements.txt). Использовать разрешённое
изолированное окружение; при отсутствии зависимостей раскрыть ограничение.

## Среда и входы

Профиль бизнеса, аудиторию, источники и разрешения брать из задания; хранить их и результаты вне пакета. Методолог навыка не становится автором материала автоматически. Использовать только объявленные инструменты. Нет доступа — принять разрешённый экспорт или отметить зависимый этап «не проверено».

Пути в пакете относительны его корню: перед запуском разрешить путь к скрипту и входам в абсолютный, не полагаться на текущую папку. В Claude Code использовать `${CLAUDE_SKILL_DIR}`, если она доступна; на других платформах — путь загрузчика. Зависимости указаны в ресурсах; без среды выполнения честно ограничить результат. Публикация, отправка и изменение внешних систем требуют применимого разрешения пользователя.

## Авторство

Методолог навыка — **Любовь Черемисина**. Лицензия оригинальной методологии и
кода этого пакета — MIT.

- [Основной сайт](https://cheremisina.ru)
- [Экспертные материалы](https://cheremisina.online)
- [Навыки для маркетологов](https://github.com/LuCheremisina/marketing-skills)

Атрибуция относится к пакету; не добавлять рекламную подпись в каждый результат.

## Ресурсы по необходимости

- [evals/judge_prompt.md](evals/judge_prompt.md) — читать при проверке результата.

Files in this skill

  • LICENSE1.1 KB
  • SKILL.md11.8 KB
  • agents/openai.yaml104 B
  • evals/judge_prompt.md1.7 KB
  • evals/portability-cases.json967 B
  • evals/shared.csv4.1 KB
  • evals/skill-specific.csv6 KB
  • references/api_notes.md3.9 KB
  • requirements.txt18 B
  • scripts/analyze.py13.3 KB
  • scripts/benchmark.py3.9 KB
  • scripts/collect.py22.1 KB
  • scripts/dashboard.py3.6 KB
  • scripts/db.py16.4 KB
  • scripts/diagnose.py12.4 KB
  • scripts/monitor.py5.3 KB
  • scripts/setup.py8.3 KB
  • scripts/shadow_gate.py4.8 KB
  • tests/test_engine.py10.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.