Licitadores: servicio de acceso de compradores de ofertas
Este servicio de solo lectura permite a los licitadores ver información sobre las ofertas negociadas que tienen con los vendedores en la plataforma de Xandr. Un acuerdo puede proporcionar a un comprador precios preferenciales, acceso a inventario exclusivo, competencia reducida en el inventario u otras oportunidades. Cada oferta es válida para un único comprador, pero tenga en cuenta que el inventario incluido en una oferta también puede estar abarcado por acuerdos con otros compradores.
API de REST
Sugerencia
Cuando haya iniciado sesión con un usuario miembro, las siguientes llamadas devolverán solo ofertas disponibles para ese miembro. Cuando haya iniciado sesión con un usuario pujador, las siguientes llamadas devolverán ofertas disponibles para todos los miembros o puestos de comprador en ese postor.
Http (método) | Endpoint | Description |
---|---|---|
GET | https://api.adnxs.com/deal-buyer-access |
Ver todas las ofertas que tiene con los vendedores. |
GET | https://api.adnxs.com/deal-buyer-access?seller_member_id=SELLER_MEMBER_ID |
Ver todas las ofertas que tiene con un vendedor específico. |
GET | https://api.adnxs.com/deal-buyer-access?id=DEAL_ID |
Ver una oferta específica. |
GET | https://api.adnxs.com/deal-buyer-access?id=1,2,3 |
Vea varias ofertas por identificador mediante una lista separada por comas. |
GET | https://api.adnxs.com/deal-buyer-access?search="Deal_ID, DEAL_NAME, or CODE |
Busque una oferta por nombre, identificador o código. |
GET | https://api.adnxs.com/deal-buyer-access/meta |
Averigüe por qué campos puede filtrar y ordenar. |
Campos JSON
Campo | Tipo (longitud) | Descripción |
---|---|---|
active |
booleano | Si true es , la oferta está activa. Tenga en cuenta que la oferta solo estará disponible cuando este campo sea true , start_date esté en el pasado (o null) y end_date esté en el futuro (o null). |
ask_price |
Entero | Precio asociado a la oferta. Esta es la cantidad mínima que el vendedor aceptará para este inventario. |
brands |
matriz de objetos | Las marcas de creativos que son elegibles para la oferta. Para obtener más información, consulte Marcas a continuación. |
buyer |
objeto | El postor de compra y el miembro que puede dirigirse a esta oferta. Para obtener más información, consulte Comprador a continuación. |
buyer_bidders |
matriz de objetos | El postor de compra que puede dirigirse a esta oferta. Para obtener más detalles, consulte Los postores de compradores a continuación. |
buyer_members |
matriz de objetos | El postor de compra y los miembros que pueden dirigirse a esta oferta. Para obtener más información, consulte Miembros compradores a continuación. |
buyer_seats |
matriz de objetos | El postor de compra y los puestos que pueden dirigirse a este trato. Para obtener más información, consulta Asientos de comprador a continuación. |
code |
string (100) | Código personalizado para la oferta. |
currency |
enumeración | Moneda de floor_price . |
description |
string (65535) | Descripción de la oferta. |
end_date |
Timestamp | El día y la hora en que la oferta deja de estar disponible para el comprador. Null corresponde a "indefinidamente". |
floor_price |
double | Obsoleto. Consulte
ask_price
en su lugar. Valor mínimo de CPM que el licitador debe pujar para ser elegible para la oferta.Nota: Si use_deal_floor es false , floor_price será 0. En este caso, tenga en cuenta que aunque 0 se muestra como el precio del piso, no se aplica ningún piso de oferta; si el vendedor tiene otros pisos (en colocaciones o perfiles de gestión de rendimiento), se aplicarán, o si el vendedor no tiene ningún otro piso, se aplicará la mecánica estándar de subastas de segundo precio. |
id |
Entero | El identificador de la transacción. Este es el campo que recibirá en la solicitud de puja. Nota: Si configura un contrato con un vendedor externo y lo canaliza a través de Xandr, convertiremos su código en este identificador. |
last_modified |
Timestamp | Fecha y hora en que se modificó por última vez la oferta. |
name |
string (255) | Nombre de la oferta. |
seller |
objeto | El miembro vendedor que está ofreciendo el trato. Para obtener más información, consulte Vendedor a continuación. |
sizes |
matriz de objetos | Los tamaños de los creativos que son aptos para la oferta. Para obtener más información, vea Tamaños a continuación. Nota: Si esta matriz no está presente en la respuesta, no hay requisitos de tamaño creativo para la oferta. |
start_date |
Timestamp | El día y la hora en que la oferta comienza a estar disponible para el comprador. Null corresponde a "inmediatamente". |
suggested_min_bid_price |
Entero | La misma cantidad que .ask_price Nota: Su oferta mínima debe ser mayor que para ask_price tener en cuenta los cargos del servicio de subasta especificados en su contrato de Xandr. En el caso de los acuerdos con proveedores externos, la oferta también debe incluir margen adicional para tener en cuenta las discrepancias. Pujar más que el ask_price ayuda a asegurarse de que usted es elegible para la oferta, pero no hay ninguna garantía de que su oferta ganará. |
type |
objeto | Tipo de oferta. Una oferta puede ser una subasta abierta o una subasta privada. Para obtener más información, vea Tipo a continuación. |
use_deal_floor |
booleano | Si true es , se aplica para floor_price la oferta.Nota: Cuando use_deal_floor es true , el precio del piso de la oferta invalida cualquier otro piso que el vendedor pueda tener, es decir, en colocaciones o perfiles de administración de rendimiento. |
Vendedor
El seller
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
id |
Entero | Id. de miembro del vendedor. |
name |
string | Nombre del miembro del vendedor. |
Comprador
El postor de compra y el miembro que puede dirigirse a esta oferta. Para un vendedor que usa ofertas de un solo comprador, una oferta solo usará el buyer
campo o el buyer_seats
campo, no ambos. El buyer
campo admite un solo miembro, no una matriz.
El buyer
campo no lo usan los vendedores que están habilitados para las ofertas de varios compradores. Dado que las ofertas de varios compradores todavía están en versión beta para los vendedores, puede esperar que algunos vendedores continúen usando el campo de comprador para las ofertas de un solo comprador por el momento.
El buyer
vendedor no puede actualizar el campo. Una vez creada una oferta con un buyer
campo, no cambiará.
El buyer
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
bidder_id |
Entero | Id. del pujador del miembro. |
id |
Entero | Identificador de miembro del comprador. |
name |
string | Nombre del miembro del comprador. |
Miembros compradores
El postor de compra y los miembros que pueden dirigirse a esta oferta. Para un vendedor que usa ofertas de varios compradores, el buyer_members
objeto se puede establecer en combinación con buyer_seats
y buyer_bidders
. No se pueden establecer en combinación con el comprador.
El buyer_members
campo lo usan los vendedores que están habilitados para las ofertas de varios compradores. Funciona como el buyer
campo, excepto por dos diferencias principales: buyer_members
admite una matriz de objetos y se puede editar después de la creación. Las ofertas de varios compradores siguen siendo una característica beta, por lo que no todos los vendedores tendrán acceso para configurar ofertas mediante buyer_members
.
Un DSP debe leer este campo si:
- Puede aceptar ofertas en las que varios compradores son aptos: en este caso, deben leer este campo como una matriz de objetos con potencialmente varios objetos.
- No se pueden aceptar ofertas en las que varios compradores son aptos: lea este campo como una matriz de objetos con un objeto. Si un DSP no puede aceptar varios compradores, deben leer este campo exactamente de la misma manera que leen al comprador. Incluso un DSP que ha realizado la transición a los asientos podría ver acuerdos antiguos con un miembro heredado rellenado aquí.
El buyer
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
bidder_id |
Entero | Id. del pujador del miembro. |
bidder_name |
string | Nombre del licitador. |
id |
Entero | Identificador de miembro del comprador. |
name |
string | Nombre del miembro del comprador. |
Asientos de comprador
El postor de compra y los puestos que pueden dirigirse a este trato. Para un vendedor que usa ofertas de varios compradores, el buyer_seats
objeto se puede establecer en combinación con buyer_members
y buyer_bidders
. Para un vendedor que usa ofertas de un solo comprador, el buyer_seats
objeto se puede configurar por sí mismo. El buyer_seats
objeto no se puede establecer en combinación con el comprador.
Todos los vendedores, ambos que configuran ofertas de comprador único y multiventas, tienen la capacidad de configurar ofertas mediante buyer_seats
.
Un DSP debe leer este campo si:
Se pasa al uso de puestos de comprador.
Puede aceptar ofertas en las que varios compradores son aptos: en este caso, deben leer este campo como una matriz de objetos con potencialmente varios objetos.
No se pueden aceptar ofertas en las que varios compradores son aptos: lea este campo como una matriz de objetos con un objeto.
El buyer_seats
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
bidder_id |
Entero | Id. del pujador del miembro. |
bidder_name |
string | Nombre del licitador. |
id |
Entero | Identificador de miembro del comprador. |
name |
string | Nombre del miembro del comprador. |
Postores compradores
Los pujadores compradores que pueden dirigirse a esta oferta. Para un vendedor que usa ofertas de varios compradores, el buyer_bidders
objeto se puede establecer en combinación con buyer_seats
y buyer_members
. No se pueden establecer en combinación con el comprador.
El buyer_bidders
campo lo usan los vendedores que están habilitados para las ofertas de varios compradores. Cuando este asiento se usa en una oferta, todos los compradores dentro del DSP son elegibles. Este campo corresponde a una oferta que se envía con un pmp.deals.wseat en blanco en la solicitud de puja de OpenRTB. Las ofertas de varios compradores siguen siendo una característica beta, por lo que no todos los vendedores tendrán acceso para configurar ofertas mediante buyer_bidders
.
Un DSP debe leer este campo si:
- Puede aceptar un acuerdo con un espacio en blanco
pmp.deals.wseat
en la solicitud de puja de OpenRTB.
El buyer_bidders
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
bidder_name |
string | Solo lectura. Nombre del licitador. |
bid |
Entero | Id. del pujador del miembro. |
Tipo
El type
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
id |
Entero | Identificador que representa el tipo de transacción. Posibles valores: - 1 = Subasta abierta En una "subasta abierta", los compradores que se dirigen a las ofertas y los compradores que se dirigen al inventario a través de otros medios compiten por la impresión. Si un comprador que se dirige a un acuerdo envía la oferta más alta y la oferta borra el piso del contrato, ese comprador gana la subasta, pagando la segunda oferta más alta o el precio del piso de oferta, lo que sea más alto. Si uno de los compradores sin acuerdo envía la oferta más alta, ese comprador gana la subasta, pagando la segunda oferta más alta o ECP, lo que sea más alto. - 2 = Subasta privada En una "subasta privada", los compradores que se dirigen a las ofertas privadas compiten primero por la impresión. A continuación, si ninguno de los compradores de la oferta gana, la subasta se abre a los compradores que se dirigen al inventario a través de otros medios. Si un comprador que se dirige a un acuerdo envía una oferta más alta que el piso de la oferta y mayor que cualquier otra oferta de subasta privada, ese comprador gana la subasta, pagando la segunda oferta más alta de la subasta privada o el precio del piso de oferta, lo que sea más alto. Si no hay ofertas de subasta privada que borren sus pisos, gana la puja más alta de la subasta abierta, pagando la segunda puja más alta de la subasta abierta o ECP, lo que sea más alto. Para obtener ejemplos que muestren cómo funcionan estos diferentes tipos de subastas, consulte Mecánica de subastas de ofertas. |
name |
string | Nombre del tipo de transacción. Valores posibles: "Open Auction", "Private Auction" o "First Look". |
Marcas
Cada brands
objeto contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
id |
Entero | El identificador de la marca que es elegible para la oferta. Puede usar brand service para recuperar identificadores de marca. |
name |
string | Nombre de la marca que es apta para la oferta. Puede usar brand service para recuperar nombres de marca. |
Tamaños
Cada objeto de la sizes
matriz contiene los campos siguientes.
Campo | Tipo | Descripción |
---|---|---|
width |
string | Ancho de la creatividad. |
height |
string | El alto de la creatividad. |
Ejemplos
Ver todas las ofertas que tiene con los vendedores
$ curl -b cookies -c cookies 'https://api.adnxs.com/deal-buyer-access'
{
"response": {
"status": "OK",
"count": 6,
"deals": [
{
"id": 62,
"code": null,
"name": "Private deal for buyer 1085 with floor of 2.5",
"description": null,
"active": false,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:59",
"floor_price": 2.5,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 20:15:38",
"seller": {
"id": 1004,
"name": "Seller 1004"
},
"buyer": {
"id": 1005,
"bidder_id": 2,
"name": "Buyer 1005"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": [
{
"id": 1
}
],
"ask_price": 2.75,
"suggested_min_bid_price": 2.75,
"sizes": [
{
"width": "300",
"height": "250"
}
],
},
{
"id": 63,
"code": null,
"name": "Private deal for buyer 1085 with floor of $2.50",
"description": null,
"active": false,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:59",
"floor_price": 2.5,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 20:39:57",
"seller": {
"id": 1006,
"name": "Seller 1006"
},
"buyer": {
"id": 1007,
"bidder_id": 2,
"name": "Buyer 1007"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": [
{
"id": 1
}
]
},
...
]
}
}
Ver todas las ofertas que tiene con un vendedor específico
$ curl -b cookies -c cookies 'https://api.adnxs.com/deal-buyer-access?seller_member_id=100006'
{
"response": {
"status": "OK",
"count": 1,
"deals": [
{
"id": 63,
"code": null,
"name": "Private deal for buyer 1085 with floor of $2.50",
"description": null,
"active": false,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:59",
"floor_price": 2.5,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 20:39:57",
"seller": {
"id": 100006,
"name": "Seller 456"
},
"buyer": {
"id": 1007,
"bidder_id": 2,
"name": "Buyer 1007"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": [
{
"id": 1
}
],
"ask_price": 2.75,
"suggested_min_bid_price": 2.75,
}
]
}
}
Visualización de una oferta específica
$ curl -b cookies -c cookies 'https://api.adnxs.com/deal-buyer-access?id=63'
{
"response": {
"status": "OK",
"count": 1,
"deal":
"deals": {
"id": 63,
"code": null,
"name": "Private deal for buyer 1085 with floor of $2.50",
"description": null,
"active": false,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:59",
"floor_price": 2.5,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 20:39:57",
"seller": {
"id": 100006,
"name": "Seller 456"
},
"buyer": {
"id": 1007,
"bidder_id": 2,
"name": "Buyer 1007"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": [
{
"id": 1
}
],
"ask_price": 2.75,
"suggested_min_bid_price": 2.75
}
}
}
Ver una oferta específica (con código de asiento)
$ curl -b cookies -c cookies 'https://api.adnxs.com/deal-buyer-access?id=689280'
{
"response": {
"count": 1,
"dbg": {
"output_term": "deal",
"version": "1.18.1370",
"warnings": []
},
"deal": {
"active": false,
"adserver_lists": null,
"adserver_restrict": false,
"allow_creative_add_on_click": true,
"allow_creative_add_on_view": false,
"allowed_media_subtypes": null,
"allowed_media_types": null,
"ask_price": 1,
"auction_type": {
"id": 2,
"name": "Standard Price"
},
"audit_status_option": "none",
"bidder_guaranteed_deals_support_id": null,
"brand_restrict": false,
"brands": null,
"buyer": null,
"buyer_exposure": {
"id": 1,
"name": "Single buyer"
},
"buyer_seats": [{
"bidder_id": 100,
"bidder_name": "Buyer 100",
"bidder_supports_hashed_user_ids": true,
"code": "A123D",
"guaranteed_deals_support": "Disabled",
"name": "buyer seat id deal test"
}],
"categories": null,
"category_restrict": false,
"code": null,
"created_by": "seller",
"creatives": null,
"currency": "USD",
"data_protected": false,
"description": "Test Deal with seller 958",
"end_date": "2019-12-31 23:59:59",
"external_metadata": null,
"id": 689280,
"language_restrict": false,
"languages": null,
"last_modified": "2019-11-13 17:33:40",
"media_preference": "standard",
"name": "buyer seat test",
"package_id": null,
"payment_type": "default",
"priority": 10,
"seller": {
"bidder_id": 2,
"id": 958,
"name": "Member 958"
},
"size_preference": "standard",
"sizes": null,
"start_date": "2019-11-11 00:00:00",
"suggested_min_bid_price": 1,
"technical_attribute_restrict": false,
"technical_attributes": null,
"type": {
"id": 2,
"name": "Private Auction"
},
"use_deal_floor": true,
"version": 1,
"visibility_profile_id": null
}
}
}
Ver todas las ofertas que no han expirado
En este ejemplo, suponiendo que hoy sea el 4 de diciembre de 2013, queremos encontrar todas las ofertas que no hayan expirado. Para ello, se pasa el min_end_date="2013-12-04 00:00:00"
filtro en la cadena de consulta. Tenga en cuenta que, sin embargo, no se mostrará ninguna fecha de finalización en la respuesta.
$ curl -b cookies -c cookies 'https://api.adnxs.com/deal-buyer-access?min_end_date="2013-12-04 00:00:00"'
{
"response": {
"status": "OK",
"count": 4,
"deals": [
{
"id": 60,
"code": null,
"name": null,
"description": null,
"active": true,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:00",
"floor_price": 3.2,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 18:47:39",
"seller": {
"id": 100006,
"name": "Seller 456"
},
"buyer": {
"id": 1007,
"bidder_id": 2,
"name": "Buyer 1007"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": null,
"ask_price": 3.5,
"suggested_min_bid": 3.5
},
{
"id": 62,
"code": null,
"name": "Private deal for buyer 1085 with floor of 2.5",
"description": null,
"active": false,
"seller_member_id": 1066,
"start_date": "2013-12-01 00:00:00",
"end_date": "2013-12-31 23:59:59",
"profile_id": null,
"floor_price": 2.5,
"currency": "USD",
"use_deal_floor": true,
"last_modified": "2013-12-04 20:15:38",
"seller": {
"id": 1006,
"name": "Seller 1006"
},
"buyer": {
"id": 1007,
"bidder_id": 2,
"name": "Buyer 1007"
},
"type": {
"id": 2,
"name": "Private Auction"
},
"brands": [
{
"id": 1
}
],
"ask_price": 3.5,
"suggested_min_bid_price": 3.5,
},
...
]
}
}