Targetly Reports API
REST API для получения статистических данных по рекламным кампаниям. Все запросы возвращают JSON.
https://api.targetly.ru/v1Bearer Token100 req/minapplication/json/auth/tokenПолучение токена
Аутентификация по API-ключу. Токен действителен 24 часа. Генерация ключа доступна в личном кабинете → Настройки → API. Scope токена ограничен правами чтения отчётов.
Параметры
api_keyrequiredstringAPI-ключ из личного кабинетаТело запроса
{
"api_key": "sk_live_9a8b7c6d5e4f3a2b1c0d..."
}Пример запроса
curl -X POST https://api.targetly.ru/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"api_key": "sk_live_9a8b7c6d5e4f..."}'Пример ответа
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOi...",
"expires_at": "2026-03-20T15:30:00Z",
"scope": "reports:read"
}Примечания
/reports/summaryСводная статистика
Агрегированные метрики за указанный период по всем кампаниям или конкретной. Самый быстрый эндпоинт — среднее время ответа < 200ms.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииПример запроса
curl https://api.targetly.ru/v1/reports/summary\?date_from=2026-03-01\&date_to=2026-03-19 \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
{
"period": {
"from": "2026-03-01",
"to": "2026-03-19"
},
"impressions": 4821340,
"viewable_impressions": 3107265,
"clicks": 28491,
"ctr": 0.59,
"spend": 312450.00,
"vcpm": 100.56,
"viewability": 64.45,
"fraud_blocked": 219840,
"fraud_rate": 4.36,
"currency": "RUB"
}Примечания
/reports/dailyЕжедневная статистика
Детализация по дням. Используйте для построения графиков динамики. Поддерживает выборку конкретных метрик для снижения размера ответа.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииmetricsstringМетрики через запятую. Доступные: impressions, viewable_impressions, clicks, ctr, spend, vcpm, viewability, fraud_rate, fraud_blockedПример запроса
curl "https://api.targetly.ru/v1/reports/daily\
?date_from=2026-03-01&date_to=2026-03-07\
&metrics=spend,viewability,fraud_rate" \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
{
"data": [
{
"date": "2026-03-01",
"spend": 16430.00,
"viewability": 64.00,
"fraud_rate": 3.89
},
{
"date": "2026-03-02",
"spend": 17205.50,
"viewability": 65.39,
"fraud_rate": 4.12
},
{
"date": "2026-03-03",
"spend": 15890.00,
"viewability": 63.21,
"fraud_rate": 3.54
}
],
"total_records": 7
}Примечания
/reports/by-campaignСтатистика по кампаниям
Рейтинг кампаний за период с сортировкой и пагинацией. Включает статус кампании и все ключевые KPI.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)statusstringФильтр: active, paused, archived, all (по умолч. all)sort_bystringСортировка: spend, impressions, ctr, viewability, fraud_rate (по умолч. spend)orderstringНаправление: asc, desc (по умолч. desc)pageintegerНомер страницы (по умолч. 1)per_pageintegerЗаписей на страницу, макс. 100 (по умолч. 20)Пример запроса
curl "https://api.targetly.ru/v1/reports/by-campaign\
?date_from=2026-03-01&date_to=2026-03-19\
&status=active&sort_by=viewability&order=desc" \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
{
"data": [
{
"campaign_id": 10421,
"campaign_name": "Недвижимость — Москва Q1",
"status": "active",
"impressions": 1240560,
"viewable_impressions": 806364,
"clicks": 7321,
"ctr": 0.59,
"spend": 81120.00,
"vcpm": 100.60,
"viewability": 65.0,
"fraud_rate": 3.71
},
{
"campaign_id": 10455,
"campaign_name": "Авто — Ретаргетинг",
"status": "active",
"impressions": 890200,
"viewable_impressions": 560826,
"clicks": 5104,
"ctr": 0.57,
"spend": 56410.00,
"vcpm": 100.56,
"viewability": 63.0,
"fraud_rate": 4.89
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 12,
"total_pages": 1
}
}Примечания
/reports/by-placementСтатистика по площадкам
Детализация по доменам и placement ID. Ключевой эндпоинт для аудита качества трафика — показывает fraud_rate, viewability и среднее время на сайте по каждому источнику.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииmin_impressionsintegerМин. показов для включения (по умолч. 0)sort_bystringСортировка: spend, fraud_rate, viewability, avg_time_on_siteorderstringНаправление: asc, descpageintegerНомер страницыper_pageintegerЗаписей на страницуПример запроса
curl "https://api.targetly.ru/v1/reports/by-placement\
?date_from=2026-03-01&date_to=2026-03-19\
&campaign_id=10421&min_impressions=1000\
&sort_by=fraud_rate&order=desc" \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
{
"data": [
{
"domain": "news-portal.ru",
"placement_id": "PL-88201",
"ssp": "SSP-Alpha",
"ad_size": "300x250",
"impressions": 84200,
"viewable_impressions": 57256,
"clicks": 512,
"ctr": 0.61,
"spend": 5760.00,
"viewability": 68.0,
"fraud_rate": 1.24,
"avg_time_on_site": 42.3,
"bounce_rate": 31.2
},
{
"domain": "sport-today.ru",
"placement_id": "PL-91044",
"ssp": "SSP-Beta",
"ad_size": "728x90",
"impressions": 62100,
"viewable_impressions": 38502,
"clicks": 310,
"ctr": 0.50,
"spend": 3870.00,
"viewability": 62.0,
"fraud_rate": 2.81,
"avg_time_on_site": 28.1,
"bounce_rate": 48.6
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 348,
"total_pages": 18
}
}Примечания
/reports/by-creativeСтатистика по креативам
Эффективность каждого креатива: какой баннер приносит лучший CTR и viewability. Используйте для A/B-тестирования и отключения слабых креативов.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииformatstringФормат креатива: display, video, native, all (по умолч. all)sort_bystringСортировка: ctr, spend, viewability, impressionsПример запроса
curl "https://api.targetly.ru/v1/reports/by-creative\
?date_from=2026-03-01&date_to=2026-03-19\
&campaign_id=10421&format=display&sort_by=ctr&order=desc" \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
{
"data": [
{
"creative_id": 55012,
"creative_name": "Banner_300x250_v2",
"format": "display",
"size": "300x250",
"impressions": 620100,
"viewable_impressions": 409866,
"clicks": 4092,
"ctr": 0.66,
"spend": 41220.00,
"viewability": 66.1,
"moderation_status": "approved"
},
{
"creative_id": 55018,
"creative_name": "Banner_728x90_promo",
"format": "display",
"size": "728x90",
"impressions": 320400,
"viewable_impressions": 195444,
"clicks": 1410,
"ctr": 0.44,
"spend": 19660.00,
"viewability": 61.0,
"moderation_status": "approved"
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 8,
"total_pages": 1
}
}Примечания
/reports/fraudОтчёт по фроду
Полная детализация заблокированного трафика. Три режима группировки: по типу угрозы, по домену-источнику, по дням. Ключевое поле saved_budget показывает, сколько денег сэкономлено.
Параметры
date_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииgroup_byrequiredstringГруппировка: reason — по типу фрода, domain — по площадке, day — по днямПример запроса
# По типам фрода
curl "https://api.targetly.ru/v1/reports/fraud\
?date_from=2026-03-01&date_to=2026-03-19\
&group_by=reason" \
-H "Authorization: Bearer eyJhbGciOi..."
# По площадкам
curl "https://api.targetly.ru/v1/reports/fraud\
?date_from=2026-03-01&date_to=2026-03-19\
&group_by=domain&campaign_id=10421" \
-H "Authorization: Bearer eyJhbGciOi..."Пример ответа
// group_by=reason
{
"total_blocked": 219840,
"fraud_rate": 4.36,
"saved_budget": 22104.50,
"currency": "RUB",
"breakdown": [
{ "reason": "Datacenter IP", "count": 82410, "share": 37.5 },
{ "reason": "Bot signature", "count": 51203, "share": 23.3 },
{ "reason": "Click flood", "count": 34120, "share": 15.5 },
{ "reason": "Proxy / VPN", "count": 24890, "share": 11.3 },
{ "reason": "Device emulator", "count": 15440, "share": 7.0 },
{ "reason": "Other", "count": 11777, "share": 5.4 }
]
}
// group_by=domain
{
"total_blocked": 219840,
"fraud_rate": 4.36,
"saved_budget": 22104.50,
"breakdown": [
{ "domain": "cheap-traffic.xyz", "count": 48200, "fraud_rate": 89.1 },
{ "domain": "get-prizes.top", "count": 31040, "fraud_rate": 73.4 },
{ "domain": "free-bonus.click", "count": 22100, "fraud_rate": 62.8 }
]
}Примечания
/reports/exportЭкспорт отчёта
Асинхронная генерация файла выгрузки. Для больших объёмов данных (> 10 000 строк) используйте этот эндпоинт вместо пагинации. Файл доступен по ссылке 24 часа.
Параметры
report_typerequiredstringТип отчёта: summary, daily, by-campaign, by-placement, by-creative, frauddate_fromrequiredstringНачало периода (YYYY-MM-DD)date_torequiredstringКонец периода (YYYY-MM-DD)campaign_idintegerФильтр по ID кампанииformatstringФормат файла: csv, xlsx (по умолч. csv)Тело запроса
{
"report_type": "by-placement",
"date_from": "2026-03-01",
"date_to": "2026-03-19",
"campaign_id": 10421,
"format": "xlsx"
}Пример запроса
# 1. Создать задачу на экспорт
curl -X POST https://api.targetly.ru/v1/reports/export \
-H "Authorization: Bearer eyJhbGciOi..." \
-H "Content-Type: application/json" \
-d '{
"report_type": "by-placement",
"date_from": "2026-03-01",
"date_to": "2026-03-19",
"format": "xlsx"
}'
# 2. Проверить статус (через 10-30 сек)
curl https://api.targetly.ru/v1/reports/export/exp_8f3a2b1c \
-H "Authorization: Bearer eyJhbGciOi..."
# 3. Скачать готовый файл
curl -O https://api.targetly.ru/files/exp_8f3a2b1c.xlsxПример ответа
// Шаг 1: POST /reports/export → Задача создана
{
"job_id": "exp_8f3a2b1c",
"status": "processing",
"estimated_seconds": 15
}
// Шаг 2: GET /reports/export/exp_8f3a2b1c → Готово
{
"job_id": "exp_8f3a2b1c",
"status": "completed",
"download_url": "https://api.targetly.ru/files/exp_8f3a2b1c.xlsx",
"expires_at": "2026-03-20T15:30:00Z",
"file_size": "2.4 MB",
"rows": 14820
}
// Возможные статусы: processing, completed, failed
// При failed — поле "error" с описанием причины