SSP Получение статистики по API для паблишеров
Адрес сервиса статистики: https://adm.spotsnetwork.com/api/v2/
Спецификация
Обращение к сервису выполняется по протоколу JSON-RPC 2.0. Подробнее о спецификации протокола можете прочитать в официальных источниках.
Авторизация пользователя
Для авторизации необходимо вызвать метод "user.auth".
Параметры запроса
Название | Описание | Тип |
---|---|---|
login | Логин пользователя | string |
password | Пароль пользователя | string |
Параметры ответа
В ответе будет возвращен массив объектов. Объекты могут содержать следующие поля:
- "access_token" - токен доступа,
- "refresh_token" - токен обновления,
- "access_ttl" - время жизни токена доступа,
- "refresh_ttl" - время жизни токена обновления.
Пример использования метода
// запрос
curl -X POST -d '{
"jsonrpc": "2.0",
"method":"user.auth",
"params":{
"login": "[email protected]",
"password": "111111"},
"id": 1
}' http://localhost/api/
// ответ
{
"jsonrpc":"2.0",
"result": {
"access_token":"ey...PK5Q",
"refresh_token":"eyJ...F3qTw",
"access_ttl": 1800,
"refresh_ttl": 5184000
},
"id":1
}
Обновление токенов доступа
Для обновления токенов необходимо вызвать метод "user.tokenRefresh".
Refresh token используется для обновления access и refresh токенов. Помимо обновления использование схемы refresh + access токенов ограничивает время, на которое атакующий может получить доступ к сервису, что обеспечивает дополнительную защиту и безопасность.
Параметры запроса
Метод вызывается без параметров. В заголовке необходимо передать значение Refresh token.
Параметры ответа
В ответе будет возвращен массив объектов. Объекты могут содержать следующие поля:
- "access_token" - токен доступа,
- "refresh_token" - токен обновления,
- "access_ttl" - время жизни токена доступа,
- "refresh_ttl" - время жизни токена обновления.
Пример использования метода
// запрос
// где TOKEN - refresh токен, полученный после авторизации
curl -H "Authorization: Bearer TOKEN" -X POST -d '{
"jsonrpc": "2.0",
"method":"user.tokenRefresh",
"id": 1
}' http://localhost/api/
// ответ
{
"jsonrpc":"2.0",
"result": {
"access_token":"ey...PK5Q",
"refresh_token":"eyJ...F3qTw",
"access_ttl": 1800,
"refresh_ttl": 5184000
},
"id":1
}
Получение статистики по площадкам пользователя
Для получения статистики необходимо вызвать метод "platform.getStatistics".
Параметры запроса
Название | Описание | Тип |
---|---|---|
filter | Фильтр | object |
Параметры объекта filter
В таблице ниже описаны все возможные фильтры. В зависимости прав пользователя могут быть не доступны некоторые фильтры.
Название | Описание | Тип |
---|---|---|
date_from | Дата начала периода. В формате Год-месяц-день. (Обязательное поле). | string |
date_to | Дата окончания периода. В формате Год-месяц-день. (Обязательное поле). | string |
main_group | Массив значений для группировки. Возможные значения: - "date_day" - группировка по дням, - "site" - группировка по площадке, - "site_id" - группировка по ID площадке, в ответе будет также выведено "site_name" (название этой площадки) - "placement" - группировка по плейсментам (размещениям), в ответе будет также выведено "placement_name" (название этого размещения). | array of strings |
site | Список площадок, передается URL (домен площадки). | array of strings |
site_id | Список площадок, передается ID площадки. | array of strings |
placement | Список ID плейсментов, для отображения всех placement указывается значение: ["all"] | array of strings |
placement_name | Список названий плейсментов, для отображения всех placement указывается значение: ["all"] | array of strings |
Параметры ответа
В ответе будет возвращен массив объектов. Объекты могут содержать следующие поля:
- "shows" - показы за выбранный период,
- "clicks" - клики за выбранный период,
- "income" - доход за выбранный период,
- "site" - площадка (только при наличии
main_group = site
), - "site_id" - ID площадки (только при наличии
main_group = site_id
), - "site_name" - название площадки (только при наличии
main_group = site_id
), - "placement" - ID плейсмента (только при наличии
main_group = placement
), - "placement_name" - название плейсмента (только при наличии
main_group = placement
), - "date_day" - дата в формате Год-месяц-день (только при наличии
main_group = date_day
).
Примеры использования метода
Пример запроса с указанием списка URL площадок
//Пример запроса с токеном доступа (токен передается в заголовке)
// где TOKEN - access токен, полученный после авторизации
curl -H 'Authorization: Bearer TOKEN' -X POST -d '
{
"jsonrpc": "2.0",
"method":"platform.getStatistics",
"params":{
"filter": {
"date_from": "2023-08-23",
"date_to": "2023-08-24",
"site": ["test1.ru", "test2.ru"],
"main_group": ["site"]
}
},
"id": 1
}' http://localhost/api/
// ответ
{
"jsonrpc": "2.0",
"result": [
{
"shows": 71385,
"clicks": 196,
"income": 3143.356472008,
"site": "test1.ru"
},
{
"shows": 944,
"clicks": 2,
"income": 55.626086398,
"site": "test2.ru"
}
],
"id": 1
}
Пример запроса с указанием ID площадки
//Пример запроса с токеном доступа (токен передается в заголовке)
// где TOKEN - access токен, полученный после авторизации
curl -H 'Authorization: Bearer TOKEN' -X POST -d '
{
"jsonrpc": "2.0",
"method":"platform.getStatistics",
"params":{
"filter": {
"date_from": "2023-08-23",
"date_to": "2023-10-24",
"site_id": ["750"],
"main_group": ["site_id"]
}
},
"id": 1
}
// ответ:
{
"jsonrpc": "2.0",
"result": [
{
"shows": 257005,
"clicks": 318,
"income": 8358.049411245,
"site_id": 750,
"site": "test1.ru",
"site_name": "test1.ru/forum",
"date_day": "2023-08-23"
},
{
"shows": 268855,
"clicks": 355,
"income": 8831.369401154,
"site_id": 750,
"site": "test1.ru",
"site_name": "test1.ru/forum",
"date_day": "2023-08-24"
},...
],
"id": 1
}
Пример запроса по всем площадкам пользователя с группировкой по ID площадок
//Пример запроса с токеном доступа (токен передается в заголовке)
// где TOKEN - access токен, полученный после авторизации
curl -H 'Authorization: Bearer TOKEN' -X POST -d '
{
"jsonrpc": "2.0",
"method":"platform.getStatistics",
"params":{
"filter": {
"date_from": "2023-08-23",
"date_to": "2023-10-24",
"main_group": ["site_id"]
}
},
"id": 1
}
// ответ:
{
"jsonrpc": "2.0",
"result": [
{
"shows": 25017,
"clicks": 24,
"income": 982.066071864,
"site_id": 748,
"site": "test1.ru",
"site_name": "test1.ru",
"date_day": "2023-08-23"
},
{
"shows": 50942,
"clicks": 63,
"income": 3047.962572134,
"site_id": 749,
"site": "test2.ru",
"site_name": "test2.ru",
"date_day": "2023-08-23"
},
{
"shows": 257005,
"clicks": 318,
"income": 8358.049411245,
"site_id": 750,
"site": "test1.ru",
"site_name": "test1.ru/forum",
"date_day": "2023-08-23"
},...
],
"id": 1
}
Updated 3 months ago