Рекомендации по интеграции
При интеграции API на рекламную площадку, необходимо помнить, что обращение к внешнему API всегда может закончиться неудачно. Причин для этого множество - нестабильность сетевой инфраструктуры, блокировки Роскомнадзора, ошибки на стороне сервера или просто человеческий фактор. Поэтому мы рекомендуем учитывать возможность получения нестандартного ответа, и прорабатывать это с точки зрения внешнего вида веб-сайта или мобильного приложения. Это особенно важно для главной страницы - если промо материал занимает большую часть экрана, то, возможно, следует предусмотреть заполнение этого пространства содержимым по умолчанию.
Обязательно нужно устанавливать какой-то разумный таймаут на все внешние запросы, чтобы сохранить отзывчивость интерфейса.
Так же, стоит не забывать, что получение пустого промо материала (ответ 204) - это вполне стандартная и частая ситуация, которая возникает, если для запрашиваемого сегмента пользователей не запущено ни одной кампании.
Стоит предусмотреть возможность того, что результат запроса может иметь неожиданный формат. Кампании могут предоставлять разные варианты содержимого, представленные в различной форме. Это могут быть баннеры, товарные полки, брендированные товарные полки, и т.д. Для каждого варианта содержимого будет своя логика отрисовки и учета факта просмотра. Варианты этого содержимого всегда ограничиваются параметром acceptContent, что гарантирует предсказуемость результата запроса, однако общей практикой является предусмотреть и обработать неизвестный формат содержимого.
ОРД
Если кампания с типом содержимого
Banners
/SharedBanners
запущена в юрисдикции, где действует закон о рекламе, то в результате запроса рекламы возвращается информация о юридических лицах, которые являются авторами креативов (eridToken
,advertiserLegalName
,advertiserInn
,advertiserOgrn
).
Impression
Содержит данные для показа спонсорского содержимого. Может принимать разные формы, в зависимости от значения переданного в запросе acceptContent.
Значения acceptContent:
- string
- productIds
- banners
- sharedBanners
- sharedProductIds
StringImpression
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор запрошенного показа |
contentType | Да | string | Тип содержимого. Всегда равен string |
content | Да | StringImpressionContent | Содержимое для показа |
StringImpressionContent
Строковое содержимое для показа
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор содержимого |
string | Да | string | Произвольный текст |
Примеры
Объект типа Impression с полем content типа «строка».
{
"id": "impression identifier",
"contentType": "string",
"content": {
"id": "content identifier",
"string": "any string"
}
}
ProductIdsImpression
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор запрошенного показа |
contentType | Да | string | Тип содержимого. Всегда равен productIds |
content | Да | ProductIdsImpressionContent | Содержимое для показа |
ProductIdsImpressionContent
Содержимое для показа товарной полки
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор содержимого |
productIds | Да | number array | Массив идентификаторов товаров для отображения |
Примеры
Объект типа Impression с полем content типа «товарная полка».
{
"id": "impression identifier",
"contentType": "productIds",
"content": {
"id": "content identifier",
"productIds": [123, 321]
}
}
BannersImpression
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор запрошенного показа |
contentType | Да | string | Тип содержимого. Всегда равен banners |
content | Да | BannersImpressionContent | Содержимое для показа |
BannersImpressionContent
Содержимое для показа баннеров
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор содержимого |
banners | Да | Banner array | Массив баннеров для отображения |
ord | Нет | object | Объект c информацией для ОРД |
Ord
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
eridToken | Да | string | ЕРИД токен |
advertiserLegalName | Да | string | Наименование юридического лица |
advertiserInn | Да | string | ИНН |
advertiserOgrn | Да | string | ОГРН |
Banner
Информация о баннере
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
targetUrl | Нет | string | URL для перехода при клике на баннер |
pictureURl | Да | string | URL изображения |
Примеры
Объект типа Impression с полем content типа «баннеры».
{
"id": "impression identifier",
"contentType": "banners",
"content": {
"id": "content identifier",
"banners": [
{
"targetUrl" : "http://host/path",
"pictureUrl": "http://host/path/image.png"
},
{
"targetUrl" : "http://host/path",
"pictureUrl": "http://host/path/image.png"
},
],
"ord": {
"eridToken": "<erid token>",
"advertiser": {
"legalName": "<legal name>",
"inn": "<inn>",
"ogrn": "<ogrn>"
}
}
}
SharedBannersImpression
Содержимое для показа общих баннеров. Отличается от BannersImpression тем, что тут могут присутствовать баннеры разных рекламодателей.
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор запрошенного показа |
contentType | Да | string | Тип содержимого. Всегда равен sharedBanners |
content | Да | BannersImpressionContent array | Содержимое для показа |
BannerImpressionContent
Содержимое для показа баннера
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор содержимого |
banner | Да | Banner | Баннер для отображения |
ord | Нет | object | Объект с информацией для для ОРД |
Ord
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
eridToken | Да | string | ЕРИД токен |
advertiserLegalName | Да | string | Наименование юридического лица |
advertiserInn | Да | string | ИНН |
advertiserOgrn | Да | string | ОГРН |
Примеры
Объект типа Impression с полем content типа «общие баннеры».
{
"id": "impression identifier",
"contentType": "sharedBanners",
"content": [
{
"id": "content identifier",
"banner": {
"targetUrl" : "http://host/path",
"pictureUrl": "http://host/path/image.png"
},
"ord": {
"eridToken": "<erid token>",
"advertiser": {
"legalName": "<legal name>",
"inn": "<inn>",
"ogrn": "<ogrn>"
}
}
},
{
"id": "content identifier",
"banner": {
"targetUrl" : "http://host/path",
"pictureUrl": "http://host/path/image.png"
},
"ord": {
"eridToken": "<erid token>",
"advertiser": {
"legalName": "<legal name>",
"inn": "<inn>",
"ogrn": "<ogrn>"
}
}
}
]
}
SharedProductIdsImpression
Содержимое для показа товаров из разных рекламных кампаний. Отличается от ProductIdsImpression тем, что тут могут присутствовать полки разных рекламодателей.
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор запрошенного показа |
contentType | Да | string | Тип содержимого. Всегда равен SharedProductIds |
content | Да | ProductIdsImpressionContent array | Содержимое для показа |
ProductIdsImpressionContent
Содержимое для показа товарной полки
Имя поля | Обязательное | Тип | Описание |
---|---|---|---|
id | Да | string | Идентификатор содержимого |
productIds | Да | number array | Массив идентификаторов товаров для отображения |
Примеры
Объект типа Impression с полем content типа «общие товары».
{
"id": "impression identifier",
"contentType": "SharedProductIds",
"content": [
{
"id": "content identifier",
"productIds": [123, 345]
},
{
"id": "content identifier",
"productIds": [234, 567]
}
]
}