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": "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Массив значений для группировки.
Возможные значения:
- "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 }