Microsoft Monetize ad server for Programmatic Guaranteed deal
La configuración de una implementación de API para una oferta garantizada mediante programación (PG) a través de Microsoft Monetize Ad Server requiere la configuración de una serie de propiedades diferentes en diferentes objetos de API. En esta guía se explica el proceso de creación y configuración de una oferta de PG mediante nuestra API.
Información general
Las ofertas de PG son una característica eficaz que permite a los clientes de red y editor dar un mejor soporte a sus compradores proporcionando herramientas de compra preempaquetadas y fáciles de usar para ofertas de precio fijo.
La configuración de una oferta de PG implica realizar solicitudes a los siguientes puntos de conexión de servicio de API para acceder a los objetos de API correspondientes o crear ellos:
Punto de conexión de API | Api (objeto) | Referencia detallada |
---|---|---|
https://api.appnexus.com/advertiser | anunciante | Servicio de anunciantes |
https://api.appnexus.com/insertion-order | orden de inserción | Servicio de pedido de inserción |
https://api.appnexus.com/deal | trato | Deal Service |
https://api.appnexus.com/profile | perfil | Servicio de perfil |
https://api.appnexus.com/line-item | elemento de línea (ALI) | Elemento de línea: servicio ALI |
En esta guía se usan ejemplos de cURL para todas las solicitudes. Puede usar otras herramientas de solicitud de API (por ejemplo, Postman), pero tendrá que ajustar los ejemplos en consecuencia.
Requisitos previos
Antes de comenzar esta configuración, asegúrese de leer Introducción a la API. Proporciona información sobre entornos de prueba, restricciones de uso, semántica de API (comandos en ejecución, filtrado, ordenación, etc.) y procedimientos recomendados.
Orden de las operaciones
Los objetos de API suelen tener dependencias en otros objetos de API y hay un orden que debe seguir al crear o acceder a objetos al crear una oferta de PG. Por ejemplo, debe proporcionar los identificadores de los siguientes objetos de API: advertiser
, insertion-order
, deal
y profile
. Para obtener los identificadores de estos objetos, deberá crearlos o ya tener acceso a ellos. Los pasos de esta guía siguen el orden típico de las operaciones necesarias para crear una oferta de PG.
Procedimientos recomendados
Para obtener una lista general de los procedimientos recomendados que se deben seguir al trabajar con la API, consulte Procedimientos recomendados de API. A continuación se muestran algunos procedimientos recomendados que son específicos de una configuración de artículo de línea de oferta:
- Establezca el
state
campo del elemento"inactive"
de línea de oferta en hasta que el elemento de línea esté totalmente configurado y listo para pruebas. - Tenga en cuenta el identificador de los objetos que cree. Los identificadores de objetos creados se devuelven en el cuerpo de respuesta de las solicitudes. A menudo necesitará estos identificadores más adelante, por lo que copiarlos cuando se devuelvan puede reducir el número de solicitudes adicionales
GET
que tiene que realizar para obtenerlos.
Procedimiento de instalación
Los pasos siguientes le guiarán a través del proceso de configuración de un elemento de línea de oferta con configuraciones típicas:
- Paso 1: Obtención de un token de autorización
- Paso 2: Creación o acceso a un anunciante
- Paso 3: Creación o acceso a un orden de inserción para PG
- Paso 4: Creación de una oferta de PG
- Paso 5: Creación de un perfil de elemento de línea de oferta PG
- Paso 6: Creación de un elemento de línea de oferta PG
Paso 1: Obtener un token de autorización
En primer lugar, tendrá que obtener un token de autorización. A continuación, debe incluir este token de autorización en todas las solicitudes posteriores. Para obtener más información, vea Servicio de autenticación. Para obtener un token de autorización, haga lo siguiente:
Cree un archivo JSON que contenga el nombre de usuario y la contraseña.
{ "auth": { "username" : "USERNAME", "password" : "PASSWORD" } }
Realice una
POST
solicitud al punto de/auth
conexión con este archivo JSON en el cuerpo de la solicitud. Para obtener más información, vea Servicio de autenticación. En la solicitud cURL siguiente, el token de autorización devuelto se almacena en el archivo "cookies
".curl -c cookies -X POST -d @authentication.json 'https://api.appnexus.com/auth'
Compruebe el cuerpo de la respuesta de la solicitud (consulte Ejemplo de respuesta a continuación). Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y el campo "token
" se rellenará con el valor del token de autenticación.
Respuesta de ejemplo{ "response" : { "token" : "authn:225692:2d787d1838283:lax1", "status" : "OK" } }
Paso 2: Crear o acceder a un anunciante
Tendrá que crear o acceder a un anunciante desde el que crear un artículo de línea de oferta. En el caso de los artículos de línea de oferta, los anunciantes se configuran de la misma manera que los artículos de línea aumentadas.
Si aún no tiene un anunciante que usar, cree un anunciante haciendo lo siguiente (para obtener más información, consulte Servicio de anunciantes):
Cree un JSON de anunciante:
$ cat advertiser.json { "advertiser": { "name": "Deal Line Item Example Advertiser", "timezone": "US/Pacific" } }
Realice una
POST
solicitud al punto de https://api.appnexus.com/advertiser conexión con este JSON del anunciante y un valor adecuadomember_id
.curl -b cookies -c cookies -X POST -d @advertiser.json 'https://api.appnexus.com/advertiser?member_id=2378'
Compruebe el cuerpo de la respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y verá las actualizaciones que realizó.Anote el id. del anunciante en el cuerpo de la respuesta para que pueda usarlo al crear el elemento de línea de la oferta en Paso 6: Crear un elemento de línea de oferta.
Campos JSON para anunciante (campos opcionales necesarios y útiles)
Campo | Tipo | Obligatorio u opcional | Descripción |
---|---|---|---|
name |
string | Obligatorio | Nombre del anunciante |
timezone |
enumeración | Opcional | La zona horaria del anunciante. Para más información y valores aceptados, consulte Zonas horarias de API. |
use_insertion_orders |
booleano | Obligatorio | Este campo debe establecerse true en para crear elementos de línea de transacción. |
Paso 3: Crear o acceder a un orden de inserción para PG
Tendrá que crear o acceder a una orden de inserción para crear una oferta de PG. Los elementos de línea de transacción requieren un orden de inserción sin problemas (vea los campos obligatorios a continuación).
Si aún no tiene un orden de inserción que usar, cree un pedido de inserción haciendo lo siguiente (para obtener más información, vea Servicio de pedido de inserción):
Cree un json de orden de inserción (a continuación se muestran dos ejemplos):
JSON de ejemplo: sin fecha de finalización, presupuesto ilimitado
$ cat insertion-order-noenddate.json { "insertion-order": { "name": "PG Deal Example IO", "state": "active", "budget_intervals": [{ "start_date": "2022-10-10 00:00:00", "end_date": null, "daily_budget": null, "daily_budget_imps": null, "enable_pacing": true, "lifetime_budget": null, "lifetime_budget_imps": null }], "budget_type": "impression" } }
Realice una
POST
solicitud al punto de https://api.appnexus.com/insertion-order conexión con este json de orden de inserción y un valor adecuadoadvertiser_id
ymember_id
.Solicitud de ejemplo: sin fecha de finalización, presupuesto ilimitado
curl -b cookies -c cookies -X POST -d @insertion-order-noenddate.json 'https://api.appnexus.com/insertion-order?advertiser_id=2605036&member_id=2378'
Compruebe el cuerpo de la respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y verá las actualizaciones que realizó.Tenga en cuenta el identificador del pedido de inserción en el cuerpo de la respuesta para que pueda usarlo al crear el elemento de línea de la oferta PG en paso 6: crear un elemento de línea de oferta.
Campos JSON para el orden de inserción sin problemas (campos opcionales necesarios y útiles)
Campo | Tipo | Obligatorio u opcional | Descripción |
---|---|---|---|
name |
string | Obligatorio | Nombre del orden de inserción |
state |
enumeración | Obligatorio | Estado del orden de inserción: active o inactive |
budget_intervals (Períodos de facturación) |
matriz de objetos | Obligatorio | Para crear un orden de inserción para una oferta de PG a través de la API, para que sea sin problemas, debe usar el budget_intervals campo . Los siguientes objetos de matriz deben establecerse en los siguientes valores:- "end_date":
null
- "lifetime_budget":
null
- "lifetime_budget_imps":
null
- "daily_budget":
null
- "daily_budget_imps":
null
- "enable_pacing":
false
- "lifetime_pacing":
false
- "lifetime_pacing_pct":
null
|
budget_type |
enumeración | Obligatorio | El tipo de presupuesto se traducirá a todas las ofertas por debajo del orden de inserción. En el caso de las ofertas pg, el budget_type campo se puede establecer en cualquiera de los siguientes valores: "impression" o "flexible" . Si selecciona un tipo de presupuesto de impresión para el pedido de inserción, no puede tener posiciones de línea de transacción con un presupuesto de ingresos asociado a ese pedido de inserción. Sin embargo, los pedidos de inserción con "flexible" tipos de presupuesto pueden tener posiciones de línea de transacción con tipos de presupuesto de impresión o ingresos. |
pacing |
Obligatorio |
Paso 4: Crear una oferta de PG
Tendrá que crear la oferta que desea asociar con el elemento de línea de trato PG.
Para crear una oferta, haga lo siguiente (para obtener más información, consulte Deal Service):
Creación de un JSON de oferta:
$ cat deal.json { "deal": { "name": "Deal Line Item Example Deal", "buyer": { "id": 2379 }, "version": 2 } }
Realice una
POST
solicitud al punto de https://api.appnexus.com/deal conexión con este JSON de la oferta y un valor adecuadomember_id
.curl -b cookies -c cookies -X POST -d @deal.json 'https://api.appnexus.com/deal?member_id=2378'
Compruebe el cuerpo de la respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y verá las actualizaciones que realizó.Anote el identificador de la oferta en el cuerpo de la respuesta para que pueda usarlo al crear el elemento de línea de transacción en Paso 6: Crear un elemento de línea de oferta.
Campos JSON para la oferta
Campo | Tipo | Obligatorio u opcional | Descripción |
---|---|---|---|
name |
string | Obligatorio | Nombre de la oferta. (Nota: El comprador verá este nombre). |
active |
Booleano | Opcional | Estado del orden de inserción: true o false . El valor predeterminado de este campo es true . |
buyer |
objeto | Obligatorio, si no se usa el buyer_seats campo |
El postor de compra y el miembro que puede dirigirse a esta oferta. Una oferta solo usará el buyer campo o el buyer_seats campo, no ambos. Para obtener más información, consulte la sección "Comprador" en el Servicio de oferta.Nota: Las ofertas de PG solo pueden tener un comprador. Advertencia: Estamos planeando dejar de usar el buyer campo. Esté preparado para usar "buyer_seats" campos o "buyer_members" en el futuro. |
buyer_seats |
objeto | Obligatorio, si no se usa el buyer campo |
El postor de compra y el puesto que pueden dirigirse a esta oferta. Una oferta solo usará el campo comprador o el buyer_seats campo, no ambos. Para obtener más información, consulte la sección "Asientos de comprador" en el Servicio de oferta. |
version |
Entero | Obligatorio | Este campo debe establecerse en "2" . |
auction_type |
objeto | Obligatorio | Los campos de este objeto deben establecerse en consecuencia para una transacción PG: - "id":
3
- "name":
"Fixed Price"
Nota: Este campo debe establecerse al crearse, pero no se usa en los artículos de línea de transacción. No se actualizará si el elemento de línea está actualizado y en la subasta; solo se tienen en cuenta los valores de los elementos de línea. |
type |
objeto | Obligatorio | Los campos de este objeto deben establecerse en consecuencia para una transacción PG: - "id":
4
- "name":
"Programmatic Guaranteed"
|
ask_price |
double | Obligatorio | Este es el precio mostrado al comprador. Es el mínimo que deben pujar para competir por el inventario. |
currency |
enumeración | Obligatorio | Moneda de floor_price . Para obtener una lista completa de las monedas disponibles, use el servicio de moneda de solo lectura. El valor predeterminado de este campo es "USD" . |
use_deal_floor |
Booleano | Obligatorio | Este campo debe establecerse en true . Cuando este campo se establece en true , se aplica para floor_price la oferta. Cuando use_deal_floor es true , el precio mínimo de la oferta invalida cualquier otro piso que pueda tener, por ejemplo, en los perfiles de colocación o de administración de rendimiento.Nota: A partir de 2017, solo ask_price se usa. La API POST y PUT las llamadas que hacen floor_price referencia a y use_deal_floor funcionarán de la siguiente manera:- Si la llamada API solo incluye ask_price , este es el valor que se usará.- Si la llamada API solo incluye un floor_price valor, este valor se convertirá en el ask_price valor . |
Campos JSON opcionales útiles
Campos JSON para las creatividades permitidas
Marca (consulte Servicio de marca)
Campo | Tipo | Descripción |
---|---|---|
brand_restrict |
booleano |
-
true : la oferta solo está restringida a las marcas enumeradas.- false : otras marcas pueden servir. |
brands |
matriz de objetos | Matriz de marcas aptas. |
id |
Entero | Campo dentro de brands : id. de la marca que es apta para la oferta. |
name |
string | Campo dentro de brands : nombre de la marca que es apta para la oferta. |
override |
booleano | Campo dentro de brands : establézcalo true en para permitir que una marca específica sirva para una oferta, incluso si el perfil de calidad del anuncio lo hubiera bloqueado. |
Ejemplo de marca
"brand_restrict": true,
"brands": [
{
"id": 2,
"name": "1800Flowers",
"override": true
},
{
"id": 4,
"name": "Acura",
"override": false
}
]
Idioma (consulte Language Service)
Campo | Tipo | Descripción |
---|---|---|
language_restrict |
booleano |
-
true : la oferta solo está restringida a los idiomas enumerados.- false : se permite la prestación de servicios a otros idiomas. |
languages |
matriz de objetos | Matriz de idiomas aptos. |
id |
Entero | Campo dentro de languages : identificador del idioma que es apto para la oferta. |
name |
string | Campo dentro de languages : nombre del idioma que es apto para la oferta. |
override |
booleano | Campo dentro de languages : establézcalo true en para permitir que un idioma específico sirva para una oferta, incluso si el perfil de calidad del anuncio lo hubiera bloqueado. |
Ejemplo de lenguaje
"language_restrict": true,
"languages": [
{
"id": 1,
"name": "English",
"override": false
},
{
"id": 2,
"name": "Chinese",
"override": true
}
]
Nivel de confianza
Campo | Tipo | Descripción |
---|---|---|
audit_status_option |
string | Especifica cómo controla la oferta las creatividades. - max_trust : máximo: no se aplicará ninguna restricción de perfil de anuncio a esta oferta.- provisional : permitir creatividades pendientes: las creatividades en "pending" estado de auditoría servirán. Una vez auditadas estas creatividades, se usa la configuración de calidad de anuncios existente.- none : predeterminado: los creativos usan la configuración de calidad de anuncios existente. |
Ejemplo de nivel de confianza
"audit_status_option": "max_trust"
Categoría creativa
Campo | Tipo | Descripción |
---|---|---|
category_restrict |
booleano | Especifica si la oferta está restringida solo a las categorías enumeradas en el objeto categories (consulte Deal Service). - true : la oferta solo está restringida a las categorías enumeradas.- false : también se permite que otras categorías sirvan. |
categories |
matriz de objetos | Categorías que describen las creatividades que son aptas para la oferta. |
id |
Entero | Campo dentro de categories : id. de la categoría que es apta para la oferta. |
name |
string | Campo dentro de categories : nombre de la categoría que es apta para la oferta. |
override |
booleano | Campo dentro de categories : establézcalo true en para permitir que una categoría sirva para una oferta, incluso si el perfil de calidad del anuncio lo hubiera bloqueado. |
Ejemplo de categoría creativa
"categories": [
{
"id": 1,
"name": "Airlines",
"override": false
},
{
"id": 2,
"name": "Apparel",
"override": true
}
],
"category_restrict": true
Creatividades específicas
Campo | Tipo | Descripción |
---|---|---|
creatives |
matriz de objetos | Una lista de creativos que están específicamente aprobados o prohibidos para la oferta. Esta lista invalida cualquier otra configuración de calidad de anuncio. |
id |
Entero | Campo dentro creatives de : identificador de la creatividad que está aprobada o prohibida para la oferta. |
status |
string | Campo dentro de creatives : especifica cómo se controlará esta creatividad para esta oferta.- approved : esta creatividad siempre puede servir en esta oferta, independientemente de cualquier otra configuración o invalidación de calidad de anuncios.- banned : esta creatividad nunca puede servir en esta oferta, independientemente de cualquier otra configuración o invalidación de calidad de anuncios. |
Ejemplo de creatividades específicas
"creatives": [
{
"id": 161501729,
"status": "banned"
},
{
"id": 161501882,
"status": "approved"
}
]
Tipo de medio (consulte Servicio de subtipos multimedia y Servicio de tipos de medios)
Campo | Tipo | Descripción |
---|---|---|
allowed_media_subtypes |
matriz de objetos | Subtipos multimedia permitidos para la oferta. |
id |
Entero | Campo dentro de allowed_media_subtypes : el identificador del subtipo multimedia permitido para la oferta. |
allowed_media_types |
matriz de objetos | Los tipos de medios permitidos para la oferta. |
id |
Entero | Campo dentro de allowed_media_types :El identificador del tipo de medio permitido para la oferta. |
Ejemplo de tipo de medio
"allowed_media_subtypes": [
{
"id": 2,
"last_modified": "2015-09-17 19:19:21",
"media_type": {
"id": 2,
"media_type_group_id": 2,
"name": "Pop",
"uses_sizes": "sometimes"
},
"name": "Popup",
"native_assets": null,
"permitted_sizes": null
}
],
"allowed_media_types": [
{
"id": 1,
"last_modified": "2012-03-16 21:36:10",
"media_type_group_id": 1,
"name": "Banner",
"uses_sizes": "always"
},
{
"id": 4,
"last_modified": "2016-08-22 16:23:12",
"media_type_group_id": 1,
"name": "Video",
"uses_sizes": "never"
}
]
Atributos técnicos (consulte Servicio de atributos técnicos)
Campo | Tipo | Descripción |
---|---|---|
technical_attribute_restrict |
booleano | Especifica si la oferta solo está restringida a los atributos técnicos enumerados en el technical_attributes objeto .- true : la oferta solo está restringida a los atributos técnicos enumerados.- false : también se permite que otros atributos técnicos sirvan. |
technical_attributes |
matriz de objetos | Los atributos técnicos de los creativos que son aptos para la oferta. |
id |
Entero | Campo dentro de technical_attributes :El identificador del atributo técnico que es apto para la oferta. |
override |
booleano | Campo dentro de technical_attributes : establézcalo true en para permitir que un atributo técnico sirva para una oferta, incluso si el perfil de calidad del anuncio lo hubiera bloqueado. |
Ejemplo de atributos técnicos
"technical_attribute_restrict": false,
"technical_attributes": [
{
"id": 1,
"name": "Image",
"override": true
}
]
Campos JSON para la protección de datos de la oferta (consulte Servicio de perfil de visibilidad)
Advertencia
Esta característica beta no está disponible para todos los clientes. Póngase en contacto con el administrador de cuentas para analizar si tiene un caso de uso.
Id. de usuario y id. de dispositivo
Campo | Tipo | Descripción |
---|---|---|
expose_device_id_default |
booleano | Si true es , los identificadores de dispositivo proporcionados por el publicador se pasan en las solicitudes de puja. |
expose_user_id_default |
booleano | Si true es , los identificadores de usuario proporcionados por el publicador se pasan en las solicitudes de puja. |
name |
string | Nombre del perfil de visibilidad. |
Ejemplo de id. de usuario y id. de dispositivo de protección
Paso 1: Crear un perfil de visibilidad
> cat visibility_profile.json
{
"visibility-profile": {
"expose_device_id_default": false,
"expose_user_id_default": false,
"name": "Deal Visibility Profile"
}
}
> curl -b cookies -c cookies -X POST -d @visibility_profile.json 'https://api.appnexus.com/visibility-profile?member_id=2378'
Paso 2: Asociar el perfil de visibilidad a la oferta y habilitar la protección de datos
> cat deal_data_protection.json
{
"deal": {
"visibility_profile_id": 29657,
"data_protected": true
}
}
> curl -b cookies -c cookies -X PUT -d @deal_data_protection.json 'https://api.appnexus.com/deal?id=549271'
Dirección IP
Campo | Tipo | Descripción |
---|---|---|
expose_ip_default |
booleano | Si true es , las direcciones IP proporcionadas por el publicador se pasan en las solicitudes de puja. |
ip_exposure_default |
enumeración | Visibilidad de las direcciones IP en las solicitudes de puja. |
name |
string | Nombre del perfil de visibilidad. |
Ejemplo de dirección IP de protección
Paso 1: Crear un perfil de visibilidad
> cat visibility_profile.json
{
"visibility-profile": {
"expose_ip_default": false,
"ip_exposure_default": "truncated",
"name": "Deal Visibility Profile - Hidden"
}
}
> curl -b cookies -c cookies -X POST -d @visibility_profile.json 'https://api.appnexus.com/visibility-profile?member_id=2378'
Paso 2: Asociar el perfil de visibilidad a la oferta y habilitar la protección de datos
> cat deal_data_protection.json
{
"deal": {
"visibility_profile_id": 29657,
"data_protected": true
}
}
> curl -b cookies -c cookies -X PUT -d @deal_data_protection.json 'https://api.appnexus.com/deal?id=549271'
URL
Campo | Tipo | Descripción |
---|---|---|
url_exposure_default |
enumeración | Visibilidad de las direcciones URL de inventario en las solicitudes de puja. Posibles valores: - full : las direcciones URL completas se pasan en las solicitudes de puja.- domain : solo se pasan dominios de direcciones URL en las solicitudes de puja.- hidden : las direcciones URL no se pasan en las solicitudes de puja. |
Ejemplo de protección de dominio
Paso 1: Crear un perfil de visibilidad
> cat visibility_profile.json
{
"visibility-profile": {
"name": "Deal Visibility Profile - Hidden",
"url_exposure_default": "hidden"
}
}
> curl -b cookies -c cookies -X POST -d @visibility_profile.json 'https://api.appnexus.com/visibility-profile?member_id=2378'
Paso 2: Asociar el perfil de visibilidad a la oferta y habilitar la protección de datos
> cat deal_data_protection.json
{
"deal": {
"visibility_profile_id": 29657,
"data_protected": true
}
}
> curl -b cookies -c cookies -X PUT -d @deal_data_protection.json 'https://api.appnexus.com/deal?id=549271'
Agregar al segmento (consulte Servicio de oferta)
Campo | Tipo | Descripción |
---|---|---|
allow_creative_add_on_view |
booleano | Establézcalo false para impedir que los compradores agreguen usuarios a segmentos a la vista. |
allow_creative_add_on_click |
booleano | Establezca esta opción false para impedir que los compradores agreguen usuarios a segmentos al hacer clic. |
Impedir agregar al segmento al hacer clic o ver ejemplo
> cat add_segment.json
{
"deal": {
"allow_creative_add_on_click": false,
"allow_creative_add_on_view": false
}
}
> curl -b cookies -c cookies -X PUT -d @add_segment.json 'https://api.appnexus.com/deal?id=123456'
Paso 5: Crear un perfil de elemento de línea de oferta
A continuación, cree un perfil de elemento de línea de oferta para usarlo en la segmentación con el elemento de línea de oferta. Asegúrese de anotar el identificador de este perfil para su uso posterior. Para obtener más información, vea Servicio de perfiles.
Para crear un perfil de elemento de línea de oferta PG, haga lo siguiente (para obtener más información, consulte Servicio de perfiles):
Cree un json de perfil de elemento de línea de oferta PG:
Ejemplo: Creación de perfiles con límites de país, frecuencia y recencia y umbrales de velocidad de visualización/finalización
$ cat profile.json { "profile": { "country_action": "include", "country_targets": [{ "active": true, "code": "US", "id": 233, "name": "United States" }], "engagement_rate_targets": [{ "engagement_rate_pct": 25, "engagement_rate_type": "video_completion" }, { "engagement_rate_pct": 50, "engagement_rate_type": "predicted_iab_video_view_rate" } ], "max_day_imps": 10, "min_minutes_per_imp": 300 } }
Ejemplo: Creación de perfiles sin segmentación
> cat profile.json { "profile": { } }
Realice una
POST
solicitud al punto de https://api.appnexus.com/profile conexión con este json de perfil de oferta y un valor adecuadoadvertiser_id
.Ejemplo: Creación de perfiles con límites de país, frecuencia y recencia y umbrales de velocidad de visualización/finalización
> curl -b cookies -c cookies -X POST -d @profile.json 'https://api.appnexus.com/profile?advertiser_id=3410892&member_id=2378'
Ejemplo: Creación de perfiles sin segmentación
> curl -b cookies -c cookies -X POST -d @profile.json 'https://api.appnexus.com/profile?advertiser_id=3410892&member_id=2378'
Compruebe el cuerpo de la respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y verá las actualizaciones que realizó.Anote el identificador de perfil en el cuerpo de la respuesta para que pueda usarlo al crear el elemento de línea de la oferta PG en Paso 6: Crear un elemento de línea de trato PG.
Campos JSON opcionales para el perfil de elemento de línea de oferta
Hay muchos campos opcionales disponibles en el perfil de elemento de línea de oferta para establecer como destino el elemento de línea de oferta. Por ejemplo, puede dirigirse a propiedades asociadas con inventario, tipos de inventario, listas de permitidos, listas de bloqueos, tipos de dispositivos, etc. Para obtener más información sobre los campos disponibles, consulte el Servicio de perfiles.
Paso 6: Crear un elemento de línea de oferta PG
Por último, tendrá que crear el elemento de línea de la oferta para asociar el identificador de la oferta y el perfil de artículo de línea de oferta que creó en paso 5: Creación de un perfil de línea de trato PG.
Para crear un elemento de línea de oferta PG, haga lo siguiente (para obtener más información, vea Servicio de artículos de línea):
Cree un json de elemento de línea de oferta (necesitará un identificador de anunciante, un identificador de pedido de inserción, un identificador de transacción y un identificador de perfil).
JSON de ejemplo: Elemento de línea de transacción PG sin presupuesto
> cat deal_line_item.json { "line-item": { "ad_types": ["banner"], "auction_event": { "kpi_auction_type_id": 1, "payment_auction_type_id": 1, "revenue_auction_type_id": 1 }, "bid_object_type": "deal", "budget_intervals": [{ "start_date": "2022-08-11 12:00:00" }], "deals": [{ "id": 618159 }], "insertion_orders": [{ "id": 1363850 }], "line_item_type": "standard_v2", "name": "Deal Line Item Example Line Item", "revenue_type": "cpm", "revenue_value": "5", "supply_strategies": { "managed": true, "rtb": false, "programmatic_guaranteed": false }, "profile_id": 112548354, "valuation": { "min_revenue_value": null } } }
JSON de ejemplo: presupuesto de impresiones de duración de artículos de línea de trato PG
> cat deal_line_item_lifetime.json { "line-item": { "ad_types": ["banner"], "auction_event": { "kpi_auction_type_id": 1, "payment_auction_type_id": 1, "revenue_auction_type_id": 1 }, "bid_object_type": "deal", "budget_intervals": [ { "end_date": "2022-10-18 23:59:59", "lifetime_budget_imps": 2586, "start_date": "2022-10-11 12:00:00", "timezone": "US/Pacific" } ], "deals": [{ "id": 618159 }], "insertion_orders": [{ "id": 1363850 }], "line_item_type": "standard_v2", "name": "Deal Line Item Example Line Item", "revenue_type": "cpm", "revenue_value": "5", "supply_strategies": { "managed": true, "rtb": false, "programmatic_guaranteed": false }, "profile_id": 112548354, "valuation": { "min_revenue_value": null } } }
Realice una
POST
solicitud al punto de https://api.appnexus.com/line-item conexión con este elemento de línea de oferta JSON y un elemento y adecuadosadvertiser_id
member_id
.Solicitud de ejemplo: artículo de línea de oferta sin presupuesto
> curl -b cookies -c cookies -X POST -d @deal_line_item.json 'https://api.appnexus.com/line-item?member_id=2378&advertiser_id=3410892'
Solicitud de ejemplo: Presupuesto de impresiones de duración del artículo de línea de oferta
> curl -b cookies -c cookies -X POST -d @deal_line_item_lifetime.json 'https://api.appnexus.com/line-item?member_id=2378&advertiser_id=3410892'
Solicitud de ejemplo: Presupuesto diario de ingresos de artículo de línea de oferta
> curl -b cookies -c cookies -X POST -d @deal_line_item_daily.json 'https://api.appnexus.com/line-item?member_id=2378&advertiser_id=3410892'
Compruebe el cuerpo de la respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status
" de "OK
" y verá las actualizaciones que realizó.Anote el identificador de elemento de línea en el cuerpo de la respuesta para que pueda identificar este elemento de línea de transacción más adelante para cambiar su
state
(active
oinactive
) o modificarlo.
Campos JSON para el elemento de línea de oferta
Campo | Tipo | Obligatorio u opcional | Descripción |
---|---|---|---|
advertiser_id |
Entero | Obligatorio | Identificador del anunciante al que pertenece el elemento de línea. |
insertion_orders |
matriz | Obligatorio | Matriz que contiene el identificador de pedido de inserción al que desea asociar este elemento de línea de oferta. Nota: Los elementos de línea de trato PG solo pueden usar un único pedido de inserción. |
name |
string | Obligatorio | Nombre del artículo de línea de la oferta (nota: el comprador no verá esto) |
state |
enumeración | Obligatorio | Estado del elemento de línea de la oferta PG. El valor predeterminado es active , por lo que se establece en inactive si no desea que la oferta se produzca inmediatamente. |
priority |
Entero | Obligatorio | Establezca el valor de este campo en "5" para una oferta de PG. |
ad_types |
matriz | Obligatorio | Tipo de creatividad que se usa para este elemento de línea de oferta. Posibles valores:"banner" Nota: Actualmente, solo puede usar creatividades de banner (display) para ofertas de PG para SSP (destino y ritmo del servidor de anuncios de terceros). |
line_item_type |
enumeración | Obligatorio | Debe establecerse en "standard_v2" para crear un elemento de línea de trato PG. |
profile_id |
Entero | Obligatorio | Id. de perfil asociado al elemento de línea de oferta (Paso 5: Crear un perfil de elemento de línea de oferta). |
budget_intervals |
matriz de objetos | Obligatorio | Incluya siempre un objeto start_date . Déjelo end_date como null para un artículo de línea de trato PG sin fin. Este es un ejemplo de una configuración de matriz de intervalos de presupuesto. |
deals |
matriz de objetos | Obligatorio | El id campo dentro de las ofertas debe ser el identificador de la oferta que creó en paso 4: Creación de una oferta.Nota: Solo se puede insertar un identificador de trato PG. |
supply_strategies |
objeto | Obligatorio | Objeto que contiene varios campos booleanos que se usan para designar los orígenes de suministro de inventario a los que desea dirigirse. Este objeto debe tener los siguientes campos y valores establecidos para una transacción PG: - "managed" : true - "rtb" : false - "deals" : false - "programmatic_guaranteed" : false |
revenue_type |
enumeración | Obligatorio | Establezca este campo en "cpm" para una oferta de PG. |
revenue_value |
double | Obligatorio | Establezca este campo en "5" para una oferta de PG. |
auction_event |
objeto | Obligatorio | Para una operación PG, los campos y los valores del auction_event objeto deben establecerse de esta manera. |
valuation |
objeto | Obligatorio | Debe establecer este objeto min_revenue_value null en para una oferta de PG. |
bid_object_type |
enumeración | Obligatorio | Debe establecerse en "deal" para un elemento de línea de trato PG. |
delivery_goal |
enumeración | Obligatorio | Para una oferta de PG, establezca este campo en null . |
delivery_model_type |
enumeración | Obligatorio | Establezca el valor de este campo en "guaranteed" . |
line_item_subtype |
enumeración | Obligatorio | Establezca el valor de este campo en "pg_deal_3p_pacing" . |
budget_intervals
ejemplo
"budget_intervals": [
{
"id": 18770835,
"object_id": 18601984,
"object_type": "campaign_group",
"start_date": "2022-08-08 00:00:00",
"end_date": "2022-08-17 23:59:59",
"timezone": "Europe/Paris",
"code": null,
"parent_interval_id": null,
"creatives": null,
"subflights": null,
"lifetime_budget": null,
"lifetime_budget_imps": 100,
"lifetime_pacing": false,
"enable_pacing": true,
"daily_budget_imps": null,
"lifetime_pacing_pct": 105,
"daily_budget": null,
"daily_budget_imps_opt": null,
"daily_budget_opt": null,
"underspend_rollover_state": false
}
]
auction_event
ejemplo
"auction_event": {
"payment_auction_event_type_code": "impression",
"payment_auction_event_type": "impression",
"payment_auction_type_id": 1,
"revenue_auction_event_type_code": "impression",
"revenue_auction_event_type": "impression",
"revenue_auction_type_id": 1,
"kpi_auction_event_type_code": "impression",
"kpi_auction_event_type": "impression",
"kpi_auction_type_id": 1,
"kpi_value_type": null,
"kpi_value": null
}
Campos JSON opcionales útiles para el elemento de línea de oferta
Campo | Tipo | Descripción |
---|---|---|
budget_intervals |
matriz de objetos | Establezca un presupuesto en la oferta mediante campos incluidos budget_intervals : daily_budget , daily_budget_imps , lifetime_budget o lifetime_budget_imps . Use los campos sin imp si la posición de línea de la oferta tiene el tipo de presupuesto de ingresos o los campos con _imp al final si la posición de línea de la oferta tiene una impresión de tipo de ingresos. Puede tener un presupuesto diario o de duración, no ambos. Un presupuesto de por vida que se encuentra entre vuelos termina dividiéndose en cada vuelo a través de la API. Recuerde que si la oferta no tiene fecha de finalización, no puede tener un presupuesto. |