Data Science ツールキット - カスタム モデル サービス
カスタム モデル サービスを使用すると、キャンペーンで使用するカスタム予測モデル (デシジョン ツリー) を追加および管理できます。 背景情報については、「 カスタム モデル」を参照してください。
ヒント
カスタム モデルを追加する前に、カスタム モデル パーサー サービスを使用して、デシジョン ツリーの有効性とサイズをチェックします。
REST API
新しいカスタム モデルを追加します。
POST https://api.appnexus.com/custom-model
(new_model JSON)
カスタム モデルを変更する:
PUT https://api.appnexus.com/custom-model?id=ID
(model_update JSON)
すべてのカスタム モデルを表示する:
GET https://api.appnexus.com/custom-model
特定のカスタム モデルを表示します。
GET https://api.appnexus.com/custom-model?id=ID
カスタム モデルを削除します。
DELETE https://api.appnexus.com/custom-model?id=ID
注:
1 つ以上のキャンペーンで使用されるカスタム モデルは削除できません。
フィルター処理および並べ替えの対象となるフィールドを確認します。
GET https://api.appnexus.com/custom-model/meta
JSON フィールド
フィールド | 型 (長さ) | 説明 |
---|---|---|
active |
ブール型 | の場合 true 、カスタム モデルはアクティブであり、キャンペーンで使用できます。既定値: true |
advertiser_id |
int | カスタム モデルが属する広告主の ID。 必須: POST |
code |
string | 外部 ID またはオブジェクトの検索値として使用されるカスタム コード。 この値は、メンバー内で一意である必要があります。 |
custom_model_structure |
列挙 | カスタム モデルの構造。 現時点では、許可される構造体は "decision_tree" のみです。必須: POST |
id |
int | カスタム モデルの ID。 既定値: 自動生成された数値 必須: PUT/ DELETE クエリ文字列内の 、 |
last_modified |
date | 読み取り専用。 カスタム モデルが最後に変更された日時。 |
member_id |
int | 読み取り専用。 カスタム モデルが属するメンバーの ID。 既定値: メンバーの ID |
model_output |
列挙 | カスタム モデルの種類。 使用可能な値: - "bid" : 入札価格モデルは、CPM 入札を出力します。 このタイプのモデルは、標準的な CPM 戦略の代わりに、キャンペーンのサードパーティの購入戦略として機能します。 キャンペーンでこの種類のモデルを使用するには、 を に"custom_model" 設定cpm_bid_type し、オブジェクトでbid_model カスタム モデル ID を指定します。- "bid_modifier" : 入札修飾子モデルは、キャンペーンの最適化派生 CPM 入札に乗数を適用します。 この種類のモデルは、Xandr 最適化ベースの購入戦略 (が "predicted" または "margin" の場合cpm_bid_type ) と組み合わせて使用されます。 キャンペーンでこの種類のモデルを使用するには、オブジェクトでカスタム モデル ID をbid_modifier_model 指定します。必須: POST |
model_text |
string | デシジョン ツリーとして表されるモデルのロジック。 Bonsai 言語でデシジョン ツリーを記述し、ここに base64 でエンコードされたバージョンを含める必要があります。 既定値: null 注: - サイズ制限: ツリーは 3 MB、または 3,145,728 バイトより小さくする必要があります。 それより大きい場合は、ツリーを追加できません。 - GET クエリ: GET クエリでは、 model_text クエリ文字列にモデル ID を指定した場合にのみ が返されます。 フィルター処理されていないクエリでは返されません。- ツリーの有効性とサイズを確認します。 - カスタム モデルを追加する前に、カスタム モデル パーサー サービスを使用して、デシジョン ツリーの有効性とサイズをチェックします。 検証とエラー メッセージの詳細については、そのサービスを参照してください。 |
name |
string (191) | カスタム モデルの名前。 これは一意である必要があり、191 文字以下にする必要があります。 必須: POST |
original_text |
string | 読み取り専用。 プレーン テキストのデシジョン ツリー。 これを応答で提供します。これにより、ツリーのデザインを反復処理するために必要な場合は常に、ツリーの元の形式を取得して確認できます。 タブは に \t 置き換えられ、新しい行は に \n 置き換えられます。既定値: null 注: GET クエリでは、 は、 original_text クエリ文字列内の特定のモデル ID を識別した場合にのみ返されます。 フィルター処理されていないクエリでは返されません。 |
例
すべてのカスタム モデルを表示する
$ 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"
},
...
]
}
}
特定のカスタム モデルを表示する
$ 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"
}
}
}
カスタム モデルを追加する
$ 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"
}
}
}
カスタム モデルを変更する
$ 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
}
}
}
カスタム モデルを削除する
$ 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
}
}