取引をターゲットとするキュレーションされた取引ライン アイテムの API 実装を設定するには、さまざまな API オブジェクトにさまざまなプロパティを構成する必要があります。 このガイドでは、API を使用してキュレーションされた取引ライン アイテムを作成および構成するプロセスについて説明します。
概要
キュレーションされた取引は、キュレーターの独自の資産と Xandr Marketplace の供給を組み合わせた、購入者とキュレーターの間の交渉による契約を表します。 これらの独自の資産には、対象ユーザー データ、優先在庫アクセス、特別に交渉された料金、最適化の人材、投資戦略、および取引供給を強化し、独自のサービスを作成するその他の機能が含まれます。 取引キュレーターは、Xandr プラットフォーム上に独自のメンバー シートを持ち、それを使用して、供給と自分の資産を購入者向けにキュレーションされた取引 ID にパッケージ化します。 Xandr 取引所に統合されている DSP は、キュレーションされた取引を購入できます。
キュレーションされた取引ライン アイテムを設定するには、通常、次の API サービス エンドポイントに要求を行い、対応する API オブジェクトにアクセスまたは作成する必要があります:
| API エンドポイント | API オブジェクト | 詳細なリファレンス |
|---|---|---|
https://api.appnexus.com/advertiser |
広告主 | 広告主サービス |
https://api.appnexus.com/insertion-order |
insertion-order | 広告掲載オーダー サービス |
https://api.appnexus.com/deal |
deal | ディール サービス |
https://api.appnexus.com/profile |
profile | プロファイル サービス |
https://api.appnexus.com/line-item |
ラインアイテム (ALI) | ライン項目 - ALI サービス |
このガイドでは、すべてのリクエストについて cURL の例を使用します。 他の API リクエスト ツール ( Postman など) を使用することもできますが、その後適宜例を調整する必要があります。
前提条件
このセットアップを開始する前に、「API はじめに」を必ずお読みください。 テスト環境、使用上の制約、API セマンティクス (コマンドの実行、フィルター処理、並べ替えなど)、ベスト プラクティスに関する情報を提供します。
操作の順序
API オブジェクトは他の API オブジェクトに依存していることが多く、キュレーションされた取引品目を作成する際には、オブジェクトの作成またはアクセスにおいて従わなければならない順序があります。 たとえば、 advertiser、 insertion-order、 deal、 profile の API オブジェクトの ID を指定する必要があります。 これらのオブジェクトの ID を取得するには、それらを作成するか、既にアクセス権を持っている必要があります。 このガイドの手順は、キュレーションされた取引品目を作成するために必要な一般的な操作の順序に従います。
ベスト プラクティス
API を操作する際に従うベスト プラクティスの一般的な一覧については、「 API のベスト プラクティス」を参照してください。 以下は、キュレーションされた取引ライン アイテムの設定に固有のいくつかのベスト プラクティスです:
- 品目が完全に構成され、テストの準備が整うまで、キュレーションされた取引品目の
stateフィールドを"inactive"に設定します。 - 作成するオブジェクトの ID をメモします。 作成したオブジェクトの ID は、要求の応答本文で返されます。 多くの場合、これらの ID は後で必要になるため、返されたときにコピーすることで、ID を取得するために行う必要のある追加の
GET要求の数を減らすことができます。 - キュレーションされた取引品目内でキュレーションされた取引をターゲットにしないでください。 この構成はサポートされておらず、配信の問題が発生する可能性があります。
セットアップ手順
警告
キュレーションされた取引品目を設定するときは、優先順位を設定しないでください。 優先度を設定する必要がある場合は、デフォルトの 5 に設定します。
次の手順では、一般的な構成でキュレーションされた取引品目を設定するプロセスを説明します:
- 手順 1 - 承認トークンを取得する
- 手順 2 - 広告主を作成またはアクセスする
- ステップ 3 - 広告掲載オーダーを作成またはアクセスする
- 手順 4 - 取引を作成する
- 手順 5 - キュレーションされた取引ライン アイテム プロファイルを作成する
- 手順 6 - キュレーションされた取引品目を作成する
手順 1 - 承認トークンを取得する
まず、承認トークンを取得する必要があります。 その後、この承認トークンを後続のすべての要求に含める必要があります (詳細については 、「認証サービス 」を参照してください)。 承認トークンを取得するには、次の手順を実行します。
ユーザー名とパスワードを含む JSON ファイルを作成します。
{ "auth": { "username" : "USERNAME", "password" : "PASSWORD" } }要求本文にこの JSON ファイルを含め、
/authエンドポイントにPOST要求を行います (詳細については、「認証サービス」を参照してください)。 次のcURL要求では、返された承認トークンは "cookies" ファイルに格納されます。curl -c cookies -X POST -d @authentication.json 'https://api.appnexus.com/auth'要求の応答本文を確認します (下記 の応答の例 を参照)。 要求が成功した場合は、"
status" が "OK" になり、"token" フィールドに認証トークンの値が入力されます。
応答の例{ "response" : { "token" : "authn:225692:2d787d1838283:lax1", "status" : "OK" } }
手順 2 - 広告主を作成またはアクセスする
キュレーションされた取引ライン アイテムを作成するには、広告主を作成するか、広告主にアクセスする必要があります。 拡張広告申込情報の場合と同じ方法で、キュレーションされた取引ライン アイテムの広告主を設定します。
使用する広告主がまだない場合は、次の手順を実行して広告主を作成します (詳細については、「 広告主サービス 」を参照してください)。
広告主の JSON を作成します。
$ cat advertiser.json { "advertiser": { "name": "Curated Deal Line Item Example Advertiser", "timezone": "US/Pacific" } }この広告主の JSON と適切な
member_idを使用して、https://api.appnexus.com/advertiserエンドポイントにPOST要求を行います。$ curl -b cookies -c cookies -X POST -d @advertiser.json 'https://api.appnexus.com/advertiser?member_id=2378'要求の応答本文を確認します。 要求が成功した場合は、"
OK" の "status" が表示され、行った更新が表示されます。手順 6 - キュレーションされた取引品目を作成するでキュレーションされた取引品目を作成するときに使用できるように、応答本文の広告主 ID をメモします。
広告主用の JSON フィールド (必須フィールドと役立つオプション フィールド)
| フィールド | 種類 | 必須またはオプション | 説明 |
|---|---|---|---|
name |
string | 必須 | 広告主の名前 |
timezone |
列挙 | 省略可能 | 広告主のタイムゾーン。 詳細と使用できる値については、「 API タイムゾーン」 を参照してください。 |
use_insertion_orders |
ブール値 | 必須 | キュレーションされた取引品目を作成するには、このフィールドを true に設定する必要があります。 |
ステップ 3 - 広告掲載オーダーを作成またはアクセスする
キュレーションされた取引ライン アイテムを作成するには、広告掲載オーダーを作成するか、広告掲載オーダーにアクセスする必要があります。 キュレーションされた取引ライン アイテムには、シームレスな広告掲載オーダーが必要です (以下の 必須 フィールドを参照してください)。
使用する広告掲載オーダーがまだない場合は、次の手順を実行して広告掲載オーダーを作成します (詳細については、「 広告掲載オーダー サービス 」を参照してください)。
広告掲載オーダー JSON を作成する:
JSON の例: 終了日なし、予算なし
$ cat insertion-order-noenddate.json { "insertion-order": { "name": "Curated Deal Line Item Example IO", "budget_intervals": [{ "start_date": "2019-10-10 00:00:00", "end_date": null, "daily_budget": null, "daily_budget_imps": null, "enable_pacing": true, "lifetime_budget": null, "lifetime_budget_imps": null, "lifetime_pacing": false }], "budget_type": "impression" } }この広告掲載オーダー JSON と適切な
advertiser_idとmember_idを使用して、https://api.appnexus.com/insertion-orderエンドポイントにPOST要求を行います。要求の例: 終了日なし、予算なし
$ curl -b cookies -c cookies -X POST -d @insertion-order-noenddate.json 'https://api..com/insertion-order?advertiser_id=2605036&member_id=2378'要求の応答本文を確認します。 要求が成功した場合は、"
OK" の "status" が表示され、行った更新が表示されます。手順 6 - キュレーションされた取引ライン アイテムの作成でキュレーションされた取引ライン アイテムを作成するときに使用できるように、応答本文の広告掲載オーダー ID をメモします。
シームレスな広告掲載オーダーの JSON フィールド
| フィールド | 種類 | 必須またはオプション | 説明 |
|---|---|---|---|
budget_intervals |
オブジェクトの配列 | 必須 | API を介して作成された広告掲載オーダーをシームレスにするには、 budget_intervals フィールドを使用する必要があります。 |
name |
string | 必須 | 広告主の名前 |
手順 4 - 取引を作成する
キュレーションされた取引品目に関連付ける取引を作成する必要があります。
取引を作成するには、次の手順を実行します (詳細については、「 取引サービス 」を参照してください)。
取引 JSON の作成:
$ cat deal.json { "deal": { "name": "Curated Deal", "buyer": { "id": 2379 }, "type": { "id": 5, "name": "Curated" }, "version": 2 } }この取引 JSON と適切な
member_idを使用して、https://api.appnexus.com/dealエンドポイントにPOST要求を行います。$ curl -b cookies -c cookies -X POST -d @deal.json 'https://api.appnexus.com/deal?member_id=2378'要求の応答本文を確認します。 要求が成功した場合は、"
OK" の "status" が表示され、行った更新が表示されます。手順 6 - キュレーションされた取引品目の作成で取引品目を作成するときに使用できるように、応答本文の取引 ID をメモします。
取引の JSON フィールド
| フィールド | 種類 | 必須またはオプション | 説明 |
|---|---|---|---|
auction_type |
object | 省略可能 | 取引のオークションの種類 (Standard/Fixed/Market)。 この値は、キュレーションされた取引品目に設定されている値と一致する必要があります ( revenue_type/min_revenue_value/revenue_value 経由)。 |
buyer |
string | 必須 | 取引の購入者メンバー ID。 このフィールドは作成後に変更できません。 |
name |
string | 必須 | 取引の名前。 注: 購入者にはこの名前が表示されます。 |
type |
object | 必須 | 取引の種類。 キュレーションされた取引については、このフィールドを "5" に設定する必要があります。 |
version |
int | 必須 | 取引をキュレーションされた取引品目に関連付けるには、このフィールドを "2" に設定する必要があります。 |
便利なオプションの JSON フィールド
許可されているクリエイティブの JSON フィールド
ブランド ( 「ブランド サービス」を参照)
| フィールド | 種類 | 説明 |
|---|---|---|
brand_restrict |
ブール値 |
-
True: セールはリストされているブランドのみに制限されています- False: 他のブランドも提供できます |
brands |
オブジェクトの配列 | 対象ブランドの配列 |
id |
int |
brands内のフィールド: 取引の対象となるブランドの ID |
name |
string |
brands内のフィールド: 取引の対象となるブランドの名前 |
override |
ブール値 |
brands内のフィールド: true に設定すると、広告品質プロファイルでブロックされている場合でも、特定のブランドが取引に提供されます。 |
ブランドの例
"brand_restrict": true,
"brands": [
{
"id": 2,
"name": "1800Flowers",
"override": true
},
{
"id": 4,
"name": "Acura",
"override": false
}
]
Media type ( 「Media Subtype Service 」および 「Media Type Service」を参照)
| フィールド | 種類 | 説明 |
|---|---|---|
allowed_media_subtypes |
オブジェクトの配列 | 取引で許可されているメディア サブタイプ。 |
id |
int |
allowed_media_subtypes内のフィールド: 取引に許可されているメディア サブタイプの ID |
allowed_media_types |
オブジェクトの配列 | 取引で許可されているメディアの種類 |
id |
int |
allowed_media_types内のフィールド: 取引に許可されているメディア タイプの ID |
メディア タイプの例
"allowed_media_subtypes": [
{
"id": 2,
"last_modified": "2015-09-17 19:19:21",
"media_type": {
"id": 2,
"media_type_group_id": 2,
"name": "Pop",
"uses_sizes": "sometimes"
},
"name": "Popup",
"native_assets": null,
"permitted_sizes": null
}
],
"allowed_media_types": [
{
"id": 1,
"last_modified": "2012-03-16 21:36:10",
"media_type_group_id": 1,
"name": "Banner",
"uses_sizes": "always"
},
{
"id": 4,
"last_modified": "2016-08-22 16:23:12",
"media_type_group_id": 1,
"name": "Video",
"uses_sizes": "never"
}
]
手順 5 - キュレーションされた取引ライン アイテム プロファイルを作成する
次に、キュレーションされた取引品目によるターゲティングに使用するキュレーションされた取引品目プロファイルを作成します。 後で使用できるように、このプロファイルの ID を必ずメモしておいてください。 詳細については 、「プロファイル サービス」 を参照してください。
注:
次の配列を使用して、キュレーションされた取引ライン アイテムで販売者のパブリッシャー、プレースメント、カテゴリをターゲットにすることができます:
platform_publisher_targetsplatform_placement_targets-
platform_content_category_targets.
キュレーションされた取引品目で placement_targets、 publisher_targets、または content_category_targets を使用することはできません。 詳細については 、「プロファイル サービス」 を参照してください。
キュレーションされた取引ライン アイテム プロファイルを作成するには、次の手順を実行します (詳細については、「 プロファイル サービス 」を参照してください)。
キュレーションされた取引ライン アイテム プロファイル JSON を作成します:
例: 国とビュー レートの完了率のしきい値を含むプロファイル作成
$ cat profile.json { "profile": { "country_action": "include", "country_targets": [{ "active": true, "code": "US", "id": 233, "name": "United States" }], "engagement_rate_targets": [{ "engagement_rate_pct": 25, "engagement_rate_type": "video_completion" }, { "engagement_rate_pct": 50, "engagement_rate_type": "predicted_iab_video_view_rate" } ], "platform_publisher_targets": [{ "action": "include", "deleted": false, "id": 1238721, "name": "test_publisher" }], "platform_placement_targets": [{ "action": "include", "deleted": false, "id": 5126395 }, { "action": "include", "deleted": false, "id": 5301719 } ], "platform_content_category_targets": [{ "action": "include", "deleted": false, "id": 19062, "is_system": false, "name": "1" }] } }例: ターゲティングなしのプロフィール作成
> cat profile.json { "profile": { } }このキュレーションされた取引プロファイル JSON と適切な
advertiser_idを使用して、https://api.appnexus.com/profileエンドポイントにPOST要求を行います。例: 国とビュー レートの完了率のしきい値を含むプロファイル作成
> curl -b cookies -c cookies -X POST -d @profile.json 'https://api.appnexus.com/profile?advertiser_id=3410892&member_id=2378'例: ターゲティングなしのプロフィール作成
> curl -b cookies -c cookies -X POST -d @profile.json 'https://api.appnexus.com/profile?advertiser_id=3410892&member_id=2378'要求の応答本文を確認します。 要求が成功した場合は、"
OK" の "status" が表示され、行った更新が表示されます。手順 6 - キュレーションされた取引品目を作成するでキュレーションされた取引品目を作成するときに使用できるように、応答本文のプロファイル ID をメモします。
取引ライン アイテム プロファイルのオプションの JSON フィールド
キュレーションされた取引ライン アイテム プロファイルには、キュレーションされた取引ライン項目でターゲット設定するために使用できるオプション フィールドが多数あります。 たとえば、インベントリ、インベントリの種類、許可リスト、ブロックリスト、デバイスの種類などに関連するプロパティをターゲットにすることができます。 使用可能なフィールドについて詳しくは、 プロファイルサービス を参照してください。
手順 6 - キュレーションされた取引品目を作成する
最後に、キュレーションされた取引ライン アイテムを作成して、取引 ID と 、手順 5 - キュレーションされた取引ライン アイテム プロファイルの作成で作成したキュレーションされた取引ライン アイテム プロファイルを関連付ける必要があります。
キュレーションされた取引ライン アイテムを作成するには、次の手順を実行します (詳細については 、「ライン アイテム サービス 」を参照してください)。
キュレーションされた取引品目 JSON を作成します (既存の広告主 ID、広告掲載オーダー ID、取引 ID、プロフィール ID が必要です)。
JSON の例: キュレーションされた取引ライン アイテムに予算がない
> cat curated_deal_line_item.json { "line-item": { "ad_types": ["video"], "auction_event": { "kpi_auction_type_id": 1, "payment_auction_type_id": 1, "revenue_auction_type_id": 1 }, "budget_intervals": [{ "start_date": "2019-10-11 12:00:00" }], "deals": [{ "id": 628539 }], "insertion_orders": [{ "id": 1363850 }], "line_item_subtype": "standard_curated", "name": "Curated Deal Line Item Example Line Item", "revenue_type": "vcpm", "revenue_value": null, "supply_strategies": { "managed": false, "deals": true, "rtb": false }, "profile_id": 113067333, "valuation": { "min_revenue_value": 10 } } }JSON の例: キュレーションされた取引ライン アイテムの 1 日あたりの収益予算
> cat curated_deal_line_item_daily.json { "line-item": { "ad_types": ["video"], "auction_event": { "kpi_auction_type_id": 1, "payment_auction_type_id": 1, "revenue_auction_type_id": 1 }, "budget_intervals": [{ "daily_budget_imps": 270, "end_date": "2019-10-18 23:59:59", "start_date": "2019-10-11 12:00:00", "timezone": "US/Pacific" }], "deals": [{ "id": 618159 }], "insertion_orders": [{ "id": 1363850 }], "line_item_subtype": "standard_curated", "name": "Curated Deal Line Item Example Line Item", "revenue_type": "vcpm", "revenue_value": null, "supply_strategies": { "managed": true, "deals": true, "rtb": false }, "profile_id": 113067333, "valuation": { "min_revenue_value": 10 } } }この取引ライン アイテム JSON と適切な
advertiser_idを使用して、https://api.appnexus.com/line-itemエンドポイントにPOST要求を行います。要求の例: キュレーションされた取引ライン アイテムの予算なし
> curl -b cookies -c cookies -X POST -d @curated_deal_line_item.json 'https://api.appnexus.com/line-item?member_id=2378&advertiser_id=3410892'要求の例: キュレーションされた取引ライン アイテムの 1 日あたりの収益予算
> curl -b cookies -c cookies -X POST -d @curated_deal_line_item_daily.json 'https://api.appnexus.com/line-item?member_id=2378&advertiser_id=3410892'要求の応答本文を確認します。 要求が成功した場合は、"
OK" の "status" が表示され、行った更新が表示されます。このキュレーションされた取引ライン アイテムを後で特定して、その
state(activeまたはinactive) を変更したり変更したりできるように、応答本文のライン アイテム ID をメモします。
キュレーションされた取引品目の JSON フィールド
| フィールド | 種類 | 説明 |
|---|---|---|
insertion_orders |
配列 | このキュレーションされた取引品目を関連付ける広告掲載オーダー ID を含む配列 |
name |
string | キュレーションされた取引品目の名前 (注: 購入者には表示されません) |
ad_types |
配列 | このキュレーションされた取引品目に使用されたクリエイティブのタイプ。 使用可能な値: - "banner"- "video" (オーディオ タイプも含む)- "native" |
line_item_subtype |
列挙 | 品目のサブタイプ。 キュレーションされた取引品目の場合、このフィールドの値は "standard_curated" である必要があります。
このフィールドの「備考」を参照してください。 |
profile_id |
integer | キュレーションされた取引ライン アイテムに関連付けられているプロファイル ID ( 「手順 5 - キュレーションされた取引ライン アイテム プロファイルを作成する」を参照) |
budget_intervals |
オブジェクトの配列 | 常に start_dateを含めます。 終了日のない取引品目についてはその end_datenull ままにしておきます。 |
deals |
オブジェクトの配列 | 取引内の id フィールドは、 手順 4 - 取引の作成で作成した取引の ID である必要があります。 |
supply_strategies |
object | ターゲットにする在庫供給ソースを指定するために使用されるいくつかのブール型フィールドを含むオブジェクト。 キュレーションされた取引品目の場合、 managed フィールドを false に設定する必要があります (この値は、 "line_item_subtype" が "standard_curated" に設定されている場合に割り当てられます)注: rtb フィールドや deals フィールドは true に設定する必要があるため ( "line_item_subtype" が "standard_curated" に設定されている場合、これらのフィールドは割り当てられません)、それに応じてこれらの値を割り当てる必要があります。用語の注記: - rtb Open Exchange Inventory Aggregation を参照します- deals 参照 ロールアップ取引例: - Open Exchange: "supply_strategies": { "managed": false, "rtb": true, "deals": false}, - すべての取引: "supply_strategies": { "managed": false, "rtb": false, "deals": true }, |
revenue_type |
列挙 |
cpm固定価格 (CPM) 取引の場合、Standard価格 (動的 CPM) 取引の場合vcpm。 |
revenue_value |
double |
revenue_typeを cpm (固定) に設定している場合は、revenue_value を使用して固定価格を設定します。 Standard を使用している場合は、この値を null に設定します。 |
valuation |
object | キュレーションされた取引には、次の評価オブジェクト フィールドを使用します。 - min_revenue_value - revenue_typeを vcpm (Standard) に設定する場合は、min_revenue_value でフロア価格を設定します。- revenue_type を cpm (固定)に設定する場合は、 min_revenue_value の値を nullに設定します。 - min_margin_cpm - CPMをマージンタイプとして使用する場合は、マージン値を min_margin_cpm に設定します。- min_margin_pct - パーセンテージを証拠金タイプとして使用する場合は、証拠金の値を min_margin_pct に設定します。注: min_margin_cpm フィールドと min_margin_pct フィールドの両方を同時に設定することはできません。 一方を設定している場合は、もう一方を nullする必要があります。 |
auction_event |
object | オークション イベント タイプのプロパティのオブジェクト: auction_event オブジェクトの kpi_auction_type_id、 payment_auction_type_id、 revenue_auction_type_id フィールドをすべて 1 に設定する必要があります。 |
フィールド line_item_subtype メモ
line_item_subtypeフィールドを "standard_curated" に設定すると、これらの関連フィールドに次の値が自動的に割り当てられます。
"line_item_type": "standard_v2",
"bid_object_type": "deal",
"delivery_model_type": "standard",
"supply_strategies": {
"managed": false,
"programmatic_guaranteed": false
}
line_item_subtypeフィールド (および関連するフィールド/配列) は、明細行品目の作成後は変更できません。
キュレーションされた取引ライン アイテムに便利なオプションの JSON フィールド
| フィールド | 種類 | 説明 |
|---|---|---|
budget_intervals |
オブジェクトの配列 |
daily_budget、daily_budget_imps、lifetime_budget、lifetime_budget_imps などのbudget_intervals内のフィールドを使用して、取引の予算を設定します。 キュレーションされた取引ライン アイテムに収益予算タイプがある場合は imp のないフィールドを使用し、取引ライン アイテムに収益タイプのインプレッションがある場合は、末尾に _imp のあるフィールドを使用します。 1 日あたりの予算または生涯予算のどちらかを設定できます。両方は設定できません。 フライト間で保持される有効期間予算は、最終的に API を介して各フライト間で分割されます。 取引に終了日が設定されていない場合、予算を設定できないことに注意してください。 |
state |
列挙 | キュレーションされた取引品目の状態。 既定値は active なので、すぐに取引を有効にしたくない場合は inactive に設定します。 |