> 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/es/anunciantes/rtb-abierto/adv-open-rtb-2.4-response.md).

# Respuesta de puja Open RTB 2.4

La respuesta a una solicitud de puja debe tener la siguiente estructura:

## Objeto de respuesta de puja

| Atributo | ¿Requerido? | Descripción                                                                             |
| -------- | ----------- | --------------------------------------------------------------------------------------- |
| id       | Sí          | ID de la solicitud de puja a la que responde esto (cadena)                              |
| seatbid  | Sí          | Colección de pujas realizadas por el pujador en nombre de un asiento específico (array) |

{% hint style="info" %}
**Nota:** El id debe coincidir con el proporcionado en la solicitud
{% endhint %}

### seatbid

| Atributo | ¿Requerido? | Descripción                                                    |
| -------- | ----------- | -------------------------------------------------------------- |
| bid      | Sí          | Array del objeto de puja relacionado con la impresión objetivo |

### seatbid.bid

| Atributo | ¿Requerido? | Descripción                                                                                          |
| -------- | ----------- | ---------------------------------------------------------------------------------------------------- |
| id       | Sí          | ID del objeto de puja, utilizado para seguimiento (cadena)                                           |
| impid    | Sí          | ID del objeto de impresión en la solicitud de puja relacionada.                                      |
| price    | Sí          | Precio de la puja en CPM o CPC (decimal)                                                             |
| adm      | Sí          | Marcado publicitario XML/JSON (cadena)                                                               |
| nurl     | Sí          | URL de notificación de ganancia, se recomienda usar **HTTP** en lugar de HTTPS para nurl (cadena)    |
| burl     | No          | URL de notificación de facturación, se recomienda usar **HTTP** en lugar de HTTPS para burl (cadena) |
| crid     | Recomendado | ID creativo para ayudar con la comprobación de la calidad del anuncio (cadena)                       |
| iurl     | Recomendado | URL del creativo                                                                                     |
| ext      | No          | Extensión específica de ExoClick (objeto)                                                            |

{% hint style="info" %}
**Notas:**

* Admitimos video tanto en ubicaciones banner como intersticiales.
* El impid debe coincidir con el proporcionado en la solicitud.
* El adm debe proporcionarse en JSON o XML según el formato publicitario objetivo: JSON para Native, In-Stream y Push Notifications; XML para todos los demás formatos.
* Se debe notificar la nURL para garantizar el límite de campañas y evitar obtener la misma respuesta cada vez.
* La bURL se llama cuando se han entregado impresiones o clics, según CPM o CPC del campo btype (CPM por defecto).
  {% endhint %}

### seatbid.bid.ext

| Atributo | ¿Requerido? | Descripción                                                                                                                                                                    |
| -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| btype    | Recomendado | Modelo de precios. Valores: 1 = CPM, 2 = CPC. Valor predeterminado = 1 (int). Cuando la respuesta es para una solicitud de zona de clics de correo electrónico, 1 = Smart CPC. |
|          |             | **Nota**: Solo Push Notification, anuncios nativos, Direct Link y Email Clicks pueden pujar con el modelo de precios CPC.                                                      |

### seatbid.bid.ext.dsa

| Atributo | ¿Requerido? | Descripción                                                                                                                                                                                                              |
| -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| behalf   | Sí          | Transparencia del anunciante: cadena de texto UNICODE libre con el nombre en cuyo nombre se muestra el anuncio. Máximo 100 caracteres. (cadena)                                                                          |
| paid     | Sí          | Transparencia del anunciante: cadena de texto UNICODE libre de quién pagó el anuncio. Debe incluirse siempre, incluso si es el mismo que el indicado en el atributo behalf. Máximo 100 caracteres (cadena)               |
| adrender | Sí          | Indicador para señalar que el comprador/anunciante renderizará su propia información de transparencia DSA dentro del creativo. 0 = el comprador/anunciante no renderizará, 1 = el comprador/anunciante renderizará (int) |

### seatbid.bid.dsa.transparency

| Atributo | ¿Requerido? | Descripción                                                                                                                                                                                                                                                                           |
| -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| domain   | Sí          | Dominio de la entidad que aplicó los parámetros del usuario (cadena)                                                                                                                                                                                                                  |
| params   | Sí          | Array de segmentación por parámetros de usuario aplicada por el lado de compra (usando la lista proporcionada por la DSA Transparency Taskforce). Incluye soporte para múltiples proveedores que pueden añadir sus propios parámetros de segmentación de usuarios. (array de enteros) |

## Sin respuesta de puja

Para responder a una solicitud de puja sin realizar una puja real, debe enviarse un código de respuesta HTTP 204 "No Content".

## URLs de notificación de ganancia y facturación

Si tanto la **nURL** como la **bURL** están en la respuesta de puja y son URLs válidas, la plataforma ExoClick enviará una solicitud GET a ellas.\
Estas URLs pueden tener algunos tokens que ExoClick reemplazará antes de hacer el GET:

```
${AUCTION_ID} - ID de la solicitud de puja; del atributo "Objeto de solicitud de puja -> id".
${AUCTION_BID_ID} - ID de la puja; del atributo "Objeto de respuesta de puja -> bidid".
${AUCTION_IMP_ID} - ID de la impresión recién ganada; del atributo "Objeto de solicitud de puja -> Objeto de impresión -> id".
${AUCTION_SEAT_ID} - ID del asiento del pujador para el que se realizó la puja; del atributo "Objeto de respuesta de puja -> Objeto de puja por asiento -> Objeto de puja -> id".
${AUCTION_AD_ID} - ID del marcado publicitario que el pujador desea mostrar; del atributo "Objeto de respuesta de puja -> Objeto de puja por asiento -> Objeto de puja -> adid".
${AUCTION_PRICE} - Precio de liquidación usando la misma moneda y unidades que la cuenta; del atributo "Objeto de respuesta de puja -> Objeto de puja por asiento -> Objeto de puja -> price".
${AUCTION_CURRENCY} - La moneda utilizada en la puja (explícita o implícita); solo para confirmación.
```

Ejemplo:

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

Si estás usando ambas **nURL** y **bURL**, ExoClick hará una llamada a ambas.

## Estructura del ADM

Dependiendo del formato publicitario, el **adm** parámetro puede contener una parte de XML o JSON. Puedes encontrar ejemplos detallados de estructuras adm en nuestra [**página de ejemplos**](/rtb/es/anunciantes/rtb-abierto/open-rtb-advertiser-code-examples.md)

Al crear el ADM, ten en cuenta lo siguiente:

* **Marcas iFrame** (Banner, Intersticial de página completa) deben estar habilitadas en tu cuenta de ExoClick para poder utilizarlas.
* **In-Stream, Native** y **anuncios Push Notification** deben contener una cadena codificada en JSON en el adm.
* El parámetro adm de **In-Stream** puede seguir una de dos estructuras: **VAST remoto** o **VAST local**. En VAST remoto, solo necesitas declarar la URL donde se encuentra el Wrapper VAST, mientras que en VAST local debes declarar cualquier **"trackingEvents"** que quieras seguir además de "videoURL" y "clickURL".

Actualmente admitimos **impresión**, **progreso** y **completo** eventos. Los eventos de impresión y progreso son **obligatorios**, mientras que complete solo puede añadirse si estás usando VAST local.

El ADM **debe** seguir la misma estructura que se muestra en nuestro [ejemplo](/rtb/es/anunciantes/rtb-abierto/open-rtb-advertiser-code-examples.md) anterior.

* Como parámetro opcional, puedes incluir **crop\_anchor\_point** en la cadena JSON del **anuncio nativo** adm para determinar dónde se encuentra el punto de anclaje de tu imagen nativa. Los valores disponibles son:
  * 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

Aquí tienes una visualización de los puntos de anclaje disponibles:

![punto de anclaje de recorte](/files/899ef02b862ff7404a256dd9323e3b4ef7e59d6f)

* Además, con respecto a **anuncio nativo**, asegúrate de que estás añadiendo tus **eventtrackers** según la [última especificación nativa](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf)

Ten en cuenta que, aunque también permitimos **imptrackers** en anuncios nativos, recomendamos encarecidamente usar **eventtrackers** en su lugar.

* **Push Notification** los anuncios solo permiten un recurso de imagen por notificación. El ancho y el alto dependen de lo que venga en la solicitud, que puede ser 192x192 o 720x480. Ten en cuenta que el adm también debe ser una cadena codificada en JSON, ya que la solicitud provendrá de un objeto Native.
* Por último, **Push Notification** los anuncios solo permiten un **URL de "imptracker"**

## Ejemplos

Puedes encontrar ejemplos detallados de respuestas de puja y estructuras ADM en nuestra [página de ejemplo de respuesta del anunciante](/rtb/es/anunciantes/rtb-abierto/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/es/anunciantes/rtb-abierto/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.
