kit de herramientas de Ciencia de datos: servicio de modelo personalizado
El servicio Modelo personalizado le permite agregar y mantener modelos predictivos personalizados (árboles de decisión) para usarlos en campañas. Para obtener información general, vea Modelos personalizados.
Sugerencia
Antes de agregar un modelo personalizado, use el servicio analizador de modelos personalizados para comprobar la validez y el tamaño del árbol de decisión.
API de REST
Agregue un nuevo modelo personalizado:
POST https://api.appnexus.com/custom-model
(new_model JSON)
Modificar un modelo personalizado:
PUT https://api.appnexus.com/custom-model?id=ID
(model_update JSON)
Ver todos los modelos personalizados:
GET https://api.appnexus.com/custom-model
Ver un modelo personalizado específico:
GET https://api.appnexus.com/custom-model?id=ID
Eliminar un modelo personalizado:
DELETE https://api.appnexus.com/custom-model?id=ID
Nota:
No se puede eliminar un modelo personalizado que se usa en una o varias campañas.
Averigüe qué campos puede filtrar y ordenar por:
GET https://api.appnexus.com/custom-model/meta
Campos JSON
Campo | Tipo (longitud) | Descripción |
---|---|---|
active |
Booleano | Si true es , el modelo personalizado está activo y disponible para su uso en campañas.Valor predeterminado: true |
advertiser_id |
Entero | Identificador del anunciante al que pertenece el modelo personalizado. Obligatorio en: POST |
code |
string | Código personalizado que se usa como identificador externo o como valor de búsqueda para un objeto. Este valor debe ser único dentro del miembro. |
custom_model_structure |
enumeración | Estructura del modelo personalizado. Actualmente, la única estructura permitida es "decision_tree" .Obligatorio en: POST |
id |
Entero | Identificador del modelo personalizado. Valor predeterminado: número generado automáticamente Obligatorio activado: PUT/ DELETE , en la cadena de consulta |
last_modified |
date | Solo lectura. Fecha y hora en que se modificó por última vez el modelo personalizado. |
member_id |
Entero | Solo lectura. Identificador del miembro al que pertenece el modelo personalizado. Valor predeterminado: id. de miembro |
model_output |
enumeración | Tipo de modelo personalizado. Posibles valores: - "bid" : el modelo de precio de la oferta genera una oferta de CPM. Este tipo de modelo sirve como estrategia de compra de terceros de una campaña en lugar de estrategias estándar de CPM. Para usar este tipo de modelo en una campaña, establezca cpm_bid_type en y, a "custom_model" continuación, especifique el identificador de modelo personalizado en el bid_model objeto .- "bid_modifier" : el modelo modificador de puja aplica un multiplicador a la puja de CPM derivada de la optimización de una campaña. Este tipo de modelo se usa junto con una estrategia de compra basada en optimización Xandr (cuando cpm_bid_type es "predicted" o "margin" ). Para usar este tipo de modelo en una campaña, especifique el identificador de modelo personalizado en el bid_modifier_model objeto .Obligatorio en: POST |
model_text |
string | Lógica del modelo, expresada como árbol de decisión. Debe escribir el árbol de decisión en nuestro lenguaje Bonsai e incluir una versión codificada en base64 aquí. Valor predeterminado: null Nota: - Límite de tamaño: el árbol debe ser menor que 3 MB o 3 145 728 bytes. Si es mayor que eso, no podrá agregar el árbol. - Consultas GET: en una consulta GET, model_text solo se devolverá si proporciona un identificador de modelo en la cadena de consulta. No se devolverá para las consultas sin filtrar.- Compruebe la validez y el tamaño del árbol. - Antes de agregar un modelo personalizado, use el servicio analizador de modelos personalizados para comprobar la validez y el tamaño del árbol de decisión. Consulte ese servicio para obtener más información sobre la validación y los mensajes de error. |
name |
string (191) | Nombre del modelo personalizado. Debe ser único y no debe tener más de 191 caracteres. Obligatorio activado: POST |
original_text |
string | Solo lectura. Árbol de decisión en texto sin formato. Esto se proporciona en la respuesta para que pueda recuperar y revisar el formato original del árbol siempre que sea necesario para iterar en el diseño del árbol. Tenga en cuenta que las pestañas se reemplazan por \t y las nuevas líneas se reemplazan por \n .Valor predeterminado: null Nota: En una consulta GET, original_text solo se devolverá si identifica un identificador de modelo específico en la cadena de consulta. No se devolverá para las consultas sin filtrar. |
Ejemplos
Ver todos los modelos personalizados
$ curl -b cookies -c cookies 'https://api.appnexus.com/custom-model'
{
"response": {
"status": "OK",
"count": 10,
"start_element": 0,
"num_elements": 100,
"custom_models": [
{
"id": 327,
"name": "Bid by Region/Hour of Day",
"code": "code1_abc12345",
"member_id": 958,
"advertiser_id": 39776,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"active": true,
"last_modified": "2015-09-22 19:52:57"
},
{
"id": 329,
"name": "Bid by Device Type/Hour of Day",
"code": "code2_abc12345",
"member_id": 958,
"advertiser_id": 39776,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"active": true,
"last_modified": "2015-09-22 20:52:53"
},
...
]
}
}
Visualización de un modelo personalizado específico
$ curl -b cookies -c cookies 'https://api.appnexus.com/custom-model?id=327'
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"custom_model": {
"id": 327,
"name": "Bid by Region/Hour of Day",
"code": "code1_abc12345",
"member_id": 1234,
"advertiser_id": 39776,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"model_text": "aWYgZXZlcnkgcmVnaW9uID0gIlVTOkNBIiwgdXNlcl9ob3VyIHJhbmdlICgxMiwxNCk6CgkxLjUKZWxpZiBldmVyeSByZWdpb24gPSAiVVM6TlkiLCB1c2VyX2hvdXIgcmFuZ2UgKDEsMyk6CgkwLjEKZWxzZToKCTAuNQ==",
"original_text": "if every region = \"US:CA\", user_hour range (12,14):\n\t1.5\nelif every region = \"US:NY\", user_hour range (1,3):\n\t0.1\nelse:\n\t0.5",
"active": true,
"last_modified": "2015-09-22 19:52:57"
}
}
}
Adición de un modelo personalizado
$ curl -b cookies -c cookies -X POST -d @custom_model.json 'https://api.appnexus.com/custom-model?member_id=1234'
$ cat custom_model.json
{
"custom_model": {
"name": "Bid by Device Type/Hour of Day",
"advertiser_id": 39776,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"model_text": "aWYgZXZlcnkgZGV2aWNlX3R5cGUgPSAiT3RoZXJzIChpbmNsdWRpbmcgUEMpIiwgdXNlcl9ob3VyIHJhbmdlICg5LDE4KToKCTEuNQplbGlmIGV2ZXJ5IGRldmljZV90eXBlIGluICgiVGFibGV0IiwgIlBob25lIiksIHVzZXJfaG91ciBpbiAoNSw2LDcsOCwxOSwyMCwyMSwyMik6CgkyCmVsc2U6CgkwLjU="
}
}
$ curl -b cookies -c cookies -X POST -d @custom_model.json 'https://api.appnexus.com/custom-model'
{
"response": {
"status": "OK",
"count": 1,
"id": "329",
"start_element": 0,
"num_elements": 100,
"custom_model": {
"id": 329,
"name": "Bid by Device Type/Hour of Day",
"code": null,
"member_id": 1234,
"advertiser_id": 39776,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"model_text": "aWYgZXZlcnkgZGV2aWNlX3R5cGUgPSAiT3RoZXJzIChpbmNsdWRpbmcgUEMpIiwgdXNlcl9ob3VyIHJhbmdlICg5LDE4KToKCTEuNQplbGlmIGV2ZXJ5IGRldmljZV90eXBlIGluICgiVGFibGV0IiwgIlBob25lIiksIHVzZXJfaG91ciBpbiAoNSw2LDcsOCwxOSwyMCwyMSwyMik6CgkyCmVsc2U6CgkwLjU=",
"original_text": "if every device_type = \"Others (including PC)\", user_hour range (9,18):\n\t1.5\nelif every device_type in (\"Tablet\", \"Phone\"), user_hour in (5,6,7,8,19,20,21,22):\n\t2\nelse:\n\t0.5",
"active": true,
"last_modified": "2015-09-22 20:52:53"
}
}
}
Modificación de un modelo personalizado
$ cat custom_model_update.json
{
"custom_model": {
"model_text": "aWYgc2VnbWVudCAxMjM0Og0KwqDCoMKgwqBpZi..."
}
}
$ curl -b cookies -c cookies -X PUT -d @custom_model_update.json 'https://api.appnexus.com/custom-model?id=3'
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"custom_model": {
"id": 3,
"name": "User Hour Model",
"code": null,
"member_id": 1234,
"advertiser_id": 83736,
"custom_model_structure": "decision_tree",
"model_output": "bid",
"model_text": "aWYgc2VnbWVudCAxMjM0Og0KwqDCoMKgwqBpZi...",
"original_text": "if every region = \"US:CA\", user_hour range (12,16):\n\t1.5\nelif every region = \"US:NY\", user_hour range (1,5):\n\t0.1\nelse:\n\t0.5",
"active": true
}
}
}
Eliminación de un modelo personalizado
$ curl -b cookies -c cookies -X DELETE 'https://api.appnexus.com/custom-model?id=3'
{
"response": {
"status": "OK",
"count": 1,
"start_element": null,
"num_elements": null
}
}