Responses

Рекомендации по интеграции

При интеграции 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НетstringURL для перехода при клике на баннер
pictureURlДаstringURL изображения

Примеры

Объект типа 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]
        }
    ]
}