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:
- Ha completado la incorporación de API.
- Está familiarizado con la jerarquía de objetos de venta.
- Ha trabajado con Xandr para crear un perfil de calidad de anuncios global para controlar qué creatividades pueden aparecer en el inventario de los publicadores.
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:
- Están asociados al mismo dominio (web móvil y estándar)
- 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".