Conexión OpenRTB
E-Planning SSP puede recibir impresiones mediante una conexión de servidor a servidor (server to server) utilizando el protocolo OpenRTB.
Este documento describe como se realizará la conexión, como deben ser enviados las impresiones y como serán devueltos los anuncios entre otros puntos operativos importantes como la sincronización de usuarios.
Contenido
- 1 Subasta
- 2 Protocolo RTB
- 3 Bid Request
- 3.1 Nivel superior del Bid Request
- 3.2 Objeto Imp
- 3.3 Objeto Banner
- 3.4 Objeto Video
- 3.5 Objeto Format
- 3.6 Objeto Site
- 3.7 Objeto App
- 3.8 Objeto Publisher
- 3.9 Objeto Content
- 3.10 Objeto Producer
- 3.11 Objecto Channel
- 3.12 Objeto User
- 3.13 Objeto Device
- 3.14 Objeto Geo
- 3.15 Objeto Regs
- 3.16 Objeto Source
- 4 Bid Response
- 5 Macros
- 6 Sincronización de usuarios
- 7 Compresión
- 8 Conexiones persistentes
Subasta
Lo que normalmente se refiere como subasta, consiste en:
Un bid request enviado a E-Planning SSP (entre otros compradores) por otro SSP
E-Planning SSP respondiendo con un bid response
El SSP elegiendo un ganador
El SSP mostrando el anuncio de la fuente ganadora
Protocolo RTB
E-Planning SSP utiliza como formato de transporte JSON y el metodo HTTP POST.
E-Planning SSP devuelve un mensaje HTTP 204 en caso de que no participe en la subasta.
El protocolo utilizado por E-Planning SSP es OpenRTB 2.3. Sin embargo, algunas características de OpenRTB 2.5 son soportadas (como por ejemplo Banner.format)
Bid Request
Para comenzar la conexión el SSP será provisto de una serie de URLs (Endpoints), cada una apuntando a diferentes datacenters de E-Planning. El objetivo de esto es utilizar el datacenter mas cercano al utilizado por el SSP para realizar la subasta.
Solo un bid request debe ser enviado para cada subasta. Sin embargo, múltiples impresiones pueden ser enviadas en un mismo bid request.
Importante
Los campos obligatorios siempre deben ser incluidos.
Los campos recomendados tienen un impacto positivo en la subasta si son enviados.
Los campos opcionales tienen un impacto positivo en la operación y reportes, pero no influyen de forma directa en el resultado de la subasta.
Nivel superior del Bid Request
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
id | String | Obligatorio | Un identificador para el request. Puede ser utilizado para relacionar el bid request al bid response fuera del protocolo HTTP |
tmax | Integer | Recomendado | En milisegundos, el tiempo máximo de respuesta para participar de la subasta |
at | Integer | Obligatorio | Tipo de subasta, donde 1 = First Price, 2 = Second Price Plus |
imp | Object Array | Obligatorio | Ver objeto Imp |
allimps | Integer | Recomendado | Indica si todas las impresiones del contexto están disponibles o no |
user | Object | Obligatorio | Ver objeto User |
device | Object | Obligatorio | Ver objeto Device |
site | Object | Obligatorio para Web | Ver objeto Site |
app | Object | Obligatorio para In-App | Ver objeto App |
source | Object | Obligatorio | Ver objeto Source |
regs | Object | Obligatorio para Europa | Ver objeto Regs |
badv | String Array | Recomendado | Listado de dominios de anunciantes bloqueados |
bcat | String Array | Recomendado | Listado de categorías IAB bloqueadas |
Ejemplo
{
"id": "bfebe4d6f24efacd",
"tmax": 300,
"at": 1,
"cur": ["USD"],
"imp": [{ "...": "..." }],
"user": { "...": "..." },
"device": { "...": "..." },
"site": { "...": "..." },
"source": { "...": "..." },
"regs": { "...": "..." },
"badv": ["ford.com","bmw.com"],
"bcat":, ["IAB8-1","IAB8-2"]
}Objeto Imp
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
id | String | Obligatorio | Identificador único para la impresión dentro del Bid Request. |
banner | Object | Obligatorio para display | Ver objeto Banner |
video | Object | Obligatorio para video | Ver objeto Video |
bidfloorcur | String | Obligatorio | Divisa a utilizar en los precios, tanto en el bid response como en los precios mínimos. |
bidfloor | Float | Obligatorio | El precio mínimo al cual la impresión puede ser vendida, expresado en la divisa especificada en bidfloorcur |
secure | Integer | Obligatorio | Indica "1" si el anuncio en el bid response debe utilizar HTTPS |
instl | Integer | Recomendado | Indica "1" cuando la impresión corresponde a un anuncio de página completa (Full page o Interstitial) |
clickbrowser | Integer | Obligatorio para In-App | Indica el tipo de navegador a abrirse al realizar click en el anuncio. 0 = Interno de la App, 1 = Nativo |
Ejemplo
{
"id": "1",
"bidfloor": 0.4286,
"bidfloorcur": "USD",
"secure": 1,
"instl": 0,
"banner": {
"w": 300,
"h": 250,
"pos": 1,
"topframe": 0
},
"tagid": "79a4e192e54cc0d9"
}Objeto Banner
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
format | Object Array | Obligatorio si no estan presentes "w" y "h" | Ver objeto Format. Tamaños soportados en la subasta. |
w | Integer | Obligatorio si no esta presente "Format" | Ancho en pixeles del banner |
h | Integer | Obligatorio si no esta presente "Format" | Alto en pixeles del banner |
wmin | Integer | Recomendado si no esta presente "Format" | Mínimo ancho en pixeles del banner |
wmax | Integer | Recomendado si no esta presente "Format" | Máximo ancho en pixeles del banner |
hmin | Integer | Recomendado si no esta presente "Format" | Mínimo alto en pixeles del banner |
hmax | Integer | Recomendado si no esta presente "Format" | Máximo alto en pixeles del banner |
pos | Integer | Recomendado | Posición del anuncio en la pagina según Ad Position IAB standard |
topframe | Integer | Recomendado | 0 = El banner se encuentra dentro de un iframe, 1 = El banner se encuentra en el marco superior de la página |
api | Integer | Recomendado | Listado de las APIs soportadas según están descriptas en OpenRTB 2.5. Si se encuentra enviando tráfico inApp, por favor considere indicar si soporta OMID-1 (7) |
battr | Integer Array | Recomendado | Atributos del creativo bloqueadas |
btype | Integer Array | Recomendado | Tipos de banner bloqueados |
expdir | Integer Array | Opcional | Direcciones en las cuales el banner puede ser expandido |
Notas
Tanto el formato de tamaño de OpenRTB 2.3 como de 2.5 son soportados. Recomendamos no definir ambos a la vez, pero en caso de suceder, se ignorará el formato de OpenRTB 2.5.
OpenRTB 2.3: Utiliza w y h
OpenRTB 2.5: Utiliza format
Si lo que se desea vender son dos espacios separados en la misma página, por ejemplo un 728x90 en la parte superior y un 300x250 a la derecha, dos objetos Imp deben ser enviados con un tamaño independiente cada uno.
Si el objetivo es vender un único espacio que soporta mas de un tamaño, entonces un solo objeto Imp debe ser enviado con los tamaños soportados.
Ejemplo
Utilizando format
{
"pos": 1,
"format": [
{
"w": 300,
"h": 600
},
{
"w": 300,
"h": 250
}
],
"battr": [ 11, 12 ],
"btype": [ 4 ]
}Utilizando w y h
{
"pos": 1,
"w": 300,
"h": 250,
"wmin": 300,
"wmax": 300,
"hmin": 50,
"hmax": 600,
"battr": [ 11, 12 ],
"btype": [ 4 ]
}Objeto Video
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
w | Integer | Obligatorio | Ancho en pixeles del reproductor de video |
h | Integer | Obligatorio | Alto en pixeles del reproductor de video |
maxduration | Integer | Obligatorio | Máxima duración del video, en segundos |
minduration | Integer | Obligatorio | Mínima duración del video, en segundos |
mimes | String Array | Obligatorio | Listado de MIME types soportados. Los mas comunes son: video/mp4, video/webm, video/ogg. Para VPAID, por favor especifique application/javascript |
protocols | Integer Array | Obligatorio | Protocolos soportados. Al menos un protocolo debe ser soportado, ejemplos: 2 = VAST 2.0, 3 = VAST 3.0, 5 = VAST 2.0 Wrapper, 6 = VAST 3.0 Wrapper |
pos | Integer | Recomendado | Posición del anuncio en la pagina según Ad Position IAB standard |
api | Integer | Recomendado | Listado de las APIs soportadas según están descriptas en OpenRTB 2.5. Si se encuentra enviando tráfico inApp, por favor considere indicar si soporta OMID-1 (7) |
battr | Integer Array | Recomendado | Atributos del creativo bloqueadas |
boxingallowed | Integer | Recomendado | Especifica si es posible insertar contenido de video 4:3 en una ventana de 16:9. 1 = Permitido, 0 = No permitido |
delivery | Integer Array | Opcional | Metodos de entrega soportados. 1 = streaming, 2 = progressive |
linearity | Integer Array | Opcional | Especifica si la impresión es lineal o no-lineal. 1 = linear / in-stream, 2 = non-linear / overlay |
Objeto Format
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
w | Integer | Obligatorio | Ancho en pixeles del tamaño |
h | Integer | Obligatorio | Alto en pixeles del tamaño |
Objeto Site
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
id | String | Obligatorio | ID del sitio en el SSP |
page | String | Obligatorio | URL de la página donde se mostrará la impresión. |
publisher | Object | Obligatorio | Ver objeto Publisher |
domain | String | Recomendado | Dominio de la página donde se mostrará la impresión |
cat | String Array | Recomendado | Array de categorías IAB del sitio. Máximo 8 categorias. |
ref | String | Recomendado | URL de la página desde donde se llego a la página actual |
ext.inventorypartnerdomain | String | Recomendado | Inventory partner domain. Dominio de terceros autorizado para validar ads.txt |
Ejemplo
{
"id": "123",
"page": "http://example.com/section/page.html",
"cat": [ "IAB1-2" ],
"publisher": {
"id": "456",
"domain": "example.com",
"name": "Example Inc"
}
}Objeto App
Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
id | String | Obligatorio | ID de la App en el SSP |
name | String | Obligatorio | Nombre de la aplicación |
bundle | String | Obligatorio | Bundle de la aplicación o nombre del paquete (por ejemplo, "com.foo.myapp" en Android o un valor numerico en iOS) |
domain | String | Recomendado | Dominio de la aplicación donde se mostrará la impresión |
storeurl |