[TOOL] Unified Yandex analytics hub configuration (shared tokens, cross-service workflows across Webmaster, Metrika, Wordstat, Direct, Search, seo-auditing, semantic-drift). Preloaded by marketing-web-analyst and marketing-traffic-lead agents.
Scanned 6/1/2026
Install via CLI
openskills install AgentShekel/agentic-workflow---
name: yandex-analytics-methodology
domain: marketing
description: |
[TOOL] Unified Yandex analytics hub configuration (shared
tokens, cross-service workflows across Webmaster, Metrika, Wordstat, Direct,
Search, seo-auditing, semantic-drift). Preloaded by marketing-web-analyst and
marketing-traffic-lead agents.
---
# yandex-analytics
Informational skill — unified Yandex analytics hub with single config and cross-service workflows.
## Config
Single config file for all Yandex services: `config/.env`
```bash
# === OAuth Token (Webmaster + Metrika + Direct + Wordstat) ===
# One token with all scopes — see config/README.md for setup
YANDEX_OAUTH_TOKEN=y0_your_token
# === Metrika ===
# Counter ID is PER-PROJECT — pass via --counter flag when running metrika scripts
# Set here only as default if you mostly work with one site:
# YANDEX_METRIKA_COUNTER=12345678
# === Yandex Cloud Search API v2 ===
YANDEX_SEARCH_API_KEY=your_api_key
YANDEX_CLOUD_FOLDER_ID=your_folder_id
# === Optional: Direct sandbox ===
# YANDEX_DIRECT_SANDBOX=true
# YANDEX_DIRECT_LOGIN=agency_client_login
# === Semantic Drift ===
# No API keys needed — uses local sentence-transformers model
```
**Note:** Metrika counter ID varies per project. All metrika scripts accept `--counter ID` flag.
Run `bash scripts/check.sh` to verify which services are configured.
## Architecture
This skill is an orchestrator over individual Yandex skills:
```
yandex-analytics/ <- unified entry point
config/.env <- SINGLE config for all services
scripts/
check.sh <- verify all connections
sync-config.sh <- propagate config to individual skills
dashboard.sh <- quick status of all services
SKILL.md <- this file
yandex-webmaster/ <- indexing, queries, diagnostics
yandex-metrika/ <- traffic, behavior, conversions
yandex-wordstat/ <- search demand, semantics
yandex-direct/ <- ad campaigns, statistics
yandex-search/ <- SERP positions, competitors
seo-audit/ <- comprehensive SEO audit orchestrator
semantic-drift/ <- topical drift analysis
```
## Setup (one-time)
### Step 1: Configure tokens
```bash
cp config/.env.example config/.env
# Edit config/.env with your tokens
```
### Step 2: Sync config to all skills
```bash
bash scripts/sync-config.sh
```
This propagates the unified config to individual skill config directories.
### Step 3: Verify connections
```bash
bash scripts/check.sh
```
## Quick Reference
### What do I need for...?
| Task | Required Services | Command |
|------|------------------|---------|
| Site traffic overview | Metrika | `bash ~/...metrika/scripts/overview.sh --counter ID` |
| Check indexing | Webmaster | `bash ~/...webmaster/scripts/indexing.sh` |
| Search positions | Search XML | `bash ~/...search/scripts/positions.sh` |
| Keyword research | Wordstat | `bash ~/...wordstat/scripts/top_requests.sh` |
| Ad campaign stats | Direct | `bash ~/...direct/scripts/report.sh` |
| Full SEO audit | All | invoke `seo-auditing` skill |
| Semantic drift | Webmaster + Metrika | `python ~/...semantic-drift/scripts/analyze.py` |
### Token Scopes Required
| Service | OAuth Scope |
|---------|-------------|
| Webmaster | Яндекс.Вебмастер -> Получение информации о сайтах |
| Metrika | Яндекс.Метрика -> Получение статистики, чтение параметров |
| Direct | Яндекс.Директ -> Управление кампаниями, Получение статистики |
| Wordstat | API Вордстата |
All four use the same OAuth token if you add all scopes when creating the app.
### Нюансы регистрации
#### Wordstat API
- Использует OAuth-токен (тот же, что Вебмастер/Метрика), но требует отдельное одобрение доступа к API
- Ошибка без одобрения: 403 Forbidden
- Как получить доступ: отправить запрос через поддержку Яндекс Директа с логином и ClientId из OAuth-приложения
- Одобрение Wordstat и Direct — отдельные процессы, одно может быть одобрено без другого
- После одобрения существующий OAuth-токен сразу работает — новый токен получать не нужно
#### Direct API
- Использует тот же OAuth-токен, тоже требует отдельное одобрение доступа к API
- Ошибка без одобрения: код 58 «Незавершенная регистрация»
- Как получить доступ:
1. Зайти на `direct.yandex.ru` → Настройки (шестерёнка) → Настройки API
2. Вкладка «Мои заявки» → «Новая заявка»
3. Прямая ссылка: `https://direct.yandex.ru/registered/main.pl?cmd=apiSettings`
4. Указать ClientId из OAuth-приложения, описать назначение
5. Ждать от 1 часа до 3 рабочих дней (рассмотрение пн-пт 10:00-19:00 МСК)
- Одна заявка на приложение — покрывает всех пользователей этого приложения
#### Search API v2 (Yandex Cloud)
- Не использует OAuth — полностью отдельная авторизация через Yandex Cloud
- Старый XML API (`xml.yandex.ru`) мёртв с ~2025 года (ошибка 4002)
- **Шаги настройки:**
1. Зарегистрироваться в `console.yandex.cloud`
2. Создать сервисный аккаунт
3. Назначить роли: `search-api.executor` + `search-api.webSearch.user` (обе обязательны)
4. Создать API-ключ для сервисного аккаунта
5. Скопировать folder ID из консоли Cloud (выпадающий список слева вверху → копировать ID)
- **Частая ошибка:** неправильный folder ID. Каталог должен быть в том же облаке, где у сервисного аккаунта назначены роли
- API асинхронный: POST для отправки запроса → опрос endpoint операций → получение XML в base64
- Тарификация: оплата за запрос (бесплатного лимита, как у старого XML API, нет)
#### Общие советы
- Создавайте одно OAuth-приложение со всеми скоупами на `oauth.yandex.ru/client/new` — экономит время
- Скоупы для включения: Вебмастер, Метрика, Директ, Вордстат (4 галочки)
- После создания OAuth-приложения всё равно нужно отдельно подать заявки на доступ к API Директа и Вордстата
- Search API использует совершенно другую авторизацию (API-ключ Yandex Cloud, не OAuth)
## Workflow Examples
### "How's the site doing?" (quick dashboard)
```bash
bash scripts/dashboard.sh --host https://example.com
```
Runs: Metrika overview + Webmaster summary + SQI. Shows combined metrics.
### "Full SEO audit"
Invoke the `seo-auditing` skill — it will use data from all configured services.
### "Semantic drift analysis"
```bash
# Resolve skills root (default ~/.claude/skills, override via SKILLS_ROOT env)
SKILLS_ROOT="${SKILLS_ROOT:-$HOME/.claude/skills}"
# 1. Collect data
bash "$SKILLS_ROOT"/yandex-webmaster/scripts/search_queries.sh \
--host https://example.com --limit 500 --csv /tmp/queries.csv
# 2. Analyze
python "$SKILLS_ROOT"/semantic-drift/scripts/analyze.py \
--queries /tmp/queries.csv --output /tmp/drift.html
```
### "Research keyword + check position + see traffic"
```bash
# 1. Demand in Wordstat
bash "$SKILLS_ROOT"/yandex-wordstat/scripts/top_requests.sh \
--phrase "купить кирпич" --regions 213
# 2. Current position
bash "$SKILLS_ROOT"/yandex-search/scripts/positions.sh \
--domain example.com --query "купить кирпич" --region 213
# 3. Current traffic to related pages (pass counter ID for the project)
bash "$SKILLS_ROOT"/yandex-metrika/scripts/pages.sh --counter 12345678 --url "/kirpich/"
```
## Limits Summary
| Service | Rate Limit | Daily Limit |
|---------|-----------|-------------|
| Webmaster | ~5 req/s | depends on token |
| Metrika | ~5 req/s | depends on token |
| Wordstat | 10 req/s | 1000 req/day |
| Direct | 5 req/s | reports async |
| Search API v2 | 1 req/s | pay-per-use |
No comments yet. Be the first to comment!