REST API 1.0

Материал из Wiki
Перейти к: навигация, поиск

Access-токен для OAuth2

Для аутентификации и авторизации в API используется протокол OAuth2 по схеме Client Credentials Grant.

Эта схема протокола OAuth2 позволяет пользователю взаимодействовать с API напрямую. Для пользователя создаётся клиент с параметрами client_id и client_secret, пользуясь которыми он сам получает access-токен для аутентификации в API.

clinetId и clientSecret вы можете получить оставив нам заявку.

При grant_type=client_credentials метод создаёт новый access-токен по паре client_id, client_secret, получаемой при регистрации OAuth-клиента.

Это реализация схемы Client Credentials Grant протокола OAuth2.

Запрос

POST /token HTTP/1.1
Host: api.hybrid.ru
Content-Type: application/x-www-form-urlencoded
  1. grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}
  2. grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}&advertiserId={advertiserId} - сгенерировать токен от имени агенства для рекламного аккаунта.

При grant_type=refresh_token метод создаёт новый access-токен взамен старого, который идентифицируется переданным параметром refresh_token.

В случае, если вызов осуществляется от агентского аккаунта вы можете сгенерировать токен для своего рекламодлателя передав дополнительный параметр в теле запроса (2).

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
  "access_token": "{access_token}",
  "token_type": "bearer",
  "scope": "{scope}",
  "expires_in": "86400",
  "refresh_token": "{refresh_token}"
}

Истечение срока действия access-токена

Каждый полученный access-токен является действительным в течение суток. На это указывает свойство expires_in в ответе на запрос access-токена. Там же указывается refresh_token — специальный токен для получения нового access-токена. За это отвечает схема Refreshing an Access Token в протоколе OAuth2.

Запрос

POST /token HTTP/1.1
Host: api.hybrid.ru
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
{
  "access_token": "{new_access_token}",
  "token_type": "bearer",
  "expires_in": "86400",
  "refresh_token": "{refresh_token}"
}

Получение списков рекламодателей для аккаунта агентства

Для получения списка рекламодателей вашего агентства вам необходмо сгенерировать токен из предыдущего заголовка под пунктом 1. Затем с помощью этого токена вам необходимо запросить список ваших рекламодателей:

Запрос

GET /advertiser/get HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

В ответ вы получите массив объектов c полями:

  1. id - идентификатор рекламодателя
  2. name - название рекламодателя
  3. balance - название рекламодателя

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
  {
    "Id": "53df8633af55cd57805746f5",
    "Name": "Advertiser 1",
    "Balance": "1500"
  },
  {
    "Id": "54f74d70870a8e44a023ghj5",
    "Name": "Advertiser 2",
    "Balance": "100"
  },
  {
    "Id": "5593b2ab9341f9b09819dq45",
    "Name": "Advertiser 3",
    "Balance": "0"
  }
]

После получения списка рекламодателей вы можете запросить токен для отдельного рекламодателя (1) и осуществлять с его помощью все вызовы к api.

Получение рекламных кампаний

GET /campaign/get HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}
 
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
  {
    "Id": "53df8633af55cd57805746f5",
    "Name": "Campaign 1"
  },
  {
    "Id": "54f74d70870a8e44a023ghj5",
    "Name": "Campaign 2"
  },
  {
    "Id": "5593b2ab9341f9b09819dq45",
    "Name": "Campaign 3"
  }

]

Получение статистики по рекламным кампаниям

Запрос

GET /statistic/campaign/{from}/{to}/{ids}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

from - нижний порог даты статистики,

to - верхний порог.

В параметр ids вам необходимо передать идентификатор рекламной кампании, если вам необходима статистика по нескольким кампаниям, то в качестве разделителя необходимо использовать запятую. Дату необходимо передавать в формате ISO-8601.

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
 
[
  {
    "CampaignId": "53df8633af55cd57805746f5",
    "Stat": [
    {
        "ImpressionCount": 61239,
        "ClickCount": 310,
        "Date": "2015-12-31",
        "Cost": 697.827701971,
        "SumBets": 1622290.744716147,
        "BetCount": 97247,
        "WinCount": 68734,
        "ConversionCount": 0,
        "PostClickConversionsCount": 0,
        "PostViewConversionsCount": 0,
        "PixelVisitCount": 0,
        "ActivePixelVisitCount": 0,
        "Ctr": 0.5
    }]
  }
]

Получение статистики по рекламным кампаниям указанного рекламодателя

Запрос

GET /statistic/advertiser/{from}/{to}/{ids}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

from - нижний порог даты статистики,

to - верхний порог.

В параметр ids вам необходимо передать идентификатор рекламодателя. Дату необходимо передавать в формате ISO-8601.


HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
 
[
  {
    "CampaignId": "53df8633af55cd57805746f5",
    "Stat": [
    {
        "ImpressionCount": 61239,
        "ClickCount": 310,
        "Date": "2015-12-31",
        "Cost": 697.827701971,
        "SumBets": 1622290.744716147,
        "BetCount": 97247,
        "WinCount": 68734,
        "ConversionCount": 0,
        "PostClickConversionsCount": 0,
        "PostViewConversionsCount": 0,
        "PixelVisitCount": 0,
        "ActivePixelVisitCount": 0,
        "Ctr": 0.5
    }]
  },
  {
    ...
  },
  ...
]

Получение баннеров по указанной рекламной кампании

Запрос

GET banner/get/{campaignId}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

где campaign_id - идентификатор рекламной кампании.

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
[
    {
        "Id": "58c1598f7bc72f277c4744ec",
        "Name": "Banner 1"
    },
    {
        "Id": "58c1598f7bc72f277c474408",
        "Name": "Banner 2"
    },
    {
        "Id": "58c1598f7bc72f277c474424",
        "Name": "Banner 3"
    },
    {
        "Id": "58c1598f7bc72f277c474440",
        "Name": "Banner 4"
    },
    {
        "Id": "58c1598f7bc72f277c47445c",
        "Name": "Banner 5"
    }
]

Получение статистики по баннерам указанной рекламной кампании

Запрос

GET /statistic/banners/campaign/{from}/{to}/{campaignId}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

где campaign_id - идентификатор рекламной кампании,

from - нижний порог даты статистики,

to - верхний порог

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
 
[
  {
        "Date": "2016-01-26",
        "SumWinningPrice": 0.006,
        "SumWinningPriceWithComission": 0.006,
        "SumBets": 100,
        "Domain": "sport-express.ru",
        "BetCount": 1,
        "WinCount": 1,
        "ImpressionCount": 1,
        "ViewCount": 0,
        "ClickCount": 0,
        "ConversionCount": 0,
        "PostClickConversionsCount": 0,
        "PostViewConversionsCount": 0,
        "PixelVisitCount": 0,
        "ActivePixelVisitCount": 0
  },
  {
    ...
  },
...
]

Получение статистики по баннерам с указанным доменом

Запрос

GET /statistic/banners/domain/{domain}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

где domain - интересующий домен (например, sport-express.ru)

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
[
  {
    "Date": "2014-12-16T00:00:00+03:00",
    "SumWinningPrice": 0.000509914,
    "SumWinningPriceWithComission": 0.000509914,
    "SumBets": 1059,
    "Domain": "sport-express.ru",
    "BetCount": 2,
    "WinCount": 0,
    "ImpressionCount": 0,
    "ViewCount": 0,
    "ClickCount": 0,
    "ConversionCount": 0,
    "PostClickConversionsCount": 0,
    "PostViewConversionsCount": 0,
    "PixelVisitCount": 0,
    "ActivePixelVisitCount": 0
  },
  {
    ...
  },
...
]

Получение статистики по указанному баннеру

Запрос

GET /statistic/banner/{from}/{to}/{bannerId}  HTTP/1.1
Host: api.hybrid.ru
Authorization: Bearer {access_token}

где bannerId - id нужного баннера,

from - нижний порог даты статистики,

to - верхний порог.

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
 
{
    "Date": "2017-03-18T00:00:00",
    "ClickCount": 10,
    "ImpressionCount": 6260,
    "Reach": 5510,
    "ActivePixelVisitCount": 0,
    "PixelVisitCount": 0,
    "ConversionCount": 0,
    "PostClickConversionsCount": 0,
    "PostViewConversionsCount": 0,
    "SumWinningPriceWithComission": 9.35129,
    "ViewCount": 0,
    "SumWinningPrice": 0,
    "SumBets": 0,
    "BetCount": 0,
    "WinCount": 0
}