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" 

カスタム モデル