Data Science ツールキット - 非評価カスタム モデル
非評価カスタム モデルは、入札評価には影響しません。 これらは、カスタム クリエイティブ マクロをインプレッション トラッキング呼び出しに挿入するために使用され、最終的には Learn の状態に影響を与えるなどの他の機能に使用されます。
クリエイティブ マクロはテキスト プレースホルダーであり、クリエイティブの配信時に役立つインプレッション レベルの情報に置き換えられます。 クリエイティブ マクロは、Xandr 以外のシステムにインプレッション レベルの情報を送信するために使用され、レポート、最適化、その他の多くの目的に使用できます。 たとえば、サード パーティのクリエイティブ ホスティングを使用する場合は、マクロを使用して配置にセグメント ID を設定し、クリエイティブ サーバーが使用して配信するクリエイティブを決定できます。
注:
この機能は、 拡張行項目でのみ使用できます。
クリエイティブ マクロ リーフの構文
マクロが広告サーバーと通信し、入力する必要がある情報を渡すには、その前にキーを付ける必要があります。 クリエイティブ マクロリーフの構文は次のとおりです。
leaf_name: "name"
creative_macros["MACRO1"]: "value1"
creative_macros["MACRO2"]: "value2
これは非評価モデルであるため、値は必要ありません。 単に で構成されるリーフを leaf_name
持つことができます。 詳細については、以下の 例 を参照してください。
注:
制限事項は次のとおりです。
- マクロでは大文字と小文字が区別されます。
- キーと値には、合計で 100 utf-8 でエンコードされたバイトを超えてはならない Unicode テキストを含めることができます。
- パーサーは NFC Unicode 変換を適用し、Unicode コードポイントと結果の utf-8 エンコード結果を変更する可能性があります。 予測できない動作を回避する最善の方法は、キーと値の両方で常に NFC 正規化されたテキストを使用することです。
- リーフごとに 2 つ以下のマクロが存在する場合があります。
既存の Xandr Creative マクロの名前を複製しないでください。 これにより、予期しない動作が発生する可能性があります。
API ワークフロー
手順 1. 拡張行項目を作成する
この例では、拡張品目を作成します。
$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
}
}
詳細については、「 カスタム モデルを使用した ALI ワークフロー」を参照してください。
手順 2. カスタム モデル ツリーを作成する
この例では、クリエイティブ マクロを挿入するカスタム モデルを作成します。
$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"
手順 3. カスタム モデルをアップロードする
この例では、カスタム モデルをアップロードします。
$ 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"
}
}
詳細については、「 カスタム モデル サービス」を参照してください。
手順 4. カスタム モデルを行項目に関連付ける
この例では、行項目の配列のフィールドを "非評価" に設定 type
することで、カスタム モデルを行項目 custom_models
に関連付けます。
$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"
}
}
例
クリエイティブ マクロ非評価カスタム モデル
#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"