Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La configuración de una implementación de API para una oferta de programación garantizada (PG) a través de Microsoft Monetize Ad Server requiere configurar una serie de propiedades diferentes en diferentes objetos de API. Esta guía explicará el proceso de creación y configuración de una oferta de PG utilizando nuestra API.
Información general
Las ofertas PG son una característica poderosa que permite a los clientes de redes y editores brindar un mejor soporte a sus compradores al proporcionar 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 finales de servicio de API para acceder o crear los objetos de API correspondientes:
| Punto de conexión de API | Objeto de API | Referencia detallada |
|---|---|---|
| https://api.appnexus.com/advertiser | Anunciante | Servicio de anunciantes |
| https://api.appnexus.com/insertion-order | orden de inserción | Servicio de órdenes de inserción |
| https://api.appnexus.com/deal | oferta | Servicio de oferta |
| https://api.appnexus.com/profile | perfil | Servicio de perfiles |
| https://api.appnexus.com/line-item | línea de pedido (ALI) | Partida - Servicio ALI |
Esta guía usa ejemplos de cURL para todas las solicitudes. Puede usar otras herramientas de solicitud de API (por ejemplo, Postman), pero luego tendrá que ajustar los ejemplos en consecuencia.
Requisitos previos
Antes de comenzar esta configuración, asegúrese de leer la API de Introducción. Proporciona información sobre entornos de prueba, restricciones de uso, semántica de API (ejecución de comandos, filtrado, ordenación, etc.) y prácticas recomendadas.
Orden de las operaciones
Los objetos API a menudo tienen dependencias sobre otros objetos API y hay un orden que debe seguir al crear o acceder a objetos cuando crea una oferta PG. Por ejemplo, debe proporcionar los identificadores de los siguientes objetos de API: advertiser, insertion-order, dealy 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 operaciones necesarias para crear una oferta de PG.
Procedimientos recomendados
Para obtener una lista general de las mejores prácticas a seguir al trabajar con la API, consulte Mejores prácticas de API. Las siguientes son algunas de las mejores prácticas específicas de la configuración de una línea de pedido de trato:
- Establezca el
statecampo de la línea de pedido del negocio hasta que"inactive"la línea de pedido esté completamente configurada y lista para la prueba. - Anote el identificador de los objetos que cree. Los identificadores de los objetos que cree 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
GETque tiene que realizar para obtenerlos.
Procedimiento de instalación
Los siguientes pasos lo guiarán a través del proceso de configuración de una línea de negocio con configuraciones típicas:
- Paso 1: Obtener un token de autorización
- Paso 2: Crear un anunciante o acceder a él
- Paso 3: Crear una orden de inserción o acceder a ella para PG
- Paso 4: Crear una oferta de PG
- Paso 5: Crear un perfil de línea de pedido de oferta PG
- Paso 6: Crear una línea de pedido de oferta PG
Paso 1: Obtener un token de autorización
En primer lugar, deberá 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, consulte Servicio de autenticación. Para obtener un token de autorización, haga lo siguiente:
Cree un archivo JSON que contenga su nombre de usuario y contraseña.
{ "auth": { "username" : "USERNAME", "password" : "PASSWORD" } }Realice una
POSTsolicitud al/authpunto de conexión con este archivo JSON en el cuerpo de la solicitud. Para obtener más información, consulte 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 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.
Ejemplo de respuesta{ "response" : { "token" : "authn:225692:2d787d1838283:lax1", "status" : "OK" } }
Paso 2: Crear un anunciante o acceder a él
Tendrá que crear o acceder a un anunciante desde el que crear una línea de pedido de trato. Para las líneas de pedido de ofertas, los anunciantes se configuran de la misma manera que las líneas de pedido aumentadas.
Si aún no tienes un anunciante que usar, crea un anunciante mediante los siguientes pasos (para obtener más información, consulta Servicio de anunciantes):
Crear un JSON de anunciante:
$ cat advertiser.json { "advertiser": { "name": "Deal Line Item Example Advertiser", "timezone": "US/Pacific" } }Realice una
POSTsolicitud al https://api.appnexus.com/advertiser punto de conexión con este JSON de anunciante y unmember_idarchivo .curl -b cookies -c cookies -X POST -d @advertiser.json 'https://api.appnexus.com/advertiser?member_id=2378'Compruebe el cuerpo de respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status" de "OK" y verá las actualizaciones realizadas.Anota el id. del anunciante en el cuerpo de la respuesta para que puedas usarlo al crear la línea de negocio en el paso 6: Crear una línea de negocio de oferta.
Campos JSON para anunciantes (campos opcionales obligatorios y útiles)
| Campo | Tipo | Obligatorio u opcional | Descripción |
|---|---|---|---|
name |
string | Obligatorio | El nombre del anunciante |
timezone |
enumeración | Opcional | La zona horaria del anunciante. Para obtener detalles y valores aceptados, consulte Zonas horarias de API. |
use_insertion_orders |
booleano | Obligatorio | Este campo debe establecerse para true crear líneas de pedido de tratos. |
Paso 3: Crear una orden de inserción de PG o acceder a ella
Tendrás que crear una orden de inserción o acceder a ella para crear una oferta de PG. Las líneas de negocio requieren una orden de inserción fluida (consulta los campos obligatorios a continuación).
Si aún no tienes una orden de inserción para usar, crea una orden de inserción mediante los siguientes pasos (para obtener más información, consulta Servicio de órdenes de inserción):
Crear un JSON de la orden de inserción (a continuación se muestran dos ejemplos):
Ejemplo de JSON: 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
POSTsolicitud al https://api.appnexus.com/insertion-order punto de conexión con este JSON de orden de inserción y unadvertiser_idarchivo 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 respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status" de "OK" y verá las actualizaciones realizadas.Anota el ID de la orden de inserción en el cuerpo de la respuesta para que puedas usarlo al crear la línea de pedido de PG en el paso 6: Crear una línea de línea de trato.
Campos JSON para un orden de inserción sin interrupciones (campos opcionales obligatorios y útiles)
| Campo | Tipo | Obligatorio u opcional | Descripción |
|---|---|---|---|
name |
string | Obligatorio | El nombre de la orden de inserción |
state |
enumeración | Obligatorio | El estado de la orden de inserción: active o inactive |
budget_intervals(Períodos de facturación) |
matriz de objetos | Obligatorio | Para crear una orden de inserción para una oferta de PG a través de la API, para que sea fluida, debe usar el budget_intervals campo. Los siguientes objetos de matriz se deben establecer 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á en todos los tratos por debajo de la orden de inserción. Para las ofertas PG, el budget_type campo se puede establecer en cualquiera de los siguientes valores: "impression" o "flexible". Si seleccionas un tipo de presupuesto de impresiones para tu orden de inserción, no puedes tener partidas de negocios con un presupuesto de ingresos asociado a esa orden de inserción. Sin embargo, las órdenes de inserción con "flexible" tipos de presupuesto pueden tener líneas de negocio con tipos de presupuesto de impresiones o ingresos. |
pacing |
Obligatorio |
Paso 4: Crear una oferta de PG
Tendrás que crear la oferta que quieras asociar con la línea de pedido de oferta de PG.
Para crear una oferta, haga lo siguiente (para obtener más información, consulte Servicio de ofertas):
Crear una oferta JSON:
$ cat deal.json { "deal": { "name": "Deal Line Item Example Deal", "buyer": { "id": 2379 }, "version": 2 } }Realice una
POSTsolicitud al https://api.appnexus.com/deal punto de conexión con este JSON de oferta y unmember_idarchivo .curl -b cookies -c cookies -X POST -d @deal.json 'https://api.appnexus.com/deal?member_id=2378'Compruebe el cuerpo de respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status" de "OK" y verá las actualizaciones realizadas.Anota el ID del trato en el cuerpo de la respuesta para que puedas usarlo cuando crees el elemento de línea de negocio en el Paso 6: Crear un elemento de línea de trato.
Campos JSON para oferta
| Campo | Tipo | Obligatorio u opcional | Descripción |
|---|---|---|---|
name |
string | Obligatorio | El nombre del trato. (Nota: El comprador verá este nombre). |
active |
Booleano | Opcional | El estado de la orden de inserción: true o false. El valor predeterminado para este campo es true. |
buyer |
objeto | Obligatorio, si no se utiliza el buyer_seats campo |
El postor comprador y el miembro que puede apuntar a este trato. Un trato solo usará el buyer campo o el buyer_seats campo, no ambos. Para obtener más detalles, consulte la sección "Comprador" en el Servicio de ofertas.Nota: Las ofertas de PG solo pueden tener un comprador. Advertencia: Estamos planeando dejar de usar el buyer campo. Prepárese para usar cualquiera de los "buyer_seats" campos o "buyer_members" en el futuro. |
buyer_seats |
objeto | Obligatorio, si no se utiliza el buyer campo |
El postor comprador y el asiento que pueden apuntar a este acuerdo. Una oferta solo usará el campo comprador o el buyer_seats campo, no ambos. Para obtener más detalles, consulte la sección "Asientos del comprador" en el Servicio de ofertas. |
version |
Entero | Obligatorio | Este campo debe establecerse en "2". |
auction_type |
objeto | Obligatorio | Los campos de este objeto deben establecerse en consecuencia para una oferta PG: - "id":
3
- "name":
"Fixed Price"
Nota: Este campo debe establecerse en el momento de la creación, pero no se utiliza en las líneas de pedido de tratos. No se actualizará si el artículo de línea está actualizado y en la subasta; Solo se tienen en cuenta los valores de las líneas de pedido. |
type |
objeto | Obligatorio | Los campos de este objeto deben establecerse en consecuencia para una oferta PG: - "id":
4
- "name":
"Programmatic Guaranteed"
|
ask_price |
double | Obligatorio | Este es el precio que se muestra al comprador. Es lo mínimo que deben ofertar para competir por el inventario. |
currency |
enumeración | Obligatorio | La moneda del floor_pricearchivo . Para obtener una lista completa de las monedas disponibles, use el Servicio de moneda de solo lectura. El valor predeterminado para este campo es "USD". |
use_deal_floor |
Booleano | Obligatorio | Este campo debe establecerse en true. Cuando este campo se establece en true, se floor_price aplica para la oferta. Cuando use_deal_floor es true, el precio mínimo de la oferta anula cualquier otro piso que pueda tener, por ejemplo, en ubicaciones o perfiles de gestión de rendimiento.Nota: A partir de 2017, solo ask_price se usa. API POST y PUT llamadas que hacen floor_price referencia y use_deal_floor funcionará de la siguiente manera:- Si la llamada a la API incluye ask_price solo, este es el valor que se utilizará.- Si la llamada a la API incluye solo un floor_price valor, este valor se convertirá en el ask_price valor. |
priority |
Entero | Opcional | Establecer un valor de prioridad es opcional; sin embargo, si se especifica en la línea de pedido, también se debe establecer el mismo valor en el objeto Deal. Los valores de prioridad asignados a la oferta y a la línea de pedido correspondiente deben ser idénticos. Valores posibles: de 1 a 20, donde 20 es la prioridad más alta. Valor predeterminado: 5. Nota: Esta configuración por sí sola no determina la prioridad de la oferta de PG; la prioridad también debe establecerse correctamente al crear la línea de pedido. |
Campos JSON opcionales útiles
Campos JSON para creatividades permitidas
Marca (consulte Servicio de marca)
| Campo | Tipo | Descripción |
|---|---|---|
brand_restrict |
booleano |
-
true: La oferta está restringida solo a las marcas indicadas.- false: Se permite la publicación de otras marcas. |
brands |
matriz de objetos | Variedad de marcas elegibles. |
id |
Entero | Campo dentro brandsde : ID de la marca que es apta para la oferta. |
name |
string | Campo dentro brandsde: nombre de la marca que cumple los requisitos para la oferta. |
override |
booleano | Campo dentro de brands: establecido para true permitir que una marca específica publique un acuerdo 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 Servicio lingüístico)
| Campo | Tipo | Descripción |
|---|---|---|
language_restrict |
booleano |
-
true: La oferta está restringida solo a los idiomas enumerados.- false: Se permite la publicación en otros idiomas. |
languages |
matriz de objetos | Matriz de idiomas aptos. |
id |
Entero | Campo dentro languagesde : Identificador del idioma que es apto para la oferta. |
name |
string | Campo dentro languagesde : nombre del idioma que es apto para la oferta. |
override |
booleano | Campo dentro de languages: Se establece para true permitir que un idioma específico se publique en una oferta, incluso si el perfil de calidad del anuncio la 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 el acuerdo controla las creatividades. - max_trust: Máximo: no se aplicarán restricciones 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 utiliza 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 de categorías (consulte Servicio de ofertas). - true: La oferta está restringida solo a las categorías indicadas.- false: también se permite la publicación de otras categorías. |
categories |
matriz de objetos | Las categorías que describen los recursos creativos que pueden optar a la oferta. |
id |
Entero | Campo dentro categoriesde: Id. de la categoría que es elegible para la oferta. |
name |
string | Campo dentro categoriesde : Nombre de la categoría que cumple los requisitos para la oferta. |
override |
booleano | Campo dentro de categories: establecido para true permitir que una categoría se publique para una oferta incluso si el perfil de calidad del anuncio la hubiera bloqueado. |
Ejemplo de categoría creativa
"categories": [
{
"id": 1,
"name": "Airlines",
"override": false
},
{
"id": 2,
"name": "Apparel",
"override": true
}
],
"category_restrict": true
Recursos creativos específicos
| Campo | Tipo | Descripción |
|---|---|---|
creatives |
matriz de objetos | Una lista de creatividades que están específicamente aprobadas o prohibidas para el trato. Esta lista reemplaza cualquier otra configuración de calidad de anuncios. |
id |
Entero | Campo dentro creativesde : ID de la creatividad que está aprobada o prohibida para la oferta. |
status |
string | Campo dentro de creatives: especifica cómo se manejará esta creatividad para este trato.- approved: Esta creatividad siempre puede servir en este trato, independientemente de cualquier otra configuración o anulación de calidad de anuncios.- banned: esta creatividad nunca podrá servir en este trato, independientemente de cualquier otra configuración o anulació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 subtipo de medios y Servicio de tipo de medios)
| Campo | Tipo | Descripción |
|---|---|---|
allowed_media_subtypes |
matriz de objetos | Los subtipos de medios permitidos para el acuerdo. |
id |
Entero | Campo dentro allowed_media_subtypesde : El identificador del subtipo de medios permitido para la oferta. |
allowed_media_types |
matriz de objetos | Los tipos de medios permitidos para el acuerdo. |
id |
Entero | Campo dentro allowed_media_typesde: 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 está restringida solo a los atributos técnicos enumerados en el technical_attributes objeto.- true: la oferta está restringida solo a los atributos técnicos enumerados.- false: También se permite el servicio de otros atributos técnicos. |
technical_attributes |
matriz de objetos | Los atributos técnicos de los recursos creativos que pueden participar en la oferta. |
id |
Entero | Campo dentro technical_attributesde :El identificador del atributo técnico que es apto para la oferta. |
override |
booleano | Campo dentro de technical_attributes: establecido para true permitir que un atributo técnico se publique para una oferta, incluso si el perfil de calidad del anuncio la 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 ofertas (consulte Servicio de perfiles de visibilidad)
Advertencia
Esta característica beta no está disponible para todos los clientes. Ponte en contacto con el administrador de cuentas para analizar si tienes un caso de uso.
Id. de usuario e id. de dispositivo
| Campo | Tipo | Descripción |
|---|---|---|
expose_device_id_default |
booleano | Si true, los identificadores de dispositivo proporcionados por el editor se pasan en las solicitudes de oferta. |
expose_user_id_default |
booleano | Si true, se pasan identificadores de usuario proporcionados por el editor en las solicitudes de oferta. |
name |
string | Nombre del perfil de visibilidad. |
Ejemplo de Proteger el Id. de usuario y el Id. de dispositivo
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: Asocie el perfil de visibilidad a la oferta y habilite 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, se pasan direcciones IP proporcionadas por el editor en las solicitudes de oferta. |
ip_exposure_default |
enumeración | La visibilidad de las direcciones IP en las solicitudes de puja. |
name |
string | Nombre del perfil de visibilidad. |
Ejemplo de dirección IP protegida
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: Asocie el perfil de visibilidad a la oferta y habilite 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 | La visibilidad de las URL de inventario en las solicitudes de puja. Posibles valores: - full: Se pasan direcciones URL completas en las solicitudes de puja.- domain: Solo se pasan dominios de direcciones URL en las solicitudes de oferta.- 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: Asocie el perfil de visibilidad a la oferta y habilite 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 (ver Servicio de ofertas)
| Campo | Tipo | Descripción |
|---|---|---|
allow_creative_add_on_view |
booleano | Se establece false para impedir que los compradores agreguen usuarios a segmentos a la vista. |
allow_creative_add_on_click |
booleano | Se establece false para impedir que los compradores agreguen usuarios a segmentos al hacer clic. |
Impedir que se agregue a un 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 línea de negocio
A continuación, cree un perfil de línea de negocio para utilizarlo en la segmentación con la línea de negocio negocio. Asegúrese de anotar el identificador de este perfil para usarlo más adelante. Para obtener más información, consulte Servicio de perfiles.
Para crear un perfil de línea de pedido de oferta PG, haga lo siguiente (para obtener más información, consulte Servicio de perfiles):
Crear un perfil de línea de pedido de oferta de PG JSON:
Ejemplo: Creación de perfiles con países o regiones, límites de frecuencia/actualidad y umbrales de tasa de visualización/tasa de 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
POSTsolicitud al https://api.appnexus.com/profile punto de conexión con este perfil de oferta JSON y un archivo .SRT adecuadoadvertiser_idEjemplo: Creación de perfiles con países o regiones, límites de frecuencia/actualidad y umbrales de tasa de visualización/tasa de 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 respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status" de "OK" y verá las actualizaciones realizadas.Anota el ID del perfil en el cuerpo de la respuesta para que puedas usarlo cuando crees la línea de pedido de PG en el Paso 6: Crear una línea de línea de oferta de PG.
Campos JSON opcionales para el perfil de la línea de pedido de la oferta
Hay muchos campos opcionales disponibles en el perfil de la línea de pedido del trato para segmentar con la línea de pedido del trato. Por ejemplo, puedes dirigirte a propiedades asociadas con el inventario, tipos de inventario, listas de permitidos, listas de bloqueados, tipos de dispositivos, etc. Para obtener más información sobre los campos disponibles, consulte el Servicio de perfiles.
Paso 6: Crear una línea de pedido de oferta de PG
Por último, tendrás que crear la línea de negocio para asociar el ID del negocio y el perfil de línea de negocio que creaste en el Paso 5: Crear un perfil de línea de línea de negocio PG.
Para crear una línea de pedido de oferta PG, haga lo siguiente (para obtener más información, consulte Servicio de línea de pedido):
Crea un JSON de una línea de pedido de negocio (necesitarás un identificador de anunciante existente, un identificador de orden de inserción, un identificador de oferta y un identificador de perfil).
Ejemplo de JSON: Línea de pedido de oferta 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 } } }Ejemplo JSON: Objeto gráfico de impresión de por vida de la línea de negocio de 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
POSTsolicitud al https://api.appnexus.com/line-item punto de conexión mediante este elemento de línea de negocio JSON y unadvertiser_idarchivo y .member_idSolicitud de ejemplo: Partida 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 por vida de la línea de pedido 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'Ejemplo de solicitud: Partida de negocio presupuesto de ingresos diarios
> 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 respuesta de la solicitud. Si la solicitud se realizó correctamente, obtendrá un "
status" de "OK" y verá las actualizaciones realizadas.Anote el ID de la línea de pedido en el cuerpo de la respuesta para que pueda identificar esta línea de negocio más tarde para cambiar su
state(activeoinactive) o modificarla.
Campos JSON para el objeto de línea de negocio
| Campo | Tipo | Obligatorio u opcional | Descripción |
|---|---|---|---|
advertiser_id |
Entero | Obligatorio | El Id. del anunciante al que pertenece la línea de pedido. |
insertion_orders |
matriz | Obligatorio | Matriz que contiene el ID de la orden de inserción al que desea asociar esta línea de pedido de negocio. Nota: Las líneas de pedido de oferta PG solo pueden usar una única orden de inserción. |
name |
string | Obligatorio | Nombre del objeto de línea del negocio (Nota: el comprador no lo verá) |
state |
enumeración | Obligatorio | Estado de la línea de negocio de PG. El valor predeterminado es active, así que establézcalo en inactive si no desea que la oferta se active de inmediato. |
priority |
Entero | Obligatorio | Establezca la prioridad del acuerdo de PG. Este valor de prioridad, en combinación con el campo deprioritize_rtb , determina si una oferta de PG se subasta como abierta o privada. Para crear una oferta abierta de PG, establezca una prioridad debajo de la prioridad de reventa del miembro. Para crear un acuerdo PG privado, establezca una prioridad por debajo de la prioridad de reventa del miembro si la identificación del miembro también está creando GDALI (clientes de servidor de anuncios); o establecer una prioridad superior o igual a la prioridad de reventa del miembro si su identificador de miembro no está creando GDALI (clientes SSP). |
deprioritize_rtb |
booleano | Obligatorio | Si se establece en true, el acuerdo PG se considera privado y siempre tendría prioridad sobre los acuerdos abiertos y las ofertas abiertas de RTB. Si se establece en false, el acuerdo PG se considera abierto y compite en precio con los acuerdos abiertos con la misma prioridad y ofertas abiertas de RTB. Consulte la lógica de subastas para conocer las ofertas para obtener más detalles. |
ad_types |
matriz | Obligatorio | El tipo de creatividad utilizado para esta línea de pedido de trato. Posibles valores:"banner"Nota: Actualmente, solo puedes usar creatividades de banner (display) para ofertas PG para SSP (segmentación y ritmo del servidor de anuncios de terceros). |
line_item_type |
enumeración | Obligatorio | Debe establecerse para "standard_v2" crear una línea de pedido de PG. |
profile_id |
Entero | Obligatorio | ID de perfil asociado con el elemento de línea de negocio (Paso 5: crear un perfil de elemento de línea de negocio). |
budget_intervals |
matriz de objetos | Obligatorio | Siempre incluya un start_date. Salga end_date como null para un artículo de línea de oferta PG interminable. Este es un ejemplo de configuración de una matriz de intervalos de presupuesto. |
deals |
matriz de objetos | Obligatorio | El id campo dentro de los tratos debe ser el ID del trato que creó en el Paso 4: Crear un trato.Nota: Solo se puede insertar una ID de oferta PG. |
supply_strategies |
objeto | Obligatorio | Un objeto que contiene varios campos booleanos que se utiliza 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 oferta de 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 oferta PG, los campos y valores del auction_event objeto deben establecerse así. |
valuation |
objeto | Obligatorio | Debe establecer este objeto min_revenue_value en null para una oferta de PG. |
bid_object_type |
enumeración | Obligatorio | Debe establecerse en "deal" para una línea de pedido de oferta de 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_imp". |
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
}
Útiles campos JSON opcionales para la línea de pedido de oferta
| Campo | Tipo | Descripción |
|---|---|---|
budget_intervals |
matriz de objetos | Establece un presupuesto en la oferta usando campos que budget_intervals incluyen: daily_budget, , lifetime_budgetdaily_budget_imps, o lifetime_budget_imps. Utiliza los campos sin diablillo si la línea de pedido del negocio tiene un tipo de presupuesto de ingresos o los campos con _imp al final si el objeto de línea de negocio tiene una impresión de tipo de ingresos. Puedes tener un presupuesto diario o de por vida, no ambos. Un presupuesto de por vida que se encuentra en todos los vuelos termina dividiéndose en cada vuelo a través de la API. Recuerda que si tu oferta no tiene fecha de finalización, no puede tener un presupuesto. |