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
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 caracteristicas 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, multiples impresiones pueden ser enviadas en un mismo bid request.
Importante
- Los campos obligatorios siempre deben ser includos.
- 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 estan disponibles o no |
| user | Object | Obligatorio | Ver objeto User |
| device | Object | Obligatorio | Ver objeto Device |
| site | Object | Obligatorio | Ver objeto Site |
| source | Object | Obligatorio | Ver objeto Source |
| regs | Object | Obligatorio para Europa (Recomendado para el resto) | Ver objeto Regs |
| badv | String Array | Recomendado | Listado de dominios de anunciantes bloqueados |
| bcat | String Array | Recomendado | Listado de categorias IAB bloqueadas |
Ejemplo
Objeto Imp
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| id | String | Obligatorio | Identificador unico para la impresión dentro del Bid Request. Habitualmente comienza en "1" y se incrementa progresivamente. |
| banner | Object | Obligatorio | Ver objeto Banner |
| bidfloorcur | String | Obligatorio | Divisa a utilizar en los precios, tanto en el bid response como en los precios mínimos. Utiliza códigos ISO-4217, por ejemplo "USD". |
| 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) |
Ejemplo
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 estan descriptas en OpenRTB 2.5 |
| 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 unico espacio que soporta mas de un tamaño, entonces un solo objeto Imp debe ser enviado con los tamaños soportados.
Ejemplo
Utilizando format
Utilizando w y h
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. Si es desconocido, el campo no debe ser enviado o estar en blanco. |
| 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 categorias IAB del sitio |
| ref | String | Recomendado | URL de la página desde donde se llego a la página actual |
Ejemplo
Objeto Publisher
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| id | String | Obligatorio | El ID del publisher. Debe ser suficiente para identificar a la parte finalmente pagada |
| domain | String | Recomendado | Dominio del publisher |
| name | String | Recomendado | Nombre del publisher |
Ejemplo
Objeto User
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| id | String | Recomendado | ID del usuario en el DSP |
| buyeruid | String | Recomendado | ID del usuario en E-Planning SSP. Ver sección Sincronización de usuarios |
Ejemplo
Objeto Device
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| ua | String | Obligatorio | El valor de user-agent para el navegador |
| ip | String | Obligatorio | Dirección IP del usuario |
| dnt | Integer | Recomendado | El consentimiento del usuario para ser seguido (tracked). Si el usuario no desea ser seguido este campo debe valer 1. |
| language | String | Opcional | El idioma del navegador del usuario utilizando ISO- 639-1-alpha-2 |
| carrier | String | Recomendado | Proveedor de servicios de Internet del usuario |
| connectiontype | Integer | Recomendado | Tipo de conexión |
| os | String | Recomendado | Sistema operativo del dispositivo |
| geo | Object | Recomendado | Ver objeto Geo |
Ejemplo
Objeto Geo
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| country | String | Obligatorio | País del usuario en ISO- 3166-1-alpha-3 |
| city | String | Recomendado | Ciudad del usuario |
| latitude | Float | Recomendado | Latitud desde -90.0 hasta +90.0, donde negativo significa sur |
| longitude | Float | Recomendado | Longitud desde -180.0 hasta +180.0, donde negativo es oeste |
Ejemplo
Objeto Regs
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| coppa | Integer | Recomendado | Indica si la petición esta sujeta a regulaciones de COPPA, donde 0 = no, 1 = si |
| gdpr | Integer | Obligatorio para Europa | Indica si la petición esta sujeta a regulaciones de GDPR, donde 0 = no, 1 = si |
| ext.consent | String | Recomendado | Si la petición esta sujeta a regulaciones de GDPR, indica el Consent String del usuario |
| us_privacy | String | Recomendado | Indica si la petición esta sujeta a regulaciones de CCPA (California Consumer Privacy Act). Debe contener cuatro caracteres, donde el primero debe ser la versión y los tres siguientes Y, N o - Mas información haciendo click aquí. |
Ejemplo
Objeto Source
| Campo | Tipo | Estado | Comentarios |
|---|---|---|---|
| fd | Integer | Obligatorio | Entidad responsable de la decisión final sobre la impresión, donde 0 = SSP, 1 = la siguiente fuente |
| pchain | String | Recomendado si schain no esta presente | Cadena TAG Payment ID |
| ext.schain | String | Recomendado si pchain no esta presente | Según propuesta de IAB, Supply Chain Object |
Nota
Para implementaciones con pchain soportamos tanto TAG ID como identificación por dominio.
Ejemplo
Utilizando pchain
Utilizando schain
Ejemplo de Bid Request
Ejemplo para banner (web)
Bid Response
Cada bid response generado por E-Planning SSP es único y debe ser utilizado solo una vez, en el mismo contexto del bid request original.
Nivel superior del Bid Response
| Campo | Tipo | Comentarios |
|---|---|---|
| id | String | E-Planning SSP devuelve en este campo el valor del identificador del bid request correspondiente. Esto no es necesario para el protocolo pero permite emparejar el request y el response fuera del protocolo HTTP. |
| seatbid | Object Array | Ver objeto Seatbid. Es un array para compatibilidad con OpenRTB, pero E-Planning SSP siempre devolverá un solo objeto dentro |
| cur | String | La divisa de la oferta utilizando códigos alfanumericos ISO-4217 |