> For the complete documentation index, see [llms.txt](https://docs.exoclick.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exoclick.com/rtb/ru/reklamodateli/open-rtb/adv-open-rtb-2.4-response.md).

# Ответ на ставку Open RTB 2.4

Ответ на запрос ставки должен иметь следующую структуру:

## Объект ответа на ставку

| Атрибут | Обязательно? | Описание                                                              |
| ------- | ------------ | --------------------------------------------------------------------- |
| id      | Да           | ID запроса ставки, на который это является ответом (строка)           |
| seatbid | Да           | Набор ставок, сделанных биддером от имени определённого seat (массив) |

{% hint style="info" %}
**Примечание:** id должен совпадать с тем, который указан в запросе
{% endhint %}

### seatbid

| Атрибут | Обязательно? | Описание                                            |
| ------- | ------------ | --------------------------------------------------- |
| bid     | Да           | Массив объекта ставки, связанного с целевым показом |

### seatbid.bid

| Атрибут | Обязательно?  | Описание                                                                                       |
| ------- | ------------- | ---------------------------------------------------------------------------------------------- |
| id      | Да            | ID объекта ставки, используется для отслеживания (строка)                                      |
| impid   | Да            | ID объекта показа в связанном запросе ставки.                                                  |
| price   | Да            | Цена ставки в CPM или CPC (число с плавающей точкой)                                           |
| adm     | Да            | Ad Markup в формате XML/JSON (строка)                                                          |
| nurl    | Да            | URL уведомления о выигрыше, рекомендуется использовать **HTTP** вместо HTTPS для nurl (строка) |
| burl    | Нет           | URL уведомления о биллинге, рекомендуется использовать **HTTP** вместо HTTPS для burl (строка) |
| crid    | Рекомендуется | ID креатива для помощи в проверке качества рекламы (строка)                                    |
| iurl    | Рекомендуется | URL креатива                                                                                   |
| ext     | Нет           | Специфичное для ExoClick расширение (объект)                                                   |

{% hint style="info" %}
**Примечания:**

* Мы поддерживаем видео как в баннерных, так и в полноэкранных interstitial-размещениях.
* impid должен совпадать с тем, который указан в запросе.
* adm должен быть предоставлен в JSON или XML в зависимости от целевого рекламного формата: JSON для Native, In-Stream и Push Notifications; XML для всех остальных форматов.
* nURL должен быть уведомлён, чтобы обеспечить ограничение кампании и избежать получения одного и того же ответа каждый раз.
* bURL вызывается, когда были доставлены показы или клики, в зависимости от CPM или CPC из поля btype (по умолчанию CPM).
  {% endhint %}

### seatbid.bid.ext

| Атрибут | Обязательно?  | Описание                                                                                                                                      |
| ------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| btype   | Рекомендуется | Модель ценообразования. Значения: 1 = CPM, 2 = CPC. По умолчанию = 1 (int). Когда ответ относится к запросу зоны Email Clicks, 1 = Smart CPC. |
|         |               | **Примечание**: Только Push Notification, Native ads, Direct Link и Email Clicks могут делать ставку с моделью ценообразования CPC.           |

### seatbid.bid.ext.dsa

| Атрибут  | Обязательно? | Описание                                                                                                                                                                                                                               |
| -------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| behalf   | Да           | Прозрачность рекламодателя: свободная строка текста в кодировке UNICODE с именем того, от чьего имени отображается реклама. Максимум 100 символов. (строка)                                                                            |
| paid     | Да           | Прозрачность рекламодателя: свободная строка текста в кодировке UNICODE о том, кто оплатил рекламу. Должно всегда включаться, даже если это то же самое, что указано в атрибуте behalf. Максимум 100 символов (строка)                 |
| adrender | Да           | Флаг, указывающий, что покупатель/рекламодатель будет отображать свою собственную информацию о прозрачности DSA внутри креатива. 0 = покупатель/рекламодатель не будет отображать, 1 = покупатель/рекламодатель будет отображать (int) |

### seatbid.bid.dsa.transparency

| Атрибут | Обязательно? | Описание                                                                                                                                                                                                                                                                               |
| ------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| domain  | Да           | Домен сущности, которая применила пользовательские параметры (строка)                                                                                                                                                                                                                  |
| params  | Да           | Массив таргетинга пользовательских параметров, применённых со стороны покупателя (с использованием списка, предоставленного DSA Transparency Taskforce). Поддерживается несколько поставщиков, которые могут добавлять собственные пользовательские параметры таргетинга. (массив int) |

## Ответ без ставки

Чтобы ответить на запрос ставки без фактического размещения ставки, следует отправить HTTP-ответ с кодом 204 "No Content".

## URL уведомлений о выигрыше и биллинге

Если либо **nURL** или **bURL** присутствуют в ответе на ставку и являются корректными URL, платформа ExoClick отправит к ним GET-запрос.\
Эти URL могут содержать несколько токенов, которые ExoClick заменит перед выполнением GET:

```
${AUCTION_ID} - ID запроса ставки; из атрибута "Bid Request Object -> id".
${AUCTION_BID_ID} - ID ставки; из атрибута "Bid Response Object -> bidid".
${AUCTION_IMP_ID} - ID только что выигранного показа; из атрибута "Bid Request Object -> Impression Object -> id".
${AUCTION_SEAT_ID} - ID seat биддера, от имени которого была сделана ставка; из атрибута "Bid Response Object -> Seat Bid Object -> Bid Object -> id".
${AUCTION_AD_ID} - ID ad markup, который биддер хочет показать; из атрибута "Bid Response Object -> Seat Bid Object -> Bid Object -> adid".
${AUCTION_PRICE} - Цена расчёта с использованием той же валюты и единиц, что и в аккаунте; из атрибута "Bid Response Object -> Seat Bid Object -> Bid Object -> price".
${AUCTION_CURRENCY} - Валюта, использованная в ставке (явная или подразумеваемая); только для подтверждения.
```

Пример:

```
https://mysite.com/my_notification_url?id=${AUCTION_ID}&bidid=${AUCTION_BID_ID}&price=${AUCTION_PRICE}&currency=${AUCTION_CURRENCY}
```

Если вы используете и **nURL** и **bURL**, ExoClick выполнит вызов к обоим.

## Структура ADM

В зависимости от рекламного формата, **adm** параметр может содержать фрагмент XML или JSON. Подробные примеры структур adm можно найти на нашей [**странице примеров**](/rtb/ru/reklamodateli/open-rtb/open-rtb-advertiser-code-examples.md)

При создании ADM, пожалуйста, учитывайте следующее:

* **iFrame markup** (Banner, Fullpage Interstitial) должны быть включены в вашем аккаунте ExoClick, чтобы вы могли их использовать.
* **In-Stream, Native** и **рекламные объявления Push Notification** должны содержать JSON-encoded строку в adm.
* Параметр adm от **In-Stream** может следовать одной из двух структур: **Remote VAST** или **Local VAST**. В Remote VAST вам нужно просто указать URL, где находится VAST Wrapper, тогда как в Local VAST вам нужно указать любые **"trackingEvents"** которые вы хотите отслеживать, дополнительно к "videoURL" и "clickURL".

В настоящее время мы поддерживаем **impression**, **progress** и **complete** события. События impression и progress **обязательны**, тогда как complete может быть добавлено только если вы используете Local VAST.

ADM **должен** следовать той же структуре, что показана в нашем [примере](/rtb/ru/reklamodateli/open-rtb/open-rtb-advertiser-code-examples.md) выше.

* В качестве необязательного параметра вы можете включить **crop\_anchor\_point** в JSON-строке из **Native Ads** adm, чтобы определить, где расположен anchor point вашего нативного изображения. Доступные значения:
  * MIDDLE\_CENTER = 0,
  * TOP\_LEFT = 1,
  * TOP\_CENTER = 2,
  * TOP\_RIGHT = 3,
  * MIDDLE\_LEFT = 4,
  * MIDDLE\_RIGHT = 5,
  * BOTTOM\_LEFT = 6,
  * BOTTOM\_CENTER = 7,
  * BOTTOM\_RIGHT= 8

Вот визуализация доступных anchor point:

![crop anchor point](/files/fb10f4d7c0c09aca9c8dd33d6d68b21daef209de)

* Также, в отношении **Native Ads**, убедитесь, что вы добавляете свои **eventtrackers** в соответствии с [последней спецификацией native](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf)

Обратите внимание, что, хотя мы также разрешаем **imptrackers** в Native Ads, мы настоятельно рекомендуем использовать **eventtrackers** вместо этого.

* **Push Notification** рекламные объявления позволяют только один image asset на уведомление. Ширина и высота зависят от того, что приходит из запроса, это может быть 192x192 или 720x480. Обратите внимание, что adm также должен быть JSON-encoded строкой, поскольку запрос будет поступать из объекта Native.
* Наконец, **Push Notification** рекламные объявления позволяют только один **URL "imptracker"**

## Примеры

Подробные примеры Bid response и структур ADM вы можете найти на нашей [странице примера ответа рекламодателя](/rtb/ru/reklamodateli/open-rtb/open-rtb-advertiser-code-examples.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.exoclick.com/rtb/ru/reklamodateli/open-rtb/adv-open-rtb-2.4-response.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
