Servicios de previsión de inventario
Nota:
Inventory Forecasting Services solo está disponible para los clientes de Xandr Ad Server.
Para que un publicador se comprometa a entregar con respecto al presupuesto de un anunciante, ese anunciante necesita una manera de predecir cuánto inventario está disponible para que el anunciante compre. Además, el publicador necesita una manera de detectar la contención de inventario. La contención del inventario se produce cuando hay varios artículos de línea garantizados que compiten por el mismo inventario. Comprender la contención es importante para que el publicador pueda tomar decisiones de priorización cuando se produzcan conflictos.
Los servicios de API descritos en esta página están diseñados para ayudarle a obtener información sobre la disponibilidad y la contención del inventario. El servicio de previsión Inventory-Multi y el servicio de previsión Contention-Multi son servicios totalmente compatibles.
Nota:
Los servicios de previsión de inventario admiten tanto los elementos de línea de entrega garantizados (GDLI) heredados como los artículos de línea aumentadas de entrega garantizada (GDALI). Lo siguiente le ayudará a realizar solicitudes de previsión adecuadas para estos tipos de elementos de línea diferentes:
- GDLIs heredados
- Los GDLI heredados admiten campañas, pero no admiten divisiones.
- Si no tiene varias campañas secundarias, pase una matriz vacía (
campaigns: [ ]
). - Para obtener más información, consulte Uso de varias campañas con un elemento de línea garantizado.
- GDALIs
- Las GDALIs admiten divisiones, pero no admiten campañas.
- Al incluir detalles de división en la solicitud, puede usar el parámetro
split_breakout=true
de cadena de consulta para devolver una previsión desglosada por divisiones individuales, así como el elemento de línea en su conjunto. - La interfaz de usuario de GDALI usa Inventory Forecasting Services para su pie de página de previsión. Para obtener más información, consulte la sección "Previsión" de Create un elemento de línea aumentada de entrega garantizada.
Previsión del servicio de inventario múltiple
API de REST
Http (método) | Endpoint | Description |
---|---|---|
POST |
https://api.appnexus.com/forecast-inventory-multi | Ejecute una previsión de inventario mediante un perfil hipotético. Nota: El servicio forecast Inventory-Multi solo admite POST llamadas. |
Parámetros de la cadena de consulta
Use los parámetros de cadena de consulta que se muestran en la tabla siguiente para ajustar la salida. Para obtener información sobre el uso de GDLI y GDALI heredados, consulte los ejemplos siguientes.
Campo | Description |
---|---|
priority |
Cuando se pasa a la cadena de consulta en el formulario priority=x , el inventario de elementos de línea de prioridad inferior se desplazará y se considerará disponible.Obligatorio: No |
roadblocking_enabled |
Este campo especifica si varios tamaños de anuncio se agrupan en un bloque de carreteras. Cuando se pasan como roadblocking_enabled=true , se necesitan dos o más tamaños de anuncio para pasarse en la size_targets matriz del perfil. Para el bloqueo de carreteras de nivel de página, debe incluir los tamaños creativos maestros en el roadblock objeto en line_item . Para obtener más información sobre el bloqueo de carreteras, consulte Target Your Inventory with Roadblocking (Dirigir su inventario con roadblocking).Obligatorio: No |
competitive_exclusions_enabled |
Si este campo se pasa en, también debe pasar advertiser_id , creative_id o ambos. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No |
advertiser_id |
Cuando competitive_exclusions_enabled=true se pasa, también debe pasar en este campo con el id. de anunciante cuyas creatividades tienen marcas o categorías de ofertas competidoras y, por lo tanto, no deben incluirse en la previsión resultante. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No, a menos que competitive_exclusions_enabled también se pase en la cadena de consulta. |
creative_id |
Cuando competitive_exclusions_enabled=true se pasa, también debe pasar en este campo con un identificador creativo que tenga marcas o categorías de ofertas competidoras y, por lo tanto, no debe incluirse en la previsión resultante. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No, a menos que competitive_exclusions_enabled también se pase en la cadena de consulta. |
line_item_exclusions |
Lista separada por comas de identificadores de elemento de línea que se excluirán de la previsión. Obligatorio: No |
viewability |
Cuando se establece en true, la previsión incluirá solo impresiones visibles. Las impresiones visibles se calculan en función de los datos históricos. Se aplica a los artículos de línea de entrega garantizados con un tipo de ingresos vCPM. Obligatorio: No |
dynamic_timeout |
Número de intentos (el valor predeterminado es 1 ).Obligatorio: No |
dynamic_attempts |
Cantidad de tiempo que se debe esperar para cada prueba (el valor predeterminado es 2 minutos, el mínimo en producción es 10 segundos).Obligatorio: No |
split_breakout |
Cuando split_breakout=true se pasa, también debe pasar los detalles de nivel de división. Esto devolverá una previsión desglosada por divisiones individuales, así como el elemento de línea en su conjunto.Nota: Las GDALIs admiten divisiones; Los GDLI heredados no admiten divisiones. Obligatorio: No |
Campos JSON
General
Campo | Tipo | Descripción |
---|---|---|
line_item |
object | Las fechas de vuelo y la información de perfil asociada al elemento de línea con el que desea realizar la previsión. Obligatorio: Sí |
campaigns |
matriz de objetos | Matriz de objetos que contienen información de campaña para el elemento de línea. Nota: Las GDLI heredadas admiten campañas; Las GDALIs no admiten campañas. Si el GDLI heredado no tiene varias campañas secundarias, pase una matriz vacía ( campaigns: [] ).Obligatorio: Sí para los GDLI heredados, pero puede estar vacío. Los elementos de línea no pueden tener campañas ni divisiones. |
splits |
matriz de objetos | Matriz de objetos que contienen información dividida del elemento de línea. Nota: Las GDALIs admiten divisiones; Los GDLI heredados no admiten divisiones. Si la GDALI no tiene divisiones, pase una matriz vacía ( splits: [] ). Para obtener más información, vea Splits Service.Obligatorio: Sí para los GDALIs, pero puede estar vacío. Los elementos de línea no pueden tener campañas ni divisiones. |
Elemento de línea
Campo | Tipo | Descripción |
---|---|---|
start_date |
string | Fecha de inicio del vuelo. Obligatorio: Sí |
end_date |
string | Fecha de finalización del vuelo. Obligatorio: Sí |
timezone |
enumeración | Zona horaria para la que está activo el elemento de línea. Para más información y valores aceptados, consulte Zonas horarias de API. Obligatorio: No, si no se especifica, se usará la zona horaria predeterminada del miembro. |
profile |
object | Instancia del objeto de perfil. Use este objeto para definir el destino del elemento de línea. Para obtener una lista de los campos disponibles, consulte Servicio de perfiles. Para obtener una configuración de perfil específica de la previsión, consulte Perfiles de previsión a continuación. Este campo es necesario, pero puede pasar un objeto vacío. Sin embargo, pasar un perfil vacío significa que está pronosticando sin aplicar ningún destino al elemento de línea. Obligatorio: Sí |
roadblock |
object | Configuración del bloqueo de carretera para el elemento de línea. Obligatorio: Sí, solo si roadblocking_enabled = true . |
creatives |
matriz de objetos | Los creativos asociados a la campaña. Si incluye creatividades, debe incluir al menos el identificador creativo. Para obtener una lista y descripciones de los campos disponibles, consulte Creative Service. Obligatorio: No |
Barricada
Los obstáculos se pueden establecer en el nivel de elemento de línea o en el nivel de campaña, pero no en ambos. Si se ha establecido un obstáculo en una campaña, no se puede establecer en el elemento de línea principal. Los obstáculos solo se pueden aplicar para el inventario administrado y no se pueden habilitar cuando se trabaja con un inventario de terceros.
Campo | Tipo | Description |
---|---|---|
type |
enumeración | Tipo de obstáculo. Si incluye el objeto roadblock, se requiere este campo. Los valores posibles son: - null : no hay ningún conjunto de obstáculos en el nivel de elemento de línea. (solo GDALI)- no_roadblock : no hay ningún conjunto de obstáculos en el nivel de elemento de línea. (Solo GDLI heredado)- normal_roadblock : el elemento de línea sirve si el número de creatividades es mayor o igual que el número de espacios de anuncios disponibles. (Solo GDLI heredado)- partial_roadblock : el elemento de línea sirve cuando al menos una creatividad de cada tamaño se ajusta a una ranura de anuncio apta. (GDALI & GDLI heredado)- exact_roadblock : el elemento de línea sirve cuando el número de creatividades es igual al número de espacios de anuncios disponibles. (Solo GDLI heredado)Nota: Para los GDALIs, este valor debe ser o null partial_roadblock . |
master_width |
Entero | Ancho de la creatividad maestra. Establezca este valor solo cuando use el bloqueo de carreteras de nivel de página. Para el bloqueo de carreteras estándar, omita este campo o establezca el valor 0 en . (No establezca el valor en null .) |
master_height |
Entero | El alto del maestro creativo. Establezca este valor solo cuando use el bloqueo de carreteras de nivel de página. Para el bloqueo de carreteras estándar, omita este campo o establezca el valor 0 en . (No establezca el valor en null .) |
Maestro creativo
La creatividad maestra es la creatividad con un tamaño que coincide master_height
con y master_width
especificado en el objeto roadblock. Si más de una creatividad coincide con ese tamaño, el sistema elegirá una como maestra.
La creatividad maestra se usa para el bloqueo de carreteras de nivel de página, donde se registra una impresión para el conjunto completo de creativos entregados para el obstáculo. Esa impresión grabada se basa en la creatividad maestra. Esto significa que si el maestro creativo no sirve, no se registrará ninguna impresión. Si desea usar el obstáculo de nivel creativo, donde cada entrega creativa se cuenta como una impresión, deje los master_width
valores y master_height
en blanco.
Para obtener más información sobre el bloqueo de carreteras, consulta Target Your Inventory with Roadblocking (Dirigir tu inventario con bloqueo de carreteras).
Campañas
Nota:
Las GDLI heredadas admiten campañas; Las GDALIs no admiten campañas.
Campo | Tipo | Descripción |
---|---|---|
name |
string | Nombre de la campaña. Puede predecir varias campañas dentro de un solo elemento de línea, por lo que el nombre debe ser único dentro de cada elemento de línea. Obligatorio: Sí |
profile |
object | Instancia del objeto de perfil. Use este objeto para definir el destino de la campaña. Para obtener una lista y descripciones de los campos disponibles, consulte Servicio de perfiles. Para obtener una configuración de perfil específica de la previsión, consulte Perfiles de previsión a continuación. Obligatorio: Sí |
start_date |
string | Fecha de inicio de la campaña. Obligatorio: No |
end_date |
string | Fecha de finalización de la campaña. Obligatorio: No |
timezone |
enumeración | Zona horaria para la que está activo el elemento de línea. Para más información y valores aceptados, consulte Zonas horarias de API. Obligatorio: No, si no se especifica, se usará la zona horaria predeterminada del miembro. |
creatives |
matriz de objetos | Los creativos asociados a la campaña. Si incluye creatividades, debe incluir al menos el identificador creativo. Para obtener una lista y descripciones de los campos disponibles, consulte Creative Service. Obligatorio: No |
Perfiles de previsión
Puede definir los requisitos de destino de la previsión mediante el servicio de perfil en el elemento de línea y la campaña. Sin embargo, hay algunas diferencias en cómo debe definir algunos de los campos para la previsión en lugar de otros tipos de especificaciones de destino.
postal_code_targets
Los campos del postal_code_targets
objeto del profile
servicio se definen en el servicio de código postal. Si desea realizar una previsión basada en códigos postales, debe proporcionar la siguiente información:
Campo | Tipo | Descripción |
---|---|---|
code |
string | El código postal puede ser una cadena alfanumérica de hasta 14 caracteres y puede contener un espacio o un guion. |
country_id |
string | El código ISO del país al que pertenece la ciudad. Puede usar country service para recuperar una lista completa de códigos de país. |
Ejemplo
Expandir origen
"postal_code_targets":[
{
"code": "02692",
"country_id": "59"
},
{
"code": "83712",
"country_id": "233"
}
]
Ejemplo de GDLI heredado: comprobación de la disponibilidad del inventario para los GDLI heredados con varias campañas
Para ver una previsión de disponibilidad de inventario en varias campañas secundarias basadas en la segmentación propuesta, cree un archivo JSON con el formato que se muestra aquí:
{
"line_item": {
"start_date": "2019-02-10",
"end_date": "2019-03-01",
"profile": {
"country_targets": [
{
"id": 169
}
],
"country_action": "include"
}
},
"campaigns": [
{
"name": "foo",
"start_date": "2019-02-11",
"end_date": "2019-02-15",
"profile": {
"daypart_targets": [
{
"day": "tuesday",
"start_hour": 8,
"end_hour": 20
}
]
}
},
{
"name": "bar",
"start_date": "2019-02-20",
"end_date": "2019-02-28",
"profile": {
"browser_targets": [
{
"id": 11
}
],
"browser_action": "include"
}
}
]
}
Si no tiene varias campañas, simplemente pase una matriz vacía para las campañas:
{
"line_item": {
"start_date": "2019-02-10",
"end_date": "2019-03-01",
"profile": {
"country_targets": [
{
"id": 169
}
],
"country_action": "include"
}
},
"campaigns": [
]
}
A continuación, POST
se le mostrará al servicio de la siguiente manera:
curl --silent -b cookies -X POST -d '@/tmp/forecast-inventory-multi.json' "https://api.appnexus.com/forecast-inventory-multi"
Volverá a obtener JSON en el formato siguiente:
{
"response" : {
"start_element" : 0,
"inventory" : [
{
"daily_detail" : [
{
"end_date" : "2019-02-11",
"available" : 0,
"capacity" : 0,
"days_in_forecast" : 0,
"start_date" : "2019-02-11"
},
{
"available" : 0,
"capacity" : 0,
"end_date" : "2019-02-12",
"days_in_forecast" : 0,
"start_date" : "2019-02-12"
},
{
"end_date" : "2019-02-13",
"available" : 0,
"capacity" : 0,
"days_in_forecast" : 0,
"start_date" : "2019-02-13"
},
{
"end_date" : "2019-02-14",
"capacity" : 0,
"available" : 0,
"start_date" : "2019-02-14",
"days_in_forecast" : 0
},
{
"available" : 118759,
"capacity" : 126738,
"end_date" : "2019-02-15",
"days_in_forecast" : 0,
"start_date" : "2019-02-15"
},
{
"days_in_forecast" : 0,
"start_date" : "2019-02-20",
"end_date" : "2019-02-20",
"available" : 163474200,
"capacity" : 176586394
},
{
"days_in_forecast" : 0,
"start_date" : "2019-02-21",
"end_date" : "2019-02-21",
"available" : 256485594,
"capacity" : 274037191
},
{
"capacity" : 212467438,
"available" : 199091285,
"end_date" : "2019-02-22",
"start_date" : "2019-02-22",
"days_in_forecast" : 0
},
{
"capacity" : 189452983,
"available" : 177450785,
"end_date" : "2019-02-23",
"start_date" : "2019-02-23",
"days_in_forecast" : 0
},
{
"start_date" : "2019-02-24",
"days_in_forecast" : 0,
"capacity" : 180309046,
"available" : 168589468,
"end_date" : "2019-02-24"
},
{
"start_date" : "2019-02-25",
"days_in_forecast" : 0,
"capacity" : 182850122,
"available" : 171364216,
"end_date" : "2019-02-25"
},
{
"end_date" : "2019-02-26",
"available" : 129049282,
"capacity" : 139962276,
"days_in_forecast" : 0,
"start_date" : "2019-02-26"
},
{
"start_date" : "2019-02-27",
"days_in_forecast" : 0,
"capacity" : 171623425,
"available" : 158879752,
"end_date" : "2019-02-27"
},
{
"end_date" : "2019-02-28",
"capacity" : 268133170,
"available" : 250959715,
"start_date" : "2019-02-28",
"days_in_forecast" : 0
}
],
"summary" : {
"days_in_forecast" : 14,
"start_date" : "2019-02-10",
"available" : 1675463056,
"capacity" : 1795548783,
"end_date" : "2019-03-01"
}
}
],
"num_elements" : 1,
"count" : 1,
"status" : "OK"
}
}
Ejemplo de GDALI: comprobación de la disponibilidad del inventario de GDALIs con divisiones
Para ver una previsión de disponibilidad de inventario entre divisiones basadas en la segmentación propuesta, cree un archivo JSON con el formato que se muestra aquí:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-04-28 00:00:00",
"end_date": "2022-05-01 23:59:59",
"profile": {
"country_targets": [
{
"id": 123,
"action": "include",
}
],
"size_targets": {
"width": 190,
"height": 213
},
{
"width": 728,
"height": 90
},
"id": null,
"advertiser_id": 5878213,
"graph_id": null
},
"creatives": [],
"roadblock": null
},
"splits": [
{
"id": 111111111,
"conditions": []
"is_default": false,
"active": true,
"order": 1,
"name": "Name1",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 222222222,
"conditions": []
"is_default": false,
"active": true,
"order": 2,
"name": "Name2",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 333333333,
"is_default": true,
"active": false,
"order": 5,
"name": "Default",
"allocation_strategy": "unconstrained",
"creatives": []
}
]
}
Si no tiene divisiones, simplemente pase una matriz vacía para las divisiones:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-04-28 00:00:00",
"end_date": "2022-05-01 23:59:59",
"profile": {
"country_targets": [
{
"id": 123,
"action": "include",
}
],
"size_targets": {
"width": 190,
"height": 213
},
{
"width": 728,
"height": 90
},
"id": null,
"advertiser_id": 5878213,
"graph_id": null
},
"creatives": [],
"roadblock": null
},
"splits": [
]
}
A continuación, POST
se realiza en el servicio sin consultas adicionales o con la split_breakout
consulta:
POST
sin consultas adicionales
curl --silent -b cookies -X POST -d '@/tmp/forecast-inventory-multi.json' "https://api.appnexus.com/forecast-inventory-multi"
Volverá a obtener JSON en el formato siguiente:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-04-28 00:00:00",
"end_date": "2022-05-01 23:59:59",
"profile": {
"country_targets": [
{
"id": 123,
"action": "include",
}
],
"size_targets": {
"width": 190,
"height": 213
},
{
"width": 728,
"height": 90
},
"id": null,
"advertiser_id": 5878213,
"graph_id": null
},
"creatives": [],
"roadblock": null
},
"splits": [
{
"id": 111111111,
"conditions": []
"is_default": false,
"active": true,
"order": 1,
"name": "Name1",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 222222222,
"conditions": []
"is_default": false,
"active": true,
"order": 2,
"name": "Name2",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 333333333,
"is_default": true,
"active": false,
"order": 5,
"name": "Default",
"allocation_strategy": "unconstrained",
"creatives": []
}
]
}
POST
con split_breakout
la consulta
curl --silent -b cookies -X POST -d '@/tmp/forecast-inventory-multi.json' "https://api.appnexus.com/forecast-inventory-multi?split_breakout=true"
Volverá a obtener JSON en el formato siguiente:
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"inventory": [
{
"split_breakout": [
{
"name": "split 1",
"id": 111111111,
"daily_detail": [
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-13",
"end_date": "2022-12-13"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-14",
"end_date": "2022-12-14"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-15",
"end_date": "2022-12-15"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-16",
"end_date": "2022-12-16"
}
],
"summary": {
"available": 0,
"capacity": 0,
"days_in_forecast": 4,
"start_date": "2022-12-13",
"end_date": "2022-12-16"
}
},
{
"name": "split 2",
"id": 222222222,
"daily_detail": [
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-13",
"end_date": "2022-12-13"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-14",
"end_date": "2022-12-14"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-15",
"end_date": "2022-12-15"
},
{
"available": 0,
"capacity": 0,
"days_in_forecast": 0,
"start_date": "2022-12-16",
"end_date": "2022-12-16"
}
],
"summary": {
"available": 0,
"capacity": 0,
"days_in_forecast": 4,
"start_date": "2022-12-13",
"end_date": "2022-12-16"
}
},
{
"name": "Default",
"id": 000000000,
"daily_detail": [
{
"available": 14076857,
"capacity": 19714967,
"days_in_forecast": 0,
"start_date": "2022-12-13",
"end_date": "2022-12-13"
},
{
"available": 17695775,
"capacity": 18459811,
"days_in_forecast": 0,
"start_date": "2022-12-14",
"end_date": "2022-12-14"
},
{
"available": 18542490,
"capacity": 19292381,
"days_in_forecast": 0,
"start_date": "2022-12-15",
"end_date": "2022-12-15"
},
{
"available": 18106140,
"capacity": 18859887,
"days_in_forecast": 0,
"start_date": "2022-12-16",
"end_date": "2022-12-16"
}
],
"summary": {
"available": 68421262,
"capacity": 76327046,
"days_in_forecast": 4,
"start_date": "2022-12-13",
"end_date": "2022-12-16"
}
}
],
"daily_detail": [
{
"available": 14076857,
"capacity": 19714967,
"days_in_forecast": 0,
"start_date": "2022-12-13",
"end_date": "2022-12-13"
},
{
"available": 17695775,
"capacity": 18459811,
"days_in_forecast": 0,
"start_date": "2022-12-14",
"end_date": "2022-12-14"
},
{
"available": 18542490,
"capacity": 19292381,
"days_in_forecast": 0,
"start_date": "2022-12-15",
"end_date": "2022-12-15"
},
{
"available": 18106140,
"capacity": 18859887,
"days_in_forecast": 0,
"start_date": "2022-12-16",
"end_date": "2022-12-16"
}
],
"summary": {
"available": 68421262,
"capacity": 76327046,
"days_in_forecast": 4,
"start_date": "2022-12-13",
"end_date": "2022-12-16"
}
}
]
}
}
Ejemplo de GDLI heredado: comprobación de la disponibilidad del inventario para los GDLI heredados con un obstáculo
Para ejecutar una previsión de disponibilidad de inventario dada una barrera con varios tamaños creativos, deberá:
- Modifique el perfil para incluir la
size_targets
matriz. - Pase
roadblocking_enabled=true
la cadena de consulta de la solicitud.
Es posible definir objetivos de tamaño y también agregar creatividades a tu línea de artículo o campañas. Al hacerlo, se usarán todos los tamaños en la previsión. Al habilitar el bloqueo de carreteras, se usará el tamaño con el menor número de impresiones disponibles como capacidad prevista.
Nota:
En este ejemplo, se tendrán en cuenta los size_targets
tamaños creativos y al determinar la previsión.
Este es un ejemplo del JSON que enviaría en la consulta:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-05-16 00:00:00",
"end_date": "2022-06-12 23:59:59",
"timezone": "Europe/Brussels",
"profile": {},
"creatives": [],
"roadblock": {
"type": "partial_roadblock",
"master_width": 320,
"master_height": 101
}
},
"campaigns": [],
}
Ejemplo de GDALI: comprobación de la disponibilidad del inventario de GDALIs con un obstáculo
Para ejecutar una previsión de disponibilidad de inventario en GDALIs dado un obstáculo con varios tamaños creativos, deberá:
- Modifique el perfil para incluir la
size_targets
matriz. - Pase
roadblocking_enabled=true
la cadena de consulta de la solicitud.
Es posible definir objetivos de tamaño y también agregar creatividades al elemento de línea. Al hacerlo, se usarán todos los tamaños en la previsión. Al habilitar el bloqueo de carreteras, se usará el tamaño con el menor número de impresiones disponibles como capacidad prevista.
Nota:
En este ejemplo, se tendrán en cuenta los size_targets
tamaños creativos y al determinar la previsión.
Este es un ejemplo del JSON que enviaría en la consulta:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-05-16 00:00:00",
"end_date": "2022-06-12 23:59:59",
"timezone": "Europe/Brussels",
"profile": {
"country_targets": [
{
"id": 123,
"action": "include",
}
],
size_targets": {
"width": 320,
"height": 101
},
{
"width": 320,
"height": 252
},
"id": null,
"advertiser_id": 7777777,
"graph_id": null
},
"creatives": [],
"roadblock": {
"type": "partial_roadblock",
"master_width": 320,
"master_height": 101
},
"splits": [
{
"id": 111111111
"conditions": []
"is_default": false,
"active": true,
"order": 1,
"name": "Name1",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 222222222,
"conditions": []
"is_default": false,
"active": true,
"order": 2,
"name": "Name2",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 333333333,
"is_default": true,
"active": false,
"order": 7,
"name": "Default",
"allocation_strategy": "unconstrained",
"creatives": []
}
]
}
Previsión de contención multiservitivo
Contención de previsión de varios servicios: API REST
Http (método) | Endpoint | Description |
---|---|---|
POST |
https://api.appnexus.com/forecast-contention-multi | Ejecute una previsión de contención de inventario mediante un perfil de destino hipotético. Propina: El servicio forecast Contention-Multi solo admite POST llamadas. |
Consulta de parámetros de cadena para la contención de previsión de varios servicios
Use los parámetros de cadena de consulta que se muestran en la tabla siguiente para ajustar la salida. Para obtener información sobre el uso de GDLI y GDALI heredados, consulte los ejemplos siguientes.
Campo | Description |
---|---|
priority |
Cuando se pasa a la cadena de consulta en el formulario priority=x , el inventario de elementos de línea de prioridad inferior se desplazará y se considerará disponible.Obligatorio: No |
competitive_exclusions_enabled |
Si este campo se pasa en, también debe pasar advertiser_id , creative_id o ambos. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No |
advertiser_id |
Cuando competitive_exclusions_enabled=true se pasa, también debe pasar en este campo con el id. de anunciante cuyas creatividades tienen marcas o categorías de ofertas competidoras y, por lo tanto, no deben incluirse en la previsión resultante. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No, a menos que competitive_exclusions_enabled también se pase en la cadena de consulta. |
creative_id |
Cuando competitive_exclusions_enabled=true se pasa, también debe pasar en este campo con un identificador creativo que tenga marcas o categorías de ofertas competidoras y, por lo tanto, no debe incluirse en la previsión resultante. Para obtener más información sobre las exclusiones competitivas, consulte Exclusiones competitivas.Obligatorio: No, a menos que competitive_exclusions_enabled también se pase en la cadena de consulta. |
line_item_exclusions |
Lista separada por comas de identificadores de elemento de línea que se excluirán de la previsión. Obligatorio: No |
dynamic_timeout |
Número de intentos (el valor predeterminado es 1) Obligatorio: No |
dynamic_attempts |
Cantidad de tiempo de espera para cada prueba (el valor predeterminado es 2 minutos, el mínimo en producción es de 10 segundos) Obligatorio: No |
split_breakout |
Cuando split_breakout=true se pasa, también debe pasar los detalles de nivel de división. Esto devolverá una previsión, desglosada por divisiones individuales, así como el elemento de línea en su conjunto.Nota: Las GDALIs admiten divisiones; Los GDLI heredados no admiten divisiones. Obligatorio: No |
Previsión de contención multiservidor: campos JSON
Contención de previsión de varios servicios: General
Campo | Tipo | Descripción |
---|---|---|
line_item |
object | Las fechas de vuelo y la información de perfil asociada al elemento de línea con el que desea realizar la previsión. Obligatorio: Sí |
campaigns |
matriz de objetos | Matriz de objetos que contienen información de campaña para el elemento de línea. Nota: Las GDLI heredadas admiten campañas; Las GDALIs no admiten campañas. Si el GDLI heredado no tiene varias campañas secundarias, pase una matriz vacía ( campaigns: [] ).Obligatorio: Sí para los GDLI heredados, pero puede estar vacío. Los elementos de línea no pueden tener campañas ni divisiones. |
splits |
matriz de objetos | Matriz de objetos que contienen información dividida del elemento de línea. Nota: Las GDALIs admiten divisiones; Los GDLI heredados no admiten divisiones. Si la GDALI no tiene divisiones, pase una matriz vacía ( splits: [] ). Para obtener más información, vea Splits Service. Obligatorio: Sí para los GDALIs, pero puede estar vacío. Los elementos de línea no pueden tener campañas ni divisiones. |
Contención de previsión-servicio múltiple: elemento de línea
Campo | Tipo | Descripción |
---|---|---|
start_date |
string | Fecha de inicio del vuelo. Obligatorio: Sí |
end_date |
string | Fecha de finalización del vuelo. Obligatorio: Sí |
timezone |
enumeración | Zona horaria para la que está activo el elemento de línea. Para más información y valores aceptados, consulte Zonas horarias de API. Obligatorio: No. Si no se especifica, se usará la zona horaria predeterminada del miembro. |
profile |
object | Instancia del objeto de perfil. Use este objeto para definir el destino del elemento de línea. Para obtener una lista y descripciones de los campos disponibles, consulte Servicio de perfiles. Para obtener una configuración de perfil específica de la previsión, consulte Perfiles de previsión anteriores. Este campo es necesario, pero puede pasar un objeto vacío. Sin embargo, pasar un perfil vacío significa que está pronosticando sin aplicar ningún destino al elemento de línea. Obligatorio: Sí |
Previsión de contención multiservidores: campañas
Nota:
Las GDLI heredadas admiten campañas; Las GDALIs no admiten campañas.
Campo | Tipo | Descripción |
---|---|---|
name |
string | Nombre de la campaña. Puede predecir varias campañas dentro de un solo elemento de línea, por lo que el nombre debe ser único dentro de cada elemento de línea. Obligatorio: Sí |
profile |
object | Instancia del objeto de perfil. Use este objeto para definir el destino del elemento de línea. Para obtener una lista y descripciones de los campos disponibles, consulte Servicio de perfiles. Para obtener una configuración de perfil específica de la previsión, consulte Perfiles de previsión anteriores. Obligatorio: Sí |
start_date |
string | Fecha de inicio de la campaña. Obligatorio: No |
end_date |
string | Fecha de finalización de la campaña. Obligatorio: No |
timezone |
enumeración | Zona horaria para la que está activo el elemento de línea. Para más información y valores aceptados, consulte Zonas horarias de API. Obligatorio: No. Si no se especifica, se usará la zona horaria predeterminada del miembro. |
creatives |
matriz de objetos | Los creativos asociados a la campaña. Si incluye creatividades, debe incluir al menos el identificador creativo. Para obtener una lista y descripciones de los campos disponibles, consulte Creative Service. Obligatorio: No |
Ejemplo de GDLI heredado: comprobación de la contención de inventario para GDLI heredados con varias campañas
Para ver una previsión de contención de inventario en varias campañas secundarias basadas en la configuración de destino propuesta, cree un archivo JSON con el formato que se muestra a continuación:
{
"line_item": {
"start_date": "2019-02-10",
"end_date": "2019-03-01",
"profile": {
"country_targets": [
{
"id": 169
}
],
"country_action": "include"
}
},
"campaigns": [
{
"name": "foo",
"start_date": "2019-02-11",
"end_date": "2019-02-15",
"profile": {
"daypart_targets": [
{
"day": "tuesday",
"start_hour": 8,
"end_hour": 20
}
]
}
},
{
"name": "bar",
"start_date": "2019-02-20",
"end_date": "2019-02-28",
"profile": {
"browser_targets": [
{
"id": 11
}
],
"browser_action": "include"
}
}
]
}
Si no tiene varias campañas, simplemente pase una matriz vacía para las campañas:
{
"line_item": {
"start_date": "2019-02-10",
"end_date": "2019-03-01",
"profile": {
"country_targets": [
{
"id": 169
}
],
"country_action": "include"
}
},
"campaigns": [
]
}
A continuación, POST
se le mostrará al servicio de la siguiente manera:
curl --silent -b cookies -X POST -d '/tmp/forecast-contention-multi.json' "https://api.appnexus.com/forecast-contention-multi"
Volverá a obtener JSON en el formato siguiente:
{
"response" : {
"num_elements" : 100,
"count" : 2,
"start_element" : 0,
"status" : "OK",
"contention" : [
{
"competing_impressions" : 25083480,
"line_item" : {
"status" : "live",
"advertiser_id" : 123456,
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"profile_id" : 50058150,
"member_id" : 1234,
"name" : "carrot juice airplane",
"delivery_goal" : {
"reserved" : true,
"type" : "percentage",
"disallow_non_guaranteed" : true,
"percentage" : 100
},
"id" : 123457,
"revenue_value" : 0,
"currency" : "EUR",
"priority" : 19,
"state" : "active",
"end_date" : "2019-12-31 23:59:59"
}
},
{
"line_item" : {
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"status" : "live",
"advertiser_id" : 123456,
"delivery_goal" : {
"reserved" : true,
"percentage" : 100,
"type" : "percentage",
"disallow_non_guaranteed" : true
},
"currency" : "EUR",
"revenue_value" : 0,
"id" : 123456,
"state" : "active",
"priority" : 19,
"end_date" : "2019-12-31 23:59:59",
"profile_id" : 6,
"name" : "lightning battery horse staple",
"member_id" : 1234
},
"competing_impressions" : 88514063
}
]
}
}
{
"response" : {
"num_elements" : 100,
"count" : 2,
"start_element" : 0,
"status" : "OK",
"contention" : [
{
"competing_impressions" : 25083480,
"line_item" : {
"status" : "live",
"advertiser_id" : 123456,
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"profile_id" : 50058150,
"member_id" : 1234,
"name" : "carrot juice airplane",
"delivery_goal" : {
"reserved" : true,
"type" : "percentage",
"disallow_non_guaranteed" : true,
"percentage" : 100
},
"id" : 123457,
"revenue_value" : 0,
"currency" : "EUR",
"priority" : 19,
"state" : "active",
"end_date" : "2019-12-31 23:59:59"
}
},
{
"line_item" : {
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"status" : "live",
"advertiser_id" : 123456,
"delivery_goal" : {
"reserved" : true,
"percentage" : 100,
"type" : "percentage",
"disallow_non_guaranteed" : true
},
"currency" : "EUR",
"revenue_value" : 0,
"id" : 123456,
"state" : "active",
"priority" : 19,
"end_date" : "2019-12-31 23:59:59",
"profile_id" : 6,
"name" : "lightning battery horse staple",
"member_id" : 1234
},
"competing_impressions" : 88514063
}
]
}
}
Ejemplo de GDALI: comprobación de la contención del inventario de GDALI con divisiones
Para ver una previsión de contención de inventario entre divisiones en función de la configuración de destino propuesta, cree un archivo JSON con el formato que se muestra a continuación:
{
"line_item": {
"ad_types": [
"banner"
],
"start_date": "2022-04-28 00:00:00",
"end_date": "2022-05-01 23:59:59",
"profile": {
"country_targets": [
{
"id": 123,
"action": "include",
}
],
"size_targets": {
"width": 190,
"height": 213
},
{
"width": 728,
"height": 90
},
"id": null,
"advertiser_id": 5878213,
"graph_id": null
},
"creatives": [],
"roadblock": null
},
"splits": [
{
"id": 111111111,
"conditions": []
"is_default": false,
"active": true,
"order": 1,
"name": "Name1",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 222222222,
"conditions": []
"is_default": false,
"active": true,
"order": 2,
"name": "Name2",
"allocation_strategy": "unconstrained",
"creatives": []
},
{
"id": 333333333,
"is_default": true,
"active": false,
"order": 5,
"name": "Default",
"allocation_strategy": "unconstrained",
"creatives": []
}
]
}
A continuación, POST
se le mostrará al servicio de la siguiente manera:
curl --silent -b cookies -X POST -d '/tmp/forecast-contention-multi.json' "https://api.appnexus.com/forecast-contention-multi"
Volverá a obtener JSON en el formato siguiente:
{
"response" : {
"num_elements" : 100,
"count" : 2,
"start_element" : 0,
"status" : "OK",
"contention" : [
{
"competing_impressions" : 25083480,
"line_item" : {
"status" : "live",
"advertiser_id" : 123456,
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"profile_id" : 50058150,
"member_id" : 1234,
"name" : "carrot juice airplane",
"delivery_goal" : {
"reserved" : true,
"type" : "percentage",
"disallow_non_guaranteed" : true,
"percentage" : 100
},
"id" : 123457,
"revenue_value" : 0,
"currency" : "EUR",
"priority" : 19,
"state" : "active",
"end_date" : "2019-12-31 23:59:59"
}
},
{
"line_item" : {
"start_date" : "2019-01-19 00:00:00",
"revenue_type" : "cpm",
"status" : "live",
"advertiser_id" : 123456,
"delivery_goal" : {
"reserved" : true,
"percentage" : 100,
"type" : "percentage",
"disallow_non_guaranteed" : true
},
"currency" : "EUR",
"revenue_value" : 0,
"id" : 123456,
"state" : "active",
"priority" : 19,
"end_date" : "2019-12-31 23:59:59",
"profile_id" : 6,
"name" : "lightning battery horse staple",
"member_id" : 1234
},
"competing_impressions" : 88514063
}
]
}
}