Compartir a través de


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, 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 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: 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:

  1. Cree un archivo JSON que contenga el nombre de usuario y la contraseña.

    {
        "auth": {
            "username" : "USERNAME",
            "password" : "PASSWORD"
        }
    }
    
  2. 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'
    
  3. 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):

  1. Cree un JSON de anunciante:

    $ cat advertiser.json
    {
        "advertiser": {
            "name": "Deal Line Item Example Advertiser",
            "timezone": "US/Pacific"
        }
    }
    
  2. Realice una POST solicitud al punto de https://api.appnexus.com/advertiser conexión con este JSON del anunciante y un valor adecuado member_id.

    curl -b cookies -c cookies -X POST -d @advertiser.json 'https://api.appnexus.com/advertiser?member_id=2378'
    
  3. 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ó.

  4. 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):

  1. 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"
        }
    }
    
  2. 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 adecuado advertiser_id y member_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'
    
  3. 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ó.

  4. 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):

  1. Creación de un JSON de oferta:

    $ cat deal.json
    {
        "deal": {
            "name": "Deal Line Item Example Deal",
            "buyer": {
                "id": 2379
            },
            "version": 2
        }
    }
    
  2. Realice una POST solicitud al punto de https://api.appnexus.com/deal conexión con este JSON de la oferta y un valor adecuado member_id.

    curl -b cookies -c cookies -X POST -d @deal.json 'https://api.appnexus.com/deal?member_id=2378'
    
  3. 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ó.

  4. 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 creativesde : 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 truees , los identificadores de dispositivo proporcionados por el publicador se pasan en las solicitudes de puja.
expose_user_id_default booleano Si truees , 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 truees , 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):

  1. 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": {
        }
    }
    
  2. Realice una POST solicitud al punto de https://api.appnexus.com/profile conexión con este json de perfil de oferta y un valor adecuado advertiser_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'
    
  3. 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ó.

  4. 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):

  1. 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
            }
        }
    }
    
  2. 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 adecuados advertiser_idmember_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'
    
  3. 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ó.

  4. 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 o inactive) 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_valuenull 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_budgeto 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.