[TOOL] Yandex Metrika API client (traffic overview, sources, devices, conversions, popular pages, audience geography, demographics). Preloaded by marketing-web-analyst and marketing-ppc-specialist agents.
Scanned 6/1/2026
Install via CLI
openskills install AgentShekel/agentic-workflow---
name: yandex-metrika-guide
domain: marketing
description: |
[TOOL] Yandex Metrika API client (traffic overview, sources,
devices, conversions, popular pages, audience geography, demographics).
Preloaded by marketing-web-analyst and marketing-ppc-specialist agents.
---
# yandex-metrika
Informational skill — website traffic and user behavior analytics via Yandex Metrika API.
## Config
Requires `YANDEX_METRIKA_TOKEN` in `config/.env` (synced from yandex-analytics-methodology unified config).
Token setup and OAuth details in [config/README.md](config/README.md).
**Counter ID is per-project** — pass it via `--counter` flag on every script call.
Alternatively, set `YANDEX_METRIKA_COUNTER` in `config/.env` as a default for a single site.
## Workflow
1. **Check connection**: `bash scripts/quota.sh --counter 12345678`
2. **Run report** using appropriate script
3. **Interpret results** — the API returns raw JSON; parse and present key metrics
## Scripts
All scripts accept `--counter ID` to specify the Metrika counter. If not passed, falls back to `YANDEX_METRIKA_COUNTER` from config/.env.
### quota.sh
Check API connection and counter info.
```bash
bash scripts/quota.sh --counter 12345678
```
### overview.sh
Traffic overview: visits, pageviews, users, bounce rate, avg duration.
```bash
bash scripts/overview.sh --counter 12345678 --from 2025-01-01 --to 2025-01-31
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date (YYYY-MM-DD) |
| `--to` | no | today | End date (YYYY-MM-DD) |
### sources.sh
Traffic sources: search engines, referrals, direct, social.
```bash
bash scripts/sources.sh --counter 12345678 --from 2025-01-01 --to 2025-01-31 --limit 10
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date |
| `--to` | no | today | End date |
| `--limit` | no | 10 | Max rows per report |
### pages.sh
Popular pages: pageviews and users by URL.
```bash
bash scripts/pages.sh --counter 12345678 --from 2025-01-01 --limit 20
# Filter by URL substring
bash scripts/pages.sh --counter 12345678 --url "/price/"
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date |
| `--to` | no | today | End date |
| `--limit` | no | 20 | Max rows |
| `--url` | no | - | Filter pages by URL substring |
### devices.sh
Device, browser, and OS statistics.
```bash
bash scripts/devices.sh --counter 12345678 --type device
bash scripts/devices.sh --counter 12345678 --type browser
bash scripts/devices.sh --counter 12345678 --type os
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date |
| `--to` | no | today | End date |
| `--type` | no | device | `device`, `browser`, or `os` |
### goals.sh
Configured goals and conversion statistics.
```bash
# List goals only
bash scripts/goals.sh --counter 12345678 --list
# Goals with conversion stats
bash scripts/goals.sh --counter 12345678 --from 2025-01-01
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date |
| `--to` | no | today | End date |
| `--list` | no | false | Only list goals, skip stats |
### visitors.sh
Visitor demographics and geography.
```bash
bash scripts/visitors.sh --counter 12345678 --type geo
bash scripts/visitors.sh --counter 12345678 --type age
bash scripts/visitors.sh --counter 12345678 --type gender
```
| Param | Required | Default | Description |
|-------|----------|---------|-------------|
| `--counter` | yes* | from .env | Metrika counter ID |
| `--from` | no | 30 days ago | Start date |
| `--to` | no | today | End date |
| `--type` | no | geo | `geo`, `age`, or `gender` |
\* `--counter` is required unless `YANDEX_METRIKA_COUNTER` is set in config/.env
## API Reference
### Stat API (reports)
- Base: `https://api-metrika.yandex.net/stat/v1/data`
- Auth: `Authorization: OAuth <token>`
- Key params: `id` (counter), `preset` (report type), `date1`/`date2`, `metrics`, `dimensions`, `filters`, `sort`, `limit`
### Presets (most useful)
| Preset | Description |
|--------|-------------|
| `sources_summary` | Traffic by source type |
| `sources_search_engines` | Search engine breakdown |
| `sources_sites` | Referral sites |
| `tech_platforms` | Devices (desktop/mobile/tablet) |
| `tech_browsers` | Browser stats |
| `tech_os` | OS stats |
| `geo_country` | Geography by country |
| `age_gender` | Age and gender |
| `conversion_rate` | Goal conversions |
### Custom metrics (ym:s:*)
| Metric | Description |
|--------|-------------|
| `ym:s:visits` | Visits |
| `ym:s:pageviews` | Page views |
| `ym:s:users` | Unique users |
| `ym:s:bounceRate` | Bounce rate |
| `ym:s:avgVisitDurationSeconds` | Avg visit duration |
### Custom dimensions (ym:s:*)
| Dimension | Description |
|-----------|-------------|
| `ym:s:TrafficSource` | Traffic source |
| `ym:s:regionCity` | City |
| `ym:s:gender` | Gender |
| `ym:s:ageInterval` | Age group |
| `ym:s:deviceCategory` | Device type |
### Page-level metrics (ym:pv:*)
| Metric/Dimension | Description |
|------------------|-------------|
| `ym:pv:pageviews` | Page views |
| `ym:pv:users` | Users |
| `ym:pv:URLPath` | Page URL |
### Management API
- Base: `https://api-metrika.yandex.net/management/v1/counter/{id}/`
- Endpoints: `goals`, `filters`, `operations`, `grants`
## Common use cases
### "How's the site doing?"
```bash
bash scripts/overview.sh --counter 12345678
bash scripts/sources.sh --counter 12345678
bash scripts/devices.sh --counter 12345678
```
### "Which pages get the most traffic?"
```bash
bash scripts/pages.sh --counter 12345678 --limit 30
```
### "Are goals converting?"
```bash
bash scripts/goals.sh --counter 12345678
```
### "Who visits the site?"
```bash
bash scripts/visitors.sh --counter 12345678 --type geo
bash scripts/visitors.sh --counter 12345678 --type age
```
### Custom query (advanced)
Use `common.sh` functions directly:
```bash
source scripts/common.sh
load_config
YANDEX_METRIKA_COUNTER=12345678
# Custom metrics + dimensions
metrika_custom "ym:s:visits,ym:s:bounceRate" "ym:s:TrafficSource" "date1=2025-01-01&date2=2025-01-31&limit=10"
```
## Sharing
To share this skill with colleagues:
1. Copy the entire `yandex-metrika/` folder to their `~/.claude/skills/`
2. They create their own `config/.env` with their token
3. Run `bash scripts/quota.sh --counter THEIR_COUNTER` to verify
## Limits
- API rate limit: ~5 requests/second
- Daily limit depends on token type
- Data availability: ~5 min delay for real-time, historical data available fully
No comments yet. Be the first to comment!