Partager via


Science des données Toolkit - Service de modèle personnalisé

Le service Modèle personnalisé vous permet d’ajouter et de gérer des modèles prédictifs personnalisés (arbres de décision) à utiliser dans des campagnes. Pour plus d’informations, consultez Modèles personnalisés.

Conseil

Avant d’ajouter un modèle personnalisé, utilisez le service Analyseur de modèle personnalisé pour case activée la validité et la taille de votre arbre de décision.

API REST

Ajoutez un nouveau modèle personnalisé :

POST https://api.appnexus.com/custom-model  
(new_model JSON)

Modifier un modèle personnalisé :

PUT https://api.appnexus.com/custom-model?id=ID
(model_update JSON)

Afficher tous les modèles personnalisés :

GET https://api.appnexus.com/custom-model

Afficher un modèle personnalisé spécifique :

GET https://api.appnexus.com/custom-model?id=ID

Supprimer un modèle personnalisé :

DELETE https://api.appnexus.com/custom-model?id=ID

Remarque

Vous ne pouvez pas supprimer un modèle personnalisé utilisé par une ou plusieurs campagnes.

Découvrez les champs que vous pouvez filtrer et trier :

GET https://api.appnexus.com/custom-model/meta

Champs JSON

Champ Type (Longueur) Description
active Boolean Si truela valeur est , le modèle personnalisé est actif et disponible pour une utilisation dans les campagnes.
Par défaut : true
advertiser_id int ID de l’annonceur auquel appartient le modèle personnalisé.
Obligatoire sur : POST
code string Code personnalisé utilisé comme ID externe ou comme valeur de recherche pour un objet. Cette valeur doit être unique au sein de votre membre.
custom_model_structure enum Structure du modèle personnalisé. Actuellement, la seule structure autorisée est "decision_tree".
Obligatoire sur : POST
id int ID du modèle personnalisé.
Par défaut : nombre généré automatiquement
Obligatoire Sur : PUT/ DELETE, dans la chaîne de requête
last_modified date En lecture seule. Date et heure de la dernière modification du modèle personnalisé.
member_id int En lecture seule. ID du membre auquel appartient le modèle personnalisé.
Par défaut : ID du membre
model_output enum Type de modèle personnalisé. Valeurs possibles :
- "bid": le modèle Prix de l’offre génère une enchère CPM. Ce type de modèle sert de stratégie d’achat tiers d’une campagne à la place des stratégies CPM standard. Pour utiliser ce type de modèle dans une campagne, définissez cpm_bid_type"custom_model" sur , puis spécifiez l’ID de modèle personnalisé dans l’objet bid_model .
- "bid_modifier": le modèle de modificateur d’enchère applique un multiplicateur à l’offre CPM dérivée de l’optimisation d’une campagne. Ce type de modèle est utilisé conjointement avec une stratégie d’achat basée sur l’optimisation Xandr (quand cpm_bid_type est "predicted" ou "margin"). Pour utiliser ce type de modèle dans une campagne, spécifiez l’ID de modèle personnalisé dans l’objet bid_modifier_model .
Obligatoire sur : POST
model_text chaîne Logique du modèle, exprimée sous la forme d’un arbre de décision. Vous devez écrire votre arbre de décision dans notre langue Bonsai, puis inclure une version encodée en base64 ici.
Par défaut : null
Remarque :
- Limite de taille : votre arborescence doit être inférieure à 3 Mo ou 3 145 728 octets. S’il est plus grand que cela, vous ne pourrez pas ajouter votre arborescence.
- Requêtes GET : dans une requête GET, le model_text est retourné UNIQUEMENT si vous fournissez un ID de modèle dans la chaîne de requête. Il ne sera pas retourné pour les requêtes non filtrées.
- Vérifiez la validité et la taille de votre arborescence.
- Avant d’ajouter un modèle personnalisé, utilisez le service Analyseur de modèle personnalisé pour case activée la validité et la taille de votre arbre de décision. Consultez ce service pour plus d’informations sur la validation et les messages d’erreur.
name string (191) Nom du modèle personnalisé. Il doit être unique et ne doit pas contenir plus de 191 caractères.
Obligatoire sur : POST
original_text chaîne En lecture seule. Arbre de décision en texte brut. Nous fournissons cela dans la réponse afin que vous puissiez récupérer et examiner le format d’origine de votre arborescence chaque fois que nécessaire pour itérer sur la conception de l’arborescence. Notez que les onglets sont remplacés par \t et que les nouvelles lignes sont remplacées par \n.
Par défaut : null
Remarque : Dans une requête GET, le original_text est retourné UNIQUEMENT si vous identifiez un ID de modèle spécifique dans la chaîne de requête. Il ne sera pas retourné pour les requêtes non filtrées.

Exemples

Afficher tous les modèles personnalisés

$ 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"
            },
            ...  
        ]
    }
}

Afficher un modèle personnalisé spécifique

$ 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"
        }
    }
}

Ajouter un modèle personnalisé

$ 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"
        }
    }
}
 

Modifier un modèle personnalisé

$ 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
        }
    }
}

Supprimer un modèle personnalisé

$ 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
    }
}