Partager via


Science des données Toolkit - Modèle personnalisé sans évaluation

Les modèles personnalisés sans évaluation n’affectent pas l’évaluation de l’offre. Elles sont utilisées pour insérer des macros créatives personnalisées dans des appels de suivi d’impression et seront finalement utilisées pour d’autres fonctions, telles que l’impact sur Learn status.

Une macro créative est un espace réservé de texte qui est remplacé par des informations utiles au niveau de l’impression lorsqu’une création est servie. Les macros créatives sont utilisées pour transmettre des informations au niveau de l’impression à des systèmes en dehors de Xandr, que vous pouvez ensuite utiliser pour la création de rapports, l’optimisation et bien d’autres fins. Par exemple, si vous utilisez l’hébergement créatif tiers, vous pouvez utiliser une macro pour remplir un ID de segment dans votre emplacement, que le serveur créatif utiliserait ensuite pour déterminer le contenu créatif à servir.

Remarque

Cette fonctionnalité n’est disponible que pour l’élément de ligne augmenté.

Syntaxe feuille de macro créative

Pour qu’une macro communique avec le serveur publicitaire et passe les informations à remplir, elle doit être précédée d’une clé. La syntaxe des feuilles de macro créative est la suivante :

leaf_name: "name"
creative_macros["MACRO1"]: "value1"
creative_macros["MACRO2"]: "value2

Étant donné qu’il s’agit d’un modèle sans évaluation, une valeur n’est pas requise. Il est possible d’avoir une feuille qui se compose simplement de .leaf_name Pour plus d’informations, consultez l’exemple ci-dessous.

Remarque

Les restrictions sont les suivantes :

  • Les macros respectent la casse.
  • Les clés et les valeurs peuvent contenir du texte Unicode qui ne doit pas dépasser 100 octets encodés utf-8 au total.
  • L’analyseur applique la transformation Unicode NFC et peut modifier les points de code Unicode et le résultat encodé utf-8 résultant. La meilleure façon d’éviter les comportements imprévisibles consiste à toujours utiliser du texte normalisé NFC à la fois dans la clé et la valeur.
  • Il ne peut pas y avoir plus de deux macros par feuille.

Ne dupliquez pas les noms des macros créatives Xandr existantes. Cela peut entraîner un comportement imprévisible.

Flux de travail d’API

Étape 1. Create un élément de ligne augmenté

Dans cet exemple, nous créons un élément de ligne augmenté.

$cat ali
{
    "line-item": {
        "name": "ALI Custom Macro Test",
        "code": "ali-cm-test",
        "state": "inactive",
        "line_item_type": "standard_v2",
        "revenue_type": "cpm"
    }
}
$curl -b cookies -X POST -s -d @ali "https://api.appnexus.com/line-item?advertiser_id=ADVERTISER_ID"
{
   "response" : {
      "num_elements" : 100,
      "count" : 1,
      "line-item" : {
         "lifetime_pacing" : null,
         "daily_budget_imps" : null,
         "total_days" : null,
         "budget_intervals" : null,
         "creative_distribution_type" : null,
         "remaining_days" : null,
         "line_item_type" : "standard_v2",
         "delivery_goal" : null,
         "goal_pixels" : null,
         "name" : "ALI Custom Macro Test",
         "revenue_value" : 0,
         "campaigns" : null,
         "discrepancy_pct" : 0,
         "code" : "ali-cm-test",
         "pixels" : null,
         "manage_creative" : false,
         "flat_fee" : null,
         "comments" : null,
         "inventory_discovery_budget" : null,
         "goal_value" : null,
         "require_cookie_for_tracking" : true,
         "insertion_orders" : null,
         "clicktrackers" : null,
         "enable_pacing" : null,
         "flat_fee_type" : null,
         "imptrackers" : null,
         "profile_id" : null,
         "broker_fees" : null,
         "inventory_type" : "both",
         "creatives" : null,
         "valuation" : {
            "bid_price_pacing_lever" : 0,
            "max_avg_cpm" : null,
            "goal_threshold" : null,
            "performance_mkt_managed" : false,
            "goal_target" : null,
            "goal_confidence_threshold" : null,
            "min_margin_pct" : null,
            "campaign_group_valuation_strategy" : null,
            "min_avg_cpm" : null,
            "bid_price_pacing_enabled" : false,
            "no_revenue_log" : false
         },
         "publishers_allowed" : "all",
         "lifetime_budget" : null,
         "custom_optimization_note" : null,
         "currency" : "USD",
         "daily_budget" : null,
         "auction_event" : null,
         "member_id" : 958,
         "priority" : "5",
         "advertiser_id" : 354236,
         "inventory_discovery" : null,
         "payout_margin" : null,
         "lifetime_pacing_pct" : null,
         "id" : 3925282,
         "state" : "inactive",
         "allow_safety_pacing" : null,
         "custom_models" : null,
         "timezone" : "EST5EDT",
         "end_date" : null,
         "incrementality" : null,
         "expected_value_model" : null,
         "goal_type" : "none",
         "start_date" : null,
         "last_modified" : "2017-03-20 16:00:21",
         "lifetime_budget_imps" : null,
         "click_url" : null,
         "revenue_type" : "cpm",
         "lifetime_pacing_span" : null,
         "prefer_delivery_over_performance" : false,
         "advertiser" : {
            "name" : "MCG Test Advertiser",
            "id" : 354236
         },
         "labels" : null
      },
      "status" : "OK",
      "start_element" : 0,
      "dbg_info" : {...},
      "id" : 3925282
   }
} 

Pour plus d’informations, consultez Flux de travail ALI avec des modèles personnalisés.

Étape 2. Create une arborescence de modèles personnalisée

Dans cet exemple, nous créons un modèle personnalisé qui insère les macros créatives.

$cat custom-macro-tree
if user_hour = 1:
    leaf_name: "cm_1"
    creative_macros["ProductViewed"]: "15436"
    creative_macros["LandingPage"]: "k2344"
else:
    leaf_name: "cm_2"
    creative_macros["TestMacro"]: "yourvaluegoeshere"

Étape 3. Charger le modèle personnalisé

Dans cet exemple, nous chargeons le modèle personnalisé.

$ cat custom_model
 
{
    "custom_model": {
        "name": "Custom Macro Test Model", 
        "member_id": 958,
        "advertiser_id": ADVERTISER_ID,
                "custom_model_structure": "decision_tree",
        "model_output": "bid",
                "model_text": "aWYgdXNlcl9ob3VyID0gMToNCiAgICBsZWFmX25hbWU6ICJjbV8xIg0KICAgIGNyZWF0aXZlX21hY3Jvc1siUHJvZHVjdFZpZXdlZCJdOiAiMTU0MzYiDQogICAgY3JlYXRpdmVfbWFjcm9zWyJMYW5kaW5nUGFnZSJdOiAiazIzNDQiDQplbHNlOg0KICAgIGxlYWZfbmFtZTogImNtXzIiDQogICAgY3JlYXRpdmVfbWFjcm9zWyJUZXN0TWFjcm8iXTogInlvdXJ2YWx1ZWdvZXNoZXJlIiMgY3JhZnQgeW91ciB0cmVlIGhlcmUhDQoNCg0KDQoJCQk="            
        }
}
$ curl -b cookies -X POST -d @custom-model "https://api.appnexus.com/custom-model?advertiser_id=ADVERTISER_ID"
{
   "response" : {
      "id" : "82495",
      "num_elements" : 100,
      "start_element" : 0,
      "count" : 1,
      "custom_model" : {
         "code" : null,
         "name" : "Custom Macro Test Model",
         "model_text" : "<removed>",
         "model_output" : "bid",
         "active" : true,
         "last_modified" : "2017-03-20 15:57:03",
         "advertiser_id" : 354236,
         "member_id" : 958,
         "original_text" : "<removed>",
         "compiled_text" : "<removed>",
         "custom_model_structure" : "decision_tree",
         "id" : 82495
      },
      "dbg_info" : {... },
      "status" : "OK"
   }
} 

Pour plus d’informations, consultez Service de modèle personnalisé.

Étape 4. Associer le modèle personnalisé à l’élément de ligne

Dans cet exemple, nous associons le modèle personnalisé à l’élément de ligne en définissant le type champ dans le tableau de l’élément de custom_models ligne sur « non-évaluation ».

$cat update-ali
{
    "line-item": {
        "id": 11111,
        "custom_models": [
            {
                "id": 82495,
                "type": "nonvaluation"
            }            
        ]
    }
}
$curl -b cookies -X PUT -d '@update-ali' "https://api.appnexus.com/line-item?id=11111&advertiser_id=ADVERTISER_ID"
{
   "response" : {
      "start_element" : 0,
      "status" : "OK",
      "count" : 1,
      "num_elements" : 100,
      "line-item" : {
         "code" : "ali-cm-test",
         "inventory_discovery_budget" : null,
         "inventory_discovery" : null,
         "daily_budget_imps" : null,
         "clicktrackers" : null,
         "advertiser_id" : 354236,
         "id" : 3925282,
         "goal_type" : "none",
         "profile_id" : null,
         "prefer_delivery_over_performance" : false,
         "lifetime_pacing_pct" : null,
         "manage_creative" : false,
         "last_modified" : "2017-03-20 16:04:49",
         "payout_margin" : null,
         "flat_fee_type" : null,
         "daily_budget" : null,
         "click_model" : null,
         "lifetime_pacing" : null,
         "publishers_allowed" : "all",
         "insertion_orders" : null,
         "advertiser" : {
            "id" : 354236,
            "name" : "MCG Test Advertiser"
         },
         "enable_pacing" : null,
         "end_date" : null,
         "budget_intervals" : null,
         "click_url" : null,
         "priority" : "5",
         "pixels" : null,
         "valuation" : {
            "max_avg_cpm" : null,
            "min_margin_pct" : null,
            "goal_confidence_threshold" : null,
            "bid_price_pacing_enabled" : false,
            "goal_threshold" : null,
            "campaign_group_valuation_strategy" : null,
            "performance_mkt_managed" : false,
            "no_revenue_log" : false,
            "bid_price_pacing_lever" : 0,
            "goal_target" : null,
            "min_avg_cpm" : null
         },
         "member_id" : 958,
         "start_date" : null,
         "imptrackers" : null,
         "flat_fee" : null,
         "custom_models" : [
            {
               "active" : "1",
               "type" : "non_valuation",
               "name" : "Custom Macro Test Model",
               "id" : 82495
            }
         ],
         "delivery_goal" : null,
         "currency" : "USD",
         "expected_value_model" : null,
         "timezone" : "EST5EDT",
         "lifetime_pacing_span" : null,
         "campaigns" : null,
         "lifetime_budget" : null,
         "incrementality" : null,
         "custom_optimization_note" : null,
         "name" : "ALI Custom Macro Test",
         "creatives" : null,
         "comments" : null,
         "revenue_value" : 0,
         "inventory_type" : "both",
         "broker_fees" : null,
         "line_item_type" : "standard_v2",
         "require_cookie_for_tracking" : true,
         "lifetime_budget_imps" : null,
         "remaining_days" : null,
         "goal_pixels" : null,
         "state" : "inactive",
         "total_days" : null,
         "discrepancy_pct" : 0,
         "goal_value" : null,
         "labels" : null,
         "revenue_type" : "cpm",
         "allow_safety_pacing" : null,
         "auction_event" : null,
         "creative_distribution_type" : null
      },
      "dbg_info" : {...},
      "id" : "3925282"
   }
} 

Exemple

Modèle personnalisé de macro créative sans évaluation

#1. If the user hour is between 1am and 2am, insert the macro MyCustomMacro1 with a value of "testvalue1" and the macro MyCustomMacro2 with a value of "testvalue2".
#2. Otherwise, do nothing. (Since this is a non-valuation custom model, a value is not required for the second leaf.)
if user_hour = 1:
    leaf_name: "cm_1"
    creative_macros["MyCustomMacro1"]: "testvalue1"
    creative_macros["MyCustomMacro2"]: "testvalue2"
else:
    leaf_name: "cm_2" 

Modèles personnalisés