Servicio de instancia de ofertante

Es probable que un postor tenga al menos dos instancias ejecutándose en un momento dado. Cada instancia está asociada al bus de impresión de uno de los centros de datos de Xandr. La instancia en sí puede hospedarse con Xandr en el centro de datos o estar ubicada cerca. Para reducir la latencia de las impresiones globales, puedes configurar instancias de ofertante en los distintos centros de datos de Xandr (ver datacenter_id más abajo). Cada instancia de ofertante está asociada a un centro de datos. A medida que aumenta la carga de sus ofertantes, es probable que necesite varias instancias por centro de datos. En lugar de configurar su propio grupo de equilibrio de carga local para estas múltiples instancias, el bus de impresión puede manejar el equilibrio de carga por usted.

Deberá registrar la combinación de nombre de host/IP/puerto para cada una de sus instancias de ofertante con el bus de impresiones utilizando la API de servicio de instancia de ofertante. Este servicio de API también le permite ver, modificar y quitar cualquier instancia. Cada instancia de ofertante debe usar la nomenclatura para controladores de solicitudes definida por el servicio de licitante.

Nota:

Para obtener respuestas a las preguntas frecuentes sobre cómo funcionan las instancias de ofertantes, consulte la Instancia de ofertante - Preguntas frecuentes.

API de REST

Método HTTP Endpoint Description
GET https://api.adnxs.com/bidder-instance/BIDDER_ID Ver todas las instancias de licitadores. No mostrará los pujadores de otros usuarios.
GET https://api.adnxs.com/bidder-instance/BIDDER_ID/BIDDER_INSTANCE_ID Ver una instancia de ofertante en particular.
POST https://api.adnxs.com/bidder-instance/BIDDER_ID
(instancia de ofertante JSON)
Agregar una nueva instancia de licitador.
PUT https://api.adnxs.com/bidder-instance/BIDDER_ID/BIDDER_INSTANCE_ID
(instancia de ofertante JSON)
Modificar un licitador existente.

Nota: Actualmente, el servicio de instancias de licitador no admite eliminaciones: para quitar una instancia, establézcala como inactiva.

Advertencia: Cuando crees o modifiques instancias de ofertantes, nunca utilices el parámetro "datacenter" obsoleto para establecer el centro de datos de tu instancia. En su lugar, use siempre el parámetro "datacenter_id" con los identificadores definidos a continuación.

Campos JSON

Campo Obligatorio Tipo Descripción
id Sí (activado PUT) Entero El identificador de la instancia del ofertante.
bidder_id int El identificador del ofertante.
active No, el valor predeterminado es TRUE booleano Si la instancia del licitador está activa o no.
datacenter_id Sí (activado POST) Entero El ID del centro de datos al que está asociada la instancia NYM = 6, LAX = 4, , AMS = 15 , FRA = 7, SIN = 13. Id. heredados: AMS = 12 (hasta el 12 de julio de 2022), SIN = 8 (hasta el 15 de octubre de 2019), ZKS = 17
ip_address string Dirección IP de la instancia del licitante.
port int Puerto de la instancia del ofertante.
last_activity no marca de tiempo La marca de tiempo de la última modificación en esta instancia de licitador.
hostname no varchar(128) El nombre de host de la instancia del ofertante (asegúrese de no incluir "https://", por ejemplo, "hostname":"rtb.yourdomain.com")
qps_limit no Entero Número máximo de consultas por segundo enviadas a esta instancia de licitador.

Nota:

Los límites de QPS deben establecerse de la misma manera para todas las instancias de ofertantes en un centro de datos. Para ello, establezca qps_limit el mismo valor para todas las instancias de ofertantes activas en un centro de datos. Por ejemplo, si tiene tres instancias de licitador en LAX y desea establecer el límite de QPS en 50 000 para todo el centro de datos, establecería qps_limit el límite en 50 000 en cada una de las tres instancias de licitador. Si qps_limit no es el mismo en todas las instancias de ofertantes dentro de un centro de datos, puede obtener resultados no deseados, así que asegúrese de que los qps_limit valores sean los mismos en cada centro de datos.

Puede agregar un nombre de host a la instancia de ofertante en cualquier momento. Sin embargo, nuestra API requiere una dirección IP al ajustar la instancia del ofertante, pero si incluyes un campo de nombre de host con un valor (tu URL o dominio) en la llamada a la API, nuestros sistemas se conectarán al nombre de host e ignorarán la dirección IP. Si vas a publicar una nueva instancia de ofertante con un nombre de host, puedes usar un valor de marcador de posición para el campo ip_address.

Ejemplos

Token de autenticación

La autenticación es siempre el primer paso al utilizar los servicios de API. A continuación, el token de autenticación se puede escribir en nuestro archivo de cookies para su uso futuro. Para obtener instrucciones más detalladas, consulte Servicio de autenticación.

Ver instancias existentes

$ curl -b cookies -c cookies 'https://api.adnxs.com/bidder-instance/2'
{
   "response":{
      "status":"OK",
      "instances":[
         {
            "id":14,
            "bidder_id":2,
            "active":true,
                "datacenter_id": 6,
            "ip_address":"8.12.231.108",
            "port":8081,
            "last_activity":"2016-12-31 17:07:17"
            "hostname": null
         }
      ]
   }
}

Agregar nueva instancia

Tengo una instancia de Nueva York (NYM2); ahora quiero registrar mi instancia de licitador LAX1. Creo el siguiente JSON:

$ cat bidder_instance
{
   "instance":{
      "bidder_id":2,
      "active":true,
      "datacenter_id":4,
      "ip_address":"8.12.231.108",
      "port":8081,
      "hostname":"rtb.yourdomain.com"
   }
}

Luego, para agregar esta nueva instancia a mi postor (2):

$ curl -b cookies -c cookies -X POST --data-binary @bidder_instance 'https://api.adnxs.com/bidder-instance/2'
{
   "response":{
      "status":"OK",
      "id":53
   }
}

Y para ver la instancia recién agregada:

$ curl -b cookies -c cookies 'https://api.adnxs.com/bidder-instance/2/53'
{
   "response":{
      "status":"OK",
      "instance":[
         {
            "id":53,
            "bidder_id":2,
            "active":true,
            "datacenter_id":4,
            "ip_address":"64.210.63.108",
            "port":8081,
            "last_activity":"2016-12-31 19:24:23"
            "hostname":"rtb.yourdomin.com"
         }
      ]
   }
}

Agregar un límite de QPS a una instancia existente

Si quiero agregar un límite de QPS a una instancia existente:

$ cat bidder-instance
{
   "instance":{
      "id":53,
      "qps_limit":75000
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @bidder-instance  "https://api.adnxs.com/bidder-instance/2/53"
{
   "response":{
      "status":"OK",
      "id":53
   }
}

Entonces, si quiero ver la instancia:

$ curl -b cookies -c cookies 'https://api.adnxs.com/bidder-instance/2'
{
   "response":{
   "status":"OK",
      "instances":[
         {
            "id":14,
            "bidder_id":2,
            "active":true,
            "datacenter_id":6,
            "ip_address":"8.12.231.108",
            "port":8081,
            "last_activity":"2016-12-31 17:07:17"
            "hostname":null
         },
         {
            "id":53,
            "bidder_id":2,
            "active":true,
            "datacenter_id":4,
            "ip_address":"64.210.63.124",
            "port":8081,
                        "qps_limit":75000
            "last_activity":"2016-12-31 19:51:13"
            "hostname":"rtb.yourdomain.com"         }
      ]
   }
}

Modificación de una instancia

Si necesito cambiar una dirección IP:

$ cat bidder-instance
{
   "instance":{
      "id":53,
      "ip_address":"64.210.63.124"
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @bidder-instance  "https://api.adnxs.com/bidder-instance/2/53"
{
   "response":{
      "status":"OK",
      "id":53
   }
}

A continuación, para ver el estado actual de todas las instancias de mi licitador(2):

$ curl -b cookies -c cookies 'https://api.adnxs.com/bidder-instance/2'
{
   "response":{
   "status":"OK",
      "instances":[
         {
            "id":14,
            "bidder_id":2,
            "active":true,
            "datacenter_id":6,
            "ip_address":"8.12.231.108",
            "port":8081,
            "last_activity":"2016-12-31 17:07:17"
            "hostname":null
         },
         {
            "id":53,
            "bidder_id":2,
            "active":true,
            "datacenter_id":4,
            "ip_address":"64.210.63.124",
            "port":8081,
            "last_activity":"2016-12-31 19:51:13"
            "hostname":"rtb.yourdomain.com"         }
      ]
   }
   }