Compartir a través de


Uso de la API para sincronizar la estructura de inventario

En esta página se muestra cómo usar la API de Xandr para asignar el suministro a los objetos Xandr correspondientes y probar la asignación con una subasta de depuración. Siga estas instrucciones para cada editor con el que trabaje.

Para asignar el suministro mediante la interfaz de usuario, consulte Uso de la interfaz de usuario para sincronizar la estructura de inventario.

Antes de empezar

Antes de comenzar, debe cumplir los siguientes criterios:

Paso 1. Create un publicador

Use el servicio publisher para crear un publicador que esté asignado al inventario.

Nota:

El code campo es necesario para todos los vendedores externos tanto en los niveles de publicación como de ubicación, y es muy recomendable para todos los demás vendedores asegurarse de que el inventario sea lo más granular posible para que se pueda investigar con precisión en caso de problemas de calidad y específicamente para la detección de dominios. Aunque no es necesario, este paso le ayudará a dividir el inventario en etiquetas altamente detectables y menos detectables, lo que le permite aislar los impactos de los dominios no detectables en el resto de la viabilidad del inventario.

El archivo JSON debe incluir los campos siguientes.

Campo Tipo Description
name string (255) Nombre de la entidad jurídica de la empresa a la que paga dinero. Por ejemplo, si compra desde espn.com, el publicador debe llamarse como la entidad jurídica de ESPN.
is_oo booleano Si es true, el publicador es propiedad de la red y lo opera, lo que significa que la red obtiene el 100 % de los ingresos. Establecer esto en true también le permite omitir la configuración de reglas de pago.
Valor predeterminado: false
code string (100) Código que identifica el publicador del inventario. Use el valor de los BidRequest.Site.Publisher.id campos o BidRequest.App.Publisher.id .
reselling_exposure enumeración La exposición del editor para revender a otros miembros de la plataforma.
Valores posibles: "public" o "private".
Valor predeterminado: "private"
state enumeración Estado del publicador.
Valores posibles: "activo" o "inactivo".
Valor predeterminado: "inactivo"

Ejemplo

$cat publisher.json
{
"publisher": {
        "name": "PUBLISHER_NAME", 
        "is_oo": true, 
        "code": "PUBLISHER_CODE", 
        "reselling_exposure": "private",
        "state": "active"
         }
}
$curl -b cookies -c cookies -d @publisher.json -X POST 'https://api.appnexus.com/publisher?member_id=MEMBER_ID&create_default_placement=false'

La API devuelve el identificador del objeto recién creado en su respuesta. Guarde este valor para usarlo en los dos pasos siguientes.

Paso 2. Create un sitio (grupo de selección de ubicación)

Use el servicio de sitio para crear uno o varios sitios (o grupos de selección de ubicación) asociados al publicador que creó en el paso 1. Los sitios son simplemente un mecanismo de agrupación para las ubicaciones. Se requiere al menos un sitio, pero no es necesario crear otros si no necesita más granularidad.

Cada sitio debe representar una agrupación de ubicaciones que:

  1. Están asociados al mismo dominio (web móvil y estándar)
  2. O están asociados a la misma aplicación móvil

El archivo JSON debe incluir los campos siguientes:

Campo Tipo Description
name string (255) Id. de lote de dominio o aplicación pasado a través de este sitio.
supply_type enumeración Especifica si se trata de un sitio visto en un explorador de escritorio ("web"), un sitio visto en un explorador móvil ("mobile_web") o una aplicación que se ejecuta en un dispositivo móvil ("mobile_app"). Esta distinción permite al comprador dirigir las campañas al tipo de suministro determinado en el que quiere anunciarse, por ejemplo, un anunciante puede cargar creatividades optimizadas para exploradores móviles con páginas de aterrizaje móviles.
Valor predeterminado: "web"

Ejemplo

$cat site.json
{
        "site": {
                "name": "DOMAIN_NAME_OR_APP_BUNDLE_ID", 
                "supply_type": "SUPPLY_TYPE"
                }
}
$curl -b cookies -c cookies -d @site.json -X POST 'https://api.appnexus.com/site?member_id=MEMBER_ID&publisher_id=PUBLISHER_ID'

La API devuelve el identificador del objeto recién creado en su respuesta. Guarde este valor para usarlo en el paso siguiente.

Paso 3. Create una ubicación

Use el servicio de selección de ubicación para crear ubicaciones asociadas con el publicador y el sitio que creó en los pasos 1 y 2.

Nota:

El code campo es necesario para todos los vendedores externos tanto en los niveles de publicación como de ubicación, y es muy recomendable para todos los demás vendedores asegurarse de que el inventario sea lo más granular posible para que se pueda investigar con precisión en caso de problemas de calidad y específicamente para la detección de dominios. Aunque no es necesario, este paso le ayudará a dividir el inventario en etiquetas altamente detectables y menos detectables, lo que le permite aislar los impactos de los dominios no detectables en el resto de la viabilidad del inventario.

El archivo JSON debe incluir los campos siguientes:

Campo Tipo Description
name string (255) Nombre asociado al publicador.
code string (100) Código que identifica la ubicación del inventario. Use el valor del BidRequest.Site.id campo o BidRequest.App.id .

Ejemplo

$cat placement.json
{
        "placement": {
                "name": "PLACEMENT_NAME", 
                "code": "PLACEMENT_CODE"
                }
}
$curl -b cookies -c cookies -d @placement.json -X POST 'https://api.appnexus.com/placement?member_id=MEMBER_ID&publisher_id=PUBLISHER_ID&site_id=SITE_ID'

Paso 4. Probar la configuración de asignación (opcional)

Puede probar que la asignación funciona correctamente mediante una subasta de depuración. Envíe una impresión de prueba a nuestro punto de conexión con los parámetros de depuración y compruebe que la impresión alcanza la ubicación esperada.

Ejemplo de subasta de depuración para una impresión de vídeo mediante el protocolo OpenRTB Expand source

$cat debug.json
{ 
        "id": { 
                "imp": [{
                        "id": "1",
                        "video": {
                                "mimes": [
                                        "application/x-shockwave-flash",
                                        "video/mp4",
                                        "video/x-flv" 
                                        ],
                                 "linearity": 1, 
                                 "minduration": 0, 
                                 "maxduration": 999, 
                                 "protocols": [2,5], 
                                 "w": 640, 
                                 "h": 360,
                                 "startdelay": 0,
                                 "minbitrate": 0,
                                 "maxbitrate": 1500,
                                 "delivery": [2],
                                 "pos": 0,
                                 "api": [1]
                                        },
                                 "bidfloor": 1,
                                 "bidfloorcur": "EUR"
                                } ], 
                        "site": {
                                "domain": "test.com" },
                                "device": {
                                                "dnt": 0,
                                                "ua": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
                                                "ip": "212.185.163.114",
                                                "os": "Win_8",
                                                "osv": "8",
                                                "js": 0,
                                                "devicetype": 2 
                                                },
                                 "user": {
                                                 "buyeruid": "XANDR_USER_ID" 
                                                        }, 
                                "at": 2, 
                                "tmax": 100, 
                                "cur": ["EUR","USD"]}'
}

$curl -b cookies -c cookies -s -i d @debug.json 'https://<MEMBER_NAME>-<GEO>.com/openrtb2?member_id=MEMBER_ID&debug_member=DEBUG_MEMBER&dongle=DONGLE'

En el ejemplo anterior, <GEO> tiene valores potenciales: "useast", "uswest", "apac", "emea".