Получение статистики по API

Адрес сервиса статистики: https://stats.terratraf.com/api/

Спецификация

Обращение к сервису выполняется по протоколу JSON-RPC 2.0. Подробнее о спецификации протокола можете прочитать в официальных источниках.

При обращении к API в GET-параметрах необходимо передавать метод из тела запроса, например:

curl -X POST -d '{
  "jsonrpc": "2.0",
  "method":"namespace.method",
  "params": {
    "param1": "value1",
    "param2": "value2"
  },
  "id": 1
}' https://localhost/?namespace.method

Получение статистики для источника

Для получения статистики необходимо вызвать метод "stat.getForSource".

Параметры запроса

НазваниеОписаниеТип
tokenТокен источникаstring
filterФильтрobject

Токен источника

Список доступных токенов находится на странице Source access. Если у вас нет в меню данного раздела, то обратитесь за доступом к Администратору.

Для каждого источника существует свой токен доступа. Если в запросе Вы не зададите фильтр "sourсe", то в результате вернется статистика по источнику, которому принадлежит указанный в параметрах запроса токен.

Если Вы хотите получить статистику сразу по всем источникам, то можете использовать любой доступный вам токен, но дополнительно задать фильтр "source": ["all"].

Параметры объекта filter

В таблице ниже описаны все возможные фильтры. В зависимости прав пользователя могут быть не доступны некоторые фильтры, группировки или срезы.

Название Описание Тип

date_from

Дата начала. В формате Год-месяц-день. (Обязательное поле).

date

date_to

Дата окончания. В формате Год-месяц-день. (Обязательное поле).

date

timezone

Смещение времени по GMT. Возможные значения:
Etc/GMT+0
Etc/GMT-1
Etc/GMT+3

string

main_group

Группировка значений.

  • "date_day" - группировка по дню,
  • "date_hour" - по часам,
  • "date_week" - по неделям,
  • "date_month" - по месяцам,
  • "partner" - по партнерам,
  • "camp" - по кампаниям,
  • "creative" - по креативам,
  • "source" - по источникам,
  • "country" - по странам,
  • "format" - по форматам,
  • "os" - по операционным системам,
  • "browser" - по браузерам,
  • "network" - по рекламным сетям (площадкам).

array of string

side_group

Срез данных по:

  • "source" - по источникам,
  • "source_geo" - источник + ГЕО,
  • "source_format" - источник + формат,
  • "source_placement" - источник + площадка,
  • "source_os" - источник + ОС,
  • "source_browser" - источник + браузер.

array of string

format

Формат креатива, задается только для среза данных по источникам + формат. Возможные значения: "v", "t" и "b" (видео, тизер и баннер соответственно).

string

source

Список доступных источников. Для отображения всех источников указывается значение: ["all"]

array of string

country

Список стран. Для отображения всех стран указывается значение: ["all"]

array of string

placement

Список площадок. Для отображения всех площадок указывается значение: ["all"]

array of string

os

Список операционных систем. Для отображения всех ОС указывается значение: ["all"]

array of string

browser

Список браузеров. Для отображения всех браузеров указывается значение: ["all"]

array of string

network

Список рекламных сетей (площадок). Для отображения всех площадок указывается значение: ["all"]

array of string

Параметры ответа

В ответе будет возвращен массив объектов. Объекты могут содержать следующие поля:

  • "source" - наименование источника,
  • "creative" - уникальный ID креатива,
  • "bid" - идентификатор ответа (response),
  • "shows" - количество показов,
  • "win_rate" - показатель выигрыша, т.е. процентное соотношение количества выигранных показов к количеству всех показов,
  • "clicks" - количество кликов,
  • "avg_cpm" - среднее значение CPM,
  • "request" - количество запросов,
  • "date_day" - день, для срезов по дням,
  • "date_hour" - час, для срезов по часам,
  • "date_week" - неделя, для срезов по неделям,
  • "date_month" - месяц, для срезов по месяцам,
  • "fill_rate" - наполняемость, т.е. процентное соотношение количества выполненных показов к количеству запросов,
  • "format" - тип креатива: баннер, видео, тизер. Например, "b728x90" - это баннер размера 728x90px,
  • "placement" - ID площадки,
  • "os" - название операционной системы,
  • "browser" - название браузера,
  • "network" - название рекламной сети (площадки).

🚧

Обратите внимание

Набор полей в ответе индивидуален для пользователя и зависит от выставленных в запросе фильтров.

Пример использования метода

// Запрос
curl -X POST -d '{
    "jsonrpc": "2.0",
    "method":"stat.getForSource",
    "params":{
        "token": "FNhw...KZc",
        "filter": {
            "date_from":"2023-08-01",
            "date_to":"2023-08-11",
            "timezone":"Etc/GMT+3",
            "main_group": ["network","source","placement"],
            "side_group": ["source_placement"],
            "network": ["demosite.ru"]
        }
    },
    "id": 1
}' "http://localhost/?stat.getForSource"


// Ответ
{
    "jsonrpc": "2.0",
    "result": [
        {
            "source": "name",
            "placement": 111111,
            "network": "demosite.ru",
            "bid": 591397,
            "shows": 14716,
            "win_rate": 2.49,
            "clicks": 3,
            "avg_cpm": 30.48
        },
        {
            "source": "name",
            "placement": 111112,
            "network": "demosite.ru",
            "bid": 252685,
            "shows": 14598,
            "win_rate": 5.78,
            "clicks": 50,
            "avg_cpm": 31.88
        }
    ],
    "id": 1
}

Так как в примере указали "main_group": ["network","source","placement"], то в результате есть группировка и по рекламной сети, и по источнику, и по площадке. Если в "main_group" не указывать, например, "placement", то данный столбец будет отсутствовать в ответе несмотря на "side_group": ["source_placement"].

Пример использования метода с выдачей формата креатива

Статистику по форматам креатива можно получить только в разбивке по дням и в GMT+0.

// Запрос
curl -X POST -d '{
    "jsonrpc": "2.0",
    "method":"stat.getForSource",
    "params":{
        "token": "EJa...kDy",
        "filter": {
            "date_from":"2023-01-01",
            "date_to":"2023-07-31",
            "timezone":"Etc/GMT+0",
            "main_group": ["format"],
            "side_group": ["source_format"],
            "source": ["all"],
            "format": "b"
        }
    },
    "id": 1
}' "http://localhost/?stat.getForSource"

// Ответ
{
    "jsonrpc": "2.0",
    "result": [
        {
            "format": "b300x250",
            "bid": "0",
            "shows": 1739412,
            "win_rate": 0,
            "clicks": 1341,
            "avg_cpm": 27.28
        },
        {
            "format": "b300x600",
            "bid": "0",
            "shows": 348468,
            "win_rate": 0,
            "clicks": 267,
            "avg_cpm": 24.52
        },
        {
            "format": "b240x400",
            "bid": "0",
            "shows": 336885,
            "win_rate": 0,
            "clicks": 94,
            "avg_cpm": 23.12
        },
        {
            "format": "b970x250",
            "bid": "0",
            "shows": 162341,
            "win_rate": 0,
            "clicks": 133,
            "avg_cpm": 21.24
        },
        {
            "format": "b160x600",
            "bid": "0",
            "shows": 59196,
            "win_rate": 0,
            "clicks": 38,
            "avg_cpm": 25.41
        },
        {
            "format": "b728x90",
            "bid": "0",
            "shows": 15539,
            "win_rate": 0,
            "clicks": 7,
            "avg_cpm": 25.11
        }
    ],
    "id": 1
}

Возможные ошибки

Код ошибкиОписаниеКомментарий
-32768 по -32099Ошибки JSON-RPC 2.0Подробнее смотрите в спецификации протокола.
0Неопределенная внутренняя ошибка.
1Неопределенная внутренняя ошибка.
300account not foundАккаунт не найден
600source token not found or not availableТокен источника не найден или недоступен
601invalid timezoneУказано некорректное смещение по времени
602invalid date_fromУказана некорректная дата начала
603invalid date_toУказана некорректная дата окончания