Адрес сервиса статистики: 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": "test111@test111.com",
"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 | Массив значений для группировки. Возможные значения: 1. "date_day" - группировка по дням; 2. "site" - группировка по площадке; 3. "site_id" - группировка по ID площадке, в ответе будет также выведено "site_name" (название этой площадки); 4. "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
}