Действия пользователя при работе с программным интерфейсом AdRiver
- Аутентификация в системе
- Работа с сайтами
- Работа с зонами сайта
- Работа с рекламными кампаниями
- Работа со слайсами
- Работа с пулами
- Работа со сценариями
- Работа с баннерами
- Загрузка баннеров
Для работы с программным интерфейсом необходимо иметь зарегистрированный аккаунт в системе AdRiver. Если аккаунт ранее не создавался, следует зарегистрироваться в системе, поскольку параметры аккаунта (имя пользователя и пароль) будут использоваться для аутентификации в системе через программный интерфейс.
1. Аутентификация в системе
Аутентификация в системе осуществляется с использованием идентификатора (user_id) и ключа аутентификации (token) в системе AdRiver. Соответствующие параметры должны передаваться в качестве HTTP-заголовков каждого запроса к программному интерфейсу.
X-Auth-UserID:user_id X-Auth-Passwd:token
Для получения значений этих параметров необходимо однократно выполнить запрос, в котором в качестве заголовков передаются значения действующих наименования учетной записи и пароля пользователя в системе AdRiver.
В ответе на такой запрос пользователю передаются параметры user_id (идентификатор пользователя в системе) и token (ключ аутентификации) для дальнейшей работы в системе.
Content-Type:application/atom+xml X-Auth-Login:plain_login X-Auth-Passwd:plain_password
Запрос передается в формате Atom Syndication Format.
Пример запроса для аутентификации (формат atom+xml):
GET/login Content-Type: application/atom+xml X-Auth-Login:plain_login X-Auth-Passwd:plain_password
Вид ответа в случае подтверждения переданных в запросе параметров: наименования учетной записи и пароля пользователя (успешная аутентификация):
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<title>AdRiver login authentication parameters</title>
<updated>2011-06-27T13:04:33+04:00</updated>
<author>
<name>Adriver::RestAPI::Login</name>
</author>
<adriver:userId>12345</adriver:userId>
<adriver:token>%5DY%00%AA%00%0Fm%2F%03</adriver:token>
</entry>
Примечания к коду:
- 12345 — идентификатор пользователя.
- %5DY%00%AA%00%0Fm%2F%03 — ключ аутентификации.
Вид ответа в случае отсутствия подтверждения переданных в запросе параметров: наименования учетной записи и пароля пользователя (ошибка аутентификации):
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>AdRiver login authentication error</title>
<updated>2011-06-27T13:05:40+04:00</updated>
<author>
<name>Adriver::RestAPI::Login</name>
</author>
<content type="text">bad login or password</content>
</entry>
2. Работа с сайтами
Использование программного интерфейса позволяет осуществлять следующие операции с сайтами в системе AdRiver:
- добавление сайта;
- просмотр списка сайтов;
- изменение сайта;
- просмотр данных сайта.
Параметры, используемые при работе с сайтами в AdRiver через программный интерфейс, подразделяются на обязательные и необязательные. Обязательные параметры необходимо использовать при создании и редактировании сайта. Значения всех параметров, определенных для сайтов (как обязательных, так и необязательных) выдаются системой при ответе на запрос.
Обязательные параметры:
- userId – идентификатор учетной записи в системе (определяется при аутентификации);
- name – наименование сайта;
- url – адрес ресурса (сайта) в сети Интернет;
- checkSiteUrl — проверять ли (1) соответствие реферера URLу и алиасам сайта при показе (не проверять — 0);
- enable – разрешение на обработку запросов с этого сайта системой (корректное значение для нормальной работы добавляемого сайта — 1).
Необязательные параметры:
- shortname – краткое название сайта;
- alias.url – другие алиасы сайта;
- defaultBannerType – тип баннера по умолчанию;
- bannerSpecParams.item – служебные параметры настройки показов различных типов баннеров на сайте, используются только для аккаунтов с правами администратора, более подробная информация по настройке этих параметров находится в приложении.
Более подробную информацию о добавлении и настройке сайта можно получить из документации на сайте.
2.1. Добавление сайта
В теле запроса указываются значения всех обязательных параметров сайта. Пример запроса на добавление сайта.
POST/sites
Content-Type: application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<title>Site Atom Entry</title>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2011-07-08T16:11:11+04:00</updated>
<author>
<name>1C Media Finance</name>
</author>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<name>site-check</name>
<shortName>s-c</shortName>
<url>http://someurl.org</url>
<alias>
<url>http://nowhere.org</url>
</alias>
<checkSiteUrl>1</checkSiteUrl>
<enable>1</enable>
<defaultBannerType>1</defaultBannerType>
<bannerSpecParams>
<item>
<action>1</action>
<bannerSpec>31</bannerSpec>
<exposureInterval>1</exposureInterval>
</item>
<item>
<action>0</action>
<bannerSpec>0</bannerSpec>
<exposureInterval>0</exposureInterval>
</item>
<item>
<action>1073829856</action>
<bannerSpec>0</bannerSpec>
<exposureInterval>1073829856</exposureInterval>
</item>
</bannerSpecParams>
<trafficManager>
<name>dimas</name>
<email>dima@adriver.ru</email>
</trafficManager>
</site>
</content>
<adriver:userId>29440</adriver:userId>
</entry>
В случае успешного создания сайта будет возвращено его представление, в котором содержатся все параметры созданного сайта:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-02T19:24:33+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179042</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179042</id>
<name>Первый сайт</name>
<shortName/>
<url>http://adriver.ru</url>
<alias>
<url>http://www.adriver.ru </url>
</alias>
<checkSiteUrl>0</checkSiteUrl>
<enable>1</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
<action>2</action>
<bannerSpec>0</bannerSpec>
<exposureInterval>0</exposureInterval>
</item>
<item>
<action>2</action>
<bannerSpec>0</bannerSpec>
<exposureInterval>0</exposureInterval>
</item>
<item>
...
</item>
<item>
<action>2</action> <bannerSpec>0</bannerSpec> <exposureInterval>0</exposureInterval>
</item>
</bannerSpecParams>
<trafficManager>
<name/>
<email/>
</trafficManager>
</site>
</content>
<adriver:revision>5915bf3725e3ae10cd62c164389ab2904a858f93</adriver:revision>
</entry>
Примечания к коду:
- 179042 — идентификатор добавленного сайта.
- Первый сайт — название добавленного сайта.
- http://adriver.ru — URL добавленного сайта.
- http://www.adriver.ru — алиас добавленного сайта.
- <checkSiteUrl>0</checkSiteUrl> — не проверять соответствие реферера url и алиасам сайта при показе.
- <enable>1</enable> — обработка запросов с добавленного сайта разрешена.
- <action>2</action>, <bannerSpec>0</bannerSpec>, <exposureInterval>0</exposureInterval> — служебные параметры.
- 5915bf3725e3ae10cd62c164389ab2904a858f93 — номер ревизии данных сайта.
Код ответа 201.
2.2. Получение списка сайтов пользователя
Нижеследующий запрос позволяет получить список всех сайтов данного аккаунта (в примере – аккаунта 179221).
GET/sites?user_id=179221 Content-Type:application/atom+xml X-Auth-UserID:179221 X-Auth-Passwd:token
В ответ система возвращает все текущие данные по всем сайтам запрошенного идентификатора аккаунта:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T17:39:18+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Feed</title>
<id>https://api.adriver.ru/sites?user_id=179221</id>
<link rel="self" type="application/atom+xml" href="https://api.adriver.ru/sites?user_id=179221"/>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T17:39:18+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179042</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179042</id>
<name> Первый сайт (adriver.ru)</name>
<shortName/>
<url>http://adriver.ru</url>
<alias>
<url>http://www.adriver.ru</url>
</alias>
<checkSiteUrl>0</checkSiteUrl>
<enable>0</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
. . .
</item>
</bannerSpecParams>
</site>
</content>
<adriver:revision>960e4109e7680981563d67b106125e7a83bec2d0</adriver:revision>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T17:39:18+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179172</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179172"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179172</id>
<name>Второй сайт</name>
<shortName/>
<url>http://adriver.ru</url>
<alias/>
<checkSiteUrl>0</checkSiteUrl>
<enable>1</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
. . .
</item>
</bannerSpecParams>
</site>
</content>
<adriver:revision>84bedf69f551a98e0614fcbff573752a0246aa56</adriver:revision>
</entry>
</feed>
Код ответа 200.
2.3. Редактирование данных сайта
Если необходимо изменить данные ранее добавленного сайта в AdRiver, то это можно осуществить с помощью запроса на его изменение. Операция редактирования по своей сути аналогична операции добавления сайта, поскольку в соответствующем запросе содержится полный список обязательных параметров сайта.
В отличие от запроса, выполняемого при добавлении сайта, при редактировании данных сайта запрос содержит дополнительный тег <revision>, в который записывается номер ревизии обновляемого объекта. Номер ревизии представляет собой уникальное значение хэш-функции, вычисляемое для данного объекта. Номер ревизии передается сервером клиенту при создании объекта и просмотре его данных. Этот же номер ревизии необходимо передать серверу при модификации созданного ранее объекта. Перед выполнением операции модификации сервер вычисляет собственный номер ревизии объекта и сравнивает его с номером ревизии, переданным клиентом в запросе на модификацию. Только в случае точного совпадения номеров ревизий клиента и сервера операция модификации будет выполнена. Такая схема работы позволяет избежать коллизий при попытке двух или более пользователей системы одновременно изменить один и тот же объект (в данном случае в качестве объекта выступает сайт).
В теле запроса указываются значения всех обязательных параметров сайта. В приведенном примере запрос на редактирование содержит измененное значение наименования сайта (name).
Примечание: При редактировании все данные запроса переписываются заново для редактируемого сайта, независимо от того, изменились ли их значения или нет.
PUT/sites/179042
Content-Type:application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T17:25:21+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179042</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179042</id>
<name>Первый сайт (adriver.ru)</name>
<shortName/>
<url>http://adriver.ru</url>
<alias>
<url>http://www.adriver.ru</url>
</alias>
<checkSiteUrl>0</checkSiteUrl>
<enable>0</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
</site>
</content>
<adriver:revision>230c72a08450f9fa3ba792d180570ff246a45574</adriver:revision>
</entry>
Примечания к коду
- 230c72a08450f9fa3ba792d180570ff246a45574 — номер ревизии.
В случае успешного редактирования в ответе возвращаются все текущие данные сайта и обновленный номер ревизии, аналогично ответу системы при добавлении сайта.
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T18:04:55+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179042</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179042</id>
<name>Первый сайт (adriver.ru)</name>
<shortName/>
<url>http://adriver.ru</url>
<alias>
<url>http://www.adriver.ru</url>
</alias>
<checkSiteUrl>0</checkSiteUrl>
<enable>0</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
. . .
</item>
</bannerSpecParams>
</site>
</content>
<adriver:revision>c67d1bbe001ce72f35b541c349f2ef473b765140</adriver:revision>
</entry>
Примечания к коду
- c67d1bbe001ce72f35b541c349f2ef473b765140 — новый номер ревизии.
Код ответа 200.
В случае ошибки, например, при несовпадении номеров ревизий клиента (в запросе) и сервера, выдается ответ следующего вида:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-08T17:25:24+04:00</updated>
<content type="text">revision collision for site (id=179042)</content>
<summary>Adriver::RestAPI::Core::Exception::RevisionCollision</summary>
</entry>
Код ответа 412.
2.4. Просмотр данных сайта
Имеется возможность также получить данные сайта по его уникальному идентификатору (id). Идентификатор сайта выдается в ответе системы при добавлении сайта, также можно получить идентификаторы всех сайтов данного аккаунта при просмотре списка сайтов пользователя (п.2.2).
Пример запроса на просмотр данных сайта:
GET/sites/179042
Content-Type:application/atom+xml
X-Auth-UserID:179221 X-Auth-Passwd:token
Примечания к коду
- 179042 — идентификатор сайта, данные которого просматриваются.
В ответ система возвращает все текущие данные по запрошенному идентификатору сайта:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-07T17:25:21+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Site Atom Entry</title>
<id>urn:x-adriver:179042</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<content type="text/xml">
<site xmlns="http://adriver.ru/ns/restapi/atom">
<id>179042</id>
<name>Первый сайт</name>
<shortName/>
<url>http://adriver.ru</url>
<alias>
<url>http://www.adriver.ru</url>
</alias>
<checkSiteUrl>0</checkSiteUrl>
<enable>0</enable>
<defaultBannerType>0</defaultBannerType>
<bannerSpecParams>
<item>
. . .
</item>
</bannerSpecParams>
</site>
</content>
<adriver:revision>960e4109e7680981563d67b106125e7a83bec2d0</adriver:revision>
</entry>
Код ответа 200.
Примечание: Ответ для удобства приводится без служебных параметров.
3. Работа с зонами сайта
Использование программного интерфейса позволяет осуществлять следующие операции с зонами сайта в AdRiver:
- добавление зоны сайта;
- просмотр списка зон сайта;
- изменение зоны сайта;
- просмотр зоны сайта;
- удаление зоны сайта;
- удаление всего списка зон сайта.
Параметры, используемые при работе с зонами сайтов в системе AdRiver через программный интерфейс, подразделяются на обязательные и необязательные. Обязательные параметры необходимо использовать при создании и редактировании зоны сайта. Значения всех параметров, определенных для зон сайтов (как обязательных, так и необязательных), выдаются системой при ответе на запрос.
Обязательные параметры:
- siteId – идентификатор сайта в системе (отображается при добавлении сайта и чтении списка сайтов);
- name – наименование зоны сайта;
- priority – приоритет зоны сайта.
Необязательные параметры:
- alias – обозначение зоны сайта;
- urls – шаблоны адресов страниц сайта, принадлежащих зоне сайта.
3.1. Добавление зоны сайта
В теле запроса указываются значения всех обязательных параметров зоны сайта. Пример запроса на добавление зоны сайта:
POST/sites/179042/sitezones
Content-Type: application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<name>Главная</name>
<priority>0</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:siteId>179042</adriver:siteId>
</entry>
Примечание: Если необходимо задать шаблоны для зоны сайта (urls), то в этом случае следует также задать и остальные параметры для шаблона – сам шаблон (pattern), логическую функцию для определения соответствия проверяемого системой реферера данному шаблону (operation), а также функцию инвертирования результата логической функции (inverse). Более подробную информацию об использовании шаблонов для создания зон сайта можно получить из документации.
В случае успешного создания зоны сайта будет возвращено ее представление:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-08T17:57:09+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/1</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/1"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>1</id>
<name>Главная</name>
<priority>0</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>92003781446124c3cde3aa65e515fc9fc2f2ca76</adriver:revision>
</entry>
Примечания к коду
- <id>1</id> — номер зоны сайта.
- 92003781446124c3cde3aa65e515fc9fc2f2ca7— номер ревизии.
Код ответа 201.
3.2. Получение списка зон сайта
Нижеследующий запрос позволяет получить список всех зон данного сайта (в примере – сайта 179042).
GET/sites/179042/sitezones Content-Type:application/atom+xml X-Auth-UserID:179221 X-Auth-Passwd:token
В ответ система возвращает все текущие данные по всем зонам запрошенного идентификатора сайта (в приведенном примере сайт разбит на три зоны):
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T11:23:43+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Feed</title>
<id>https://api.adriver.ru/sites/179042/sitezones</id>
<link rel="self" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones"/>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T11:23:43+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/4</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/4"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>4</id>
<name>Фотокарточки</name>
<priority>0</priority>
<alias>foto</alias>
<urls>
<url>
<pattern>/foto/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
<url>
<pattern>/foto_old/</pattern>
<operation>OR</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>46c70d0ccf2600dbc31c37d0bd08dc7298d627e9</adriver:revision>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T11:23:43+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/5</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/5"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>5</id>
<name>Новости</name>
<priority>1</priority>
<alias>news</alias>
<urls>
<url>
<pattern>/news/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
<url>
<pattern>/news.php</pattern>
<operation>OR</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>2a86a5b018d7214c63dbdaab1d76c4b1f99e54e2</adriver:revision>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T11:23:43+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/1</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/1"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>1</id>
<name>Главная</name>
<priority>2</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>2e94a821b89b9264256af90bd7b2c182716ba4cd</adriver:revision>
</entry>
</feed>
Код ответа 200.
3.3. Редактирование зоны сайта
Если необходимо изменить данные ранее добавленной зоны сайта, то это можно осуществить с помощью запроса на ее изменение. Операция редактирования по своей сути аналогична операции добавления зоны сайта, поскольку в соответствующем запросе содержится полный список необходимых параметров зоны сайта.
В отличие от запроса, выполняемого при добавлении зоны сайта, при редактировании данных зоны сайта запрос содержит дополнительный тег <revision>, в который записывается номер ревизии обновляемого объекта, полученный в ответе от сервера. Номер ревизии представляет собой уникальное значение хэш-функции, вычисляемое для данного объекта. Номер ревизии передается сервером клиенту при создании объекта и просмотре его данных. Этот же номер ревизии необходимо передать серверу при модификации созданного ранее объекта. Перед выполнением операции модификации сервер вычисляет собственный номер ревизии объекта и сравнивает его с номером ревизии, переданным клиентом в запросе на модификацию. Только в случае полного совпадения номеров ревизий клиента и сервера операция модификации будет выполнена. Такая схема работы позволяет избежать коллизий при попытке двух или более пользователей системы одновременно изменить один и тот же объект (в данном случае в качестве объекта выступает зона сайта).
В приведенном примере запрос на редактирование содержит дополнительный шаблон адресов страниц сайта для обозначения редактируемой зоны.
Примечание: При редактировании все данные запроса переписываются заново для редактируемой зоны сайта, независимо от того, изменились ли их значения или нет.
PUT/sites/179042/sitezones/1
Content-Type:application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<name>Главная</name>
<priority>0</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
<url>
<pattern>/body.php</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:siteId>179042</adriver:siteId>
<adriver:revision>535baed91354de9bbd7b1737e16a0a106652288d</adriver:revision>
</entry>
Примечания к коду
- /body.php — добавлен новый шаблон.
- 535baed91354de9bbd7b1737e16a0a106652288d — номер ревизии.
В случае успешного редактирования в ответе возвращаются все текущие данные зоны сайта и обновленный номер ревизии, аналогично ответу системы при добавлении зоны сайта.
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T10:42:28+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/1</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/1"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>1</id>
<name>Главная</name>
<priority>0</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
<url>
<pattern>/body.php</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>535baed91354de9bbd7b1737e16a0a106652288d</adriver:revision>
</entry>
Примечания к коду
- body.php— добавлен новый шаблон.
- 535baed91354de9bbd7b1737e16a0a106652288d — новый номер ревизии.
Код ответа 200.
В случае ошибки, например, при несовпадении номеров ревизий клиента (в запросе) и сервера, выдается ответ следующего вида:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-08T17:25:24+04:00</updated>
<content type="text">revision collision for sitezone (site_id=179042; sz_id=1)</content>
<summary>Adriver::RestAPI::Core::Exception::RevisionCollision</summary>
</entry>
Код ответа 412.
3.4. Просмотр зоны сайта
Имеется возможность также получить данные зоны сайта по ее номеру. Номер зоны сайта выдается в ответе системы при добавлении зоны сайта, также можно получить номера всех зон данного сайта при просмотре списка зон сайта (п.3.2). Пример запроса на просмотр данных зоны сайта:
GET/sites/179042/sitezones/1 Content-Type: application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
Примечания к коду
- GET/sites/179042/sitezones/1 — 1 — идентификатор зоны сайта, данные которой просматриваются в строке GET/sites/179042/sitezones/1.
В ответ система возвращает все текущие данные по запрошенному номеру зоны сайта:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-15T10:33:27+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>SiteZone Atom Entry</title>
<id>https://api.adriver.ru/sites/179042/sitezones/1</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/sites/179042/sitezones/1"/>
<link rel="related" type="application/atom+xml" href="https://api.adriver.ru/sites/179042"/>
<adriver:siteId>179042</adriver:siteId>
<content type="text/xml">
<siteZone xmlns="http://adriver.ru/ns/restapi/atom">
<id>1</id>
<name>Главная</name>
<priority>0</priority>
<alias>main</alias>
<urls>
<url>
<pattern>/body/</pattern>
<operation>AND</operation>
<inverse>0</inverse>
</url>
</urls>
</siteZone>
</content>
<adriver:revision>535baed91354de9bbd7b1737e16a0a106652288d</adriver:revision>
</entry>
Код ответа 200.
3.5. Удаление зоны сайта
Пример запроса на удаление зоны сайта:
DELETE/sites/179042/sitezones/1 Content-Type:application/atom+xml X-Auth-UserID:179221 X-Auth-Passwd:token
Код ответа 200 (в случае успешного выполнения операции).
Если, например, в запросе на удаление была задана несуществующая зона сайта, ответ системы будет выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-15T10:52:32+04:00</updated>
<content type="text">Site zone (site 179042; id 13) not found.</content>
<summary>Adriver::RestAPI::Core::Exception::SiteZone::NotFound</summary>
</entry>
Код ответа 404.
Если же, например, в запросе на удаление зоны сайта был задан несуществующий сайт, ответ системы будет иметь следующий вид:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-15T10:53:23+04:00</updated>
<content type="text">Site (id 11) not found.</content>
<summary>Adriver::RestAPI::Core::Exception::Site::NotFound</summary>
</entry>
Код ответа 404.
3.6. Удаление всех зон сайта
Пример запроса на удаление всех зон сайта:
DELETE/sites/139884/sitezones Content-Type:application/atom+xml X-Auth-UserID:179221 X-Auth-Passwd:token
Код ответа 200 (в случае успешного выполнения операции).
Если в запросе на удаление всех зон сайта идентификатор сайта имеет неверный формат, ответ системы будет иметь следующий вид:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-15T11:27:52+04:00</updated>
<content type="text">site id should be a number and you set it to '179213_'</content>
<summary>Adriver::RestAPI::Core::Exception::BadRequest</summary>
</entry>
Код ответа 404.
Если в запросе был задан несуществующий идентификатор сайта, ответ системы будет выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-15T11:28:58+04:00</updated>
<content type="text">Site (id 34325435) not found.</content>
<summary>Adriver::RestAPI::Core::Exception::Site::NotFound</summary>
</entry>
Код ответа 404.
Если же в запросе был задан существующий идентификатор сайта, принадлежащий другой учетной записи, то ответ системы будет выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Adriver::RestAPI Exception</title>
<author>
<name>Adriver::RestAPI</name>
</author>
<updated>2011-12-15T11:29:58+04:00</updated>
<content type="text">Not authorized to work with object [Adriver::API::Site]</content>
<summary>Adriver::RestAPI::Core::Exception::UnAuthorized</summary>
</entry>
Код ответа 401.
В теле запроса указываются значения всех обязательных параметров рекламной кампании. Пример запроса на добавление рекламной кампании:
4. Работа с рекламными кампаниями
Использование программного интерфейса позволяет осуществлять следующие операции с рекламными кампаниями в системе AdRiver:
- добавление рекламной кампании;
- просмотр списка рекламных кампаний данной учетной записи;
- изменение данных рекламной кампании;
- просмотр данных рекламной кампании;
Параметры, используемые при работе с рекламными кампаниями в системе AdRiver через программный интерфейс, подразделяются на обязательные и необязательные. Обязательные параметры необходимо использовать при создании и редактировании рекламной кампании. Значения всех параметров, определенных для рекламных кампаний (как обязательных, так и необязательных), выдаются системой при ответе на запрос.
Обязательные параметры:
- name — наименование рекламной кампании;
- enable — признак включения рекламной кампании (1 — рекламная кампания включена, 0 – рекламная кампания выключена);
- userId — идентификатор аккаунта – владельца рекламной кампании в системе (определяется при аутентификации).
- canBorrow — использовать общие кредиты (1) или нет (0);
- trafficManager name — имя владельца;
- trafficManager email — email владельца.
Необязательные параметры:
- shortname — краткое название рекламной кампании;
- enables — список доступных для редактирования служебных параметров рекламной кампании;
- externalId — внешний ID рекламной кампании (только для обычных рекламных кампаний)
- supportName — название рекламодателя
-
statusNumber — статус рекламной кампании (только для обычных рекламных кампаний)
- 0 — нет статуса
- 1 — создана
- 2 — готова к старту
- 3 — активна
- 4 — приостановлена
- 5 — отменена
- 6 — завершена
Характеристики рекламной кампании (только для чтения):
- сredit — текущее количество кредитов AdRiver на счету рекламной кампании;
- adPlacements — внутренний параметр для специальных целей.
При запросе списка рекламных кампаний возможно использование следующих фильтров:
- для обычных и сетевых кампаний — фильтр по рекламодателю и статусу РК (поля supportName и statusNumber соответственно);
- только для обычных РК — фильтр по полю externalID.
Более подробную информацию о добавлении и настройке рекламной кампании можно получить из документации.
4.1. Добавление рекламной кампании
POST/ads
Content-Type: application/atom+xml
X-Auth-UserID:179221
X-Auth-Passwd:token
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<content type="text/xml">
<ad xmlns="http://adriver.ru/ns/restapi/atom">
<name>Стартовая кампания</name>
<enable>1</enable>
<canBorrow>1</canBorrow>
</ad>
</content>
<adriver:userId>100000</adriver:userId>
</entry>
В случае успешного создания рекламной кампании будет возвращено ее представление:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-16T19:10:32+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>AD Atom Entry</title>
<id>urn:x-adriver:316600</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/ads/316600"/>
<content type="text/xml">
<ad xmlns="http://adriver.ru/ns/restapi/atom">
<id>316600</id>
<name>Стартовая кампания</name>
<shortName>Test_Cmp</shortName>
<enable>1</enable>
<enables/>
<canBorrow>1</canBorrow>
<credit>0</credit>
<trafficManager>
<name/>
<email/>
</trafficManager>
<externalId>1expml</externalId>
<statusNumber>4</statusNumber>
<supportName></supportName>
<adPlacements/>
</ad>
</content>
<adriver:revision>a9578a0817bf8c467890d5cefd3c3d54bd63e3a5</adriver:revision>
</entry>
Примечания к коду
- 316600 — идентификатор рекламной кампании.
- a9578a0817bf8c467890d5cefd3c3d54bd63e3a5 — номер ревизии.
4.2. Получение списка рекламных кампаний пользователя
Нижеследующий запрос позволяет получить список всех рекламных кампаний данного аккаунта (в примере – аккаунта 179221).
GET/ads?user_id=179221 Content-Type:application/atom+xml X-Auth-UserID:179221 X-Auth-Passwd:token
В ответ система возвращает все текущие данные по всем рекламным кампаниям запрошенного идентификатора учетной записи.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-16T19:29:29+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>AD Atom Feed</title>
<id>https://api.adriver.ru/ads?user_id=179221</id>
<link rel="self" type="application/atom+xml" href="https://api.adriver.ru/ads?user_id=179221"/>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-16T19:29:29+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>AD Atom Entry</title>
<id>urn:x-adriver:314498</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/ads/314498"/>
<content type="text/xml">
<ad xmlns="http://adriver.ru/ns/restapi/atom">
<id>314498</id>
<name>1</name>
<shortName>1</shortName>
<enable>1</enable>
<enables>
<enable name="EXPOSURE">1</enable>
<enable name="BANNER_UU_REPORT">1</enable>
</enables>
<canBorrow>1</canBorrow>
<credit>0</credit>
<trafficManager>
<name>rest_api</name>
</trafficManager>
<externalId>1expml</externalId>
<statusNumber>4</statusNumber>
<supportName></supportName>
<adPlacements/>
</ad>
</content>
<adriver:revision>64bfa5a3e8fa961bc1a04f1180edab947b6d8b1e</adriver:revision>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2011-12-16T19:29:29+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>AD Atom Entry</title>
<id>urn:x-adriver:316600</id>
<link rel="edit" type="application/atom+xml" href="https://api.adriver.ru/ads/316600"/>
<content type="text/xml">
<ad xmlns="http://adriver.ru/ns/restapi/atom">
<id>316600</id>
<name>Стартовая кампания</name>
<shortName>startAD</shortName>
<enable>0</enable>
<enables/>
<canBorrow>1</canBorrow>
<credit>0</credit>
<trafficManager>
<name/>
<email/>
</trafficManager>
<externalId>1expml</externalId>
<statusNumber>4</statusNumber>
<supportName></supportName>
<adPlacements/>
</ad>
</content>
<adriver:revision>54fb70fa254ec8116b0a101b79f05951a9211d9b</adriver:revision>
</entry>
</feed>
Код ответа 200.
4.3. Получение списка всех делегированных пользователю кампаний
Метод позволяет получить краткую информацию о рекламных кампаниях, делегированных пользователю, и наборе делегированных прав.
Пример запроса для обычных кампаний:
GET /ads/delegated
Пример запроса для сетевых кампаний:
GET /net_ads/delegated
Результат возвращается в виде XML в формате Atom Syndication Format — объект Atom Entry.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2013-03-28T17:26:48+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Delegated Objects For AD Atom Feed</title>
<id>http://localhost:3000/ads/delegated</id>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/ads/delegated"/>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2013-03-28T17:26:48+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Delegated Object For AD Atom Entry</title>
<id>http://localhost:3000/ads/94005</id>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/ads/94005"/>
<content type="text/xml">
<delegatedObject xmlns="http://adriver.ru/ns/restapi/atom">
<user>
<id>29440</id>
<login>lycos</login>
<href>http://localhost:3000/users/29440</href>
</user>
<rights>
<right name="COMMON_READ">1</right>
<right name="COMMON_WRITE">1</right>
<right name="AD_ANKETA">1</right>
<right name="AD_STAT">1</right>
<right name="BANNER_ADD">1</right>
<right name="BANNER_READ">1</right>
<right name="BANNER_CHANGE_PROFILE">1</right>
<right name="BANNER_EDIT">1</right>
<right name="BANNER_UPLOAD">1</right>
<right name="BANNER_DELETE">1</right>
<right name="BANNER_STAT">1</right>
<right name="SLICE_ADD">1</right>
<right name="SLICE_READ">1</right>
<right name="SLICE_RELEASE">1</right>
<right name="SLICE_STAT">1</right>
<right name="PROFILE_ADD">1</right>
<right name="PROFILE_READ">1</right>
<right name="PROFILE_EDIT">1</right>
<right name="PROFILE_COPY">1</right>
<right name="PROFILE_DELETE">1</right>
<right name="PROFILE_EXPORT">1</right>
<right name="AD_SITE_GENERAL_STAT">1</right>
<right name="AD_BANNER_GENERAL_STAT">1</right>
</rights>
</delegatedObject>
</content>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2013-03-28T17:26:48+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Delegated Object For AD Atom Entry</title>
<id>http://localhost:3000/ads/94007</id>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/ads/94007"/>
<content type="text/xml">
<delegatedObject xmlns="http://adriver.ru/ns/restapi/atom">
<user>
<id>29440</id>
<login>lycos</login>
<href>http://localhost:3000/users/29440</href>
</user>
<rights>
<right name="COMMON_READ">1</right>
<right name="COMMON_WRITE">1</right>
<right name="AD_ANKETA">1</right>
<right name="AD_STAT">1</right>
<right name="BANNER_ADD">1</right>
<right name="BANNER_READ">1</right>
<right name="BANNER_CHANGE_PROFILE">1</right>
<right name="BANNER_EDIT">1</right>
<right name="BANNER_UPLOAD">1</right>
<right name="BANNER_DELETE">1</right>
<right name="BANNER_STAT">1</right>
<right name="SLICE_ADD">1</right>
<right name="SLICE_READ">1</right>
<right name="SLICE_RELEASE">1</right>
<right name="SLICE_STAT">1</right>
<right name="PROFILE_ADD">1</right>
<right name="PROFILE_READ">1</right>
<right name="PROFILE_EDIT">1</right>
<right name="PROFILE_COPY">1</right>
<right name="PROFILE_DELETE">1</right>
<right name="PROFILE_EXPORT">1</right>
<right name="AD_SITE_GENERAL_STAT">1</right>
<right name="AD_BANNER_GENERAL_STAT">1</right>
</rights>
</delegatedObject>
</content>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2013-03-28T17:26:48+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Delegated Object For AD Atom Entry</title>
<id>http://localhost:3000/ads/94008</id>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/ads/94008"/>
<content type="text/xml">
<delegatedObject xmlns="http://adriver.ru/ns/restapi/atom">
<user>
<id>29440</id>
<login>lycos</login>
<href>http://localhost:3000/users/29440</href>
</user>
<rights>
<right name="COMMON_READ">1</right>
<right name="COMMON_WRITE">1</right>
<right name="AD_ANKETA">1</right>
<right name="AD_STAT">1</right>
<right name="BANNER_ADD">1</right>
<right name="BANNER_READ">1</right>
<right name="BANNER_CHANGE_PROFILE">1</right>
<right name="BANNER_EDIT">1</right>
<right name="BANNER_UPLOAD">1</right>
<right name="BANNER_DELETE">1</right>
<right name="BANNER_STAT">1</right>
<right name="SLICE_ADD">1</right>
<right name="SLICE_READ">1</right>
<right name="SLICE_RELEASE">1</right>
<right name="SLICE_STAT">1</right>
<right name="PROFILE_ADD">1</right>
<right name="PROFILE_READ">1</right>
<right name="PROFILE_EDIT">1</right>
<right name="PROFILE_COPY">1</right>
<right name="PROFILE_DELETE">1</right>
<right name="PROFILE_EXPORT">1</right>
<right name="AD_SITE_GENERAL_STAT">1</right>
<right name="AD_BANNER_GENERAL_STAT">1</right>
</rights>
</delegatedObject>
</content>
</entry>
<entry xmlns:adriver="http://adriver.ru/ns/restapi/atom">
<updated>2013-03-28T17:26:48+04:00</updated>
<author>
<name>Adriver::RestAPI</name>
</author>
<title>Delegated Object For AD Atom Entry</title>
<id>http://localhost:3000/ads/94014</id>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/ads/94014"/>
<content type="text/xml">
<delegatedObject xmlns="http://adriver.ru/ns/restapi/atom">
<user>
<id>29440</id>
<login>lycos</login>
<href>http://localhost:3000/users/29440</href>