購入側のセットアップ
広告掲載注文、広告申込情報、ターゲティングを使用して広告主を設定すると、複雑に見える場合があります。 このガイドでは、このプロセスについて説明します。 次に進むだけで、広告主と広告申込情報がすぐに稼働します。
前提条件
API を使用する前に、このドキュメントの「API はじめに」セクションを参照してください。 このセクションでは、テスト環境、使用制約、API セマンティクス (コマンドの実行、フィルター処理、並べ替えなど) とベスト プラクティスについて説明します。
操作の順序
購入側オブジェクトを設定する場合、それらのオブジェクトを正しい順序で設定すると、プロセスがはるかに簡単になります。 あなたが正しい順序で行かないと、何かを途中で取得し、「Oops、私は最初にabc>を作成<する必要があります」を実現します。既に設定した内容はいつでも元に戻って更新できますが、この操作の順序に従うと、自分で作業がはるかに簡単になります。
また、ここで設定した順序に従うと、途中で重要な設定を見逃す可能性が低くなります。 たとえば、プロフィールなしで広告申込情報やキャンペーンを作成することはできますが、それでも良いアイデアになることはほとんどありません。 プロファイルによってターゲット設定が決まります。また、プロフィールを持たないキャンペーンをアクティブ化した場合は、使用可能なインプレッションに入札します。ターゲットユーザー全員が見つからない可能性があり、予算が非常に迅速に使い果たされます。 体系的に順番に進んだ場合、何かを忘れる可能性ははるかに低くなります。
購入側オブジェクトを設定するための操作の順序を次に示します。
広告 主
注文の一番上には広告主が表示されます。 広告主の作成は常に最初のステップです。 ネットワーク内に複数の広告主を配置でき、各広告主は多数の広告掲載オーダーと広告申込情報を持つことができます。
支出以外のオブジェクト
次の手順では、いくつかのサブステップについて説明します。 この手順 のすべての サブステップは、任意の順序で作成できます。 クリエイティブの前にセグメント ピクセルを作成する場合、またはセグメント ピクセルの前にクリエイティブを作成する場合は、完全に自分次第です。 ただし、手順 3 の手順 2 オブジェクトの一部を使用する可能性が最も高いため、手順 3 に進む前にすべての手順 2 オブジェクトを作成する必要があります。 (この手順では、ここに示されているオプションよりも多くのオプションがあることに注意してください。このセットで作成するオブジェクトは、作成できる支出のないオブジェクトの例です)。
プロファイル
次にプロファイルが表示されます。 プロファイルは、広告申込情報またはキャンペーンでユーザーとインベントリをターゲットにするためのすべての方法を定義します。 次の手順に進む前にプロファイルを作成しない場合は、後でプロファイル情報を使用してすべてを更新する必要があります。
挿入順序
この手順では、挿入注文を作成します。 挿入注文には、広告主が一定期間割り当てた予算の合計や、広告主が利用するサードパーティの検証などの情報が含まれます。 挿入注文を使用すると、広告申込情報とキャンペーンをグループ化することもできます。 広告主の下に複数の挿入注文を作成できます。
行項目
手順 5 では、行項目を作成します。 広告申込情報には、広告主がオファリングに対して予算を設定した量や、広告主が必要とするターゲット設定などの情報が含まれます。 (ここでは、手順 3 で作成したプロファイルを追加できます)。広告主または広告掲載オーダーの下に複数の広告申込情報を作成できます。
Campaign
最後の手順では、キャンペーンを作成します。 キャンペーンでは、広告主の目標を達成する方法をより詳細に定義できます。 プロファイルをキャンペーンに添付できます。
ステップ バイ ステップ チュートリアル
これで、バイサイド パズルのピースと、それらを順番に配置する方法を理解したので、購入側の実装の作成について説明します。 これらの例では、非常に簡単なセットアップを行います。 各サービスで使用できるフィールドと設定は、ここに示されているものよりも多く存在します。 各サービスの詳細については、「 リファレンス」 セクションを参照してください。
手順 1: 広告主
もちろん、広告主から始めます。 広告主の名前とその状態を含む JSON ファイルを作成します。 ほとんどの広告主フィールドは既定値として残されています。 ただし、手順 4 では、挿入順序を作成します。 広告掲載注文を含める場合は、広告主 のuse_insertion_orders を true に設定する必要があります。 詳細については、「 広告主サービス 」を参照してください。
注:
広告主の状態を アクティブに設定しました。 広告主の準備が整う前に支出を開始しないように、最初にすべてのオブジェクトの状態を 非アクティブ に設定することをお勧めします。
$ cat advertiser.json
{
"advertiser": {
"name": "Advertiser1",
"state": "active",
"use_insertion_orders": "true"
}
}
次に、 広告主 サービスへの POST 呼び出しを行い、JSON ファイルを渡します。
$ curl -b cookies -X POST -d @advertiser.json 'https://api.appnexus.com/advertiser'
{
"response":{
"status":"OK",
"id":10
}
}
これで、広告主 1 という名前の広告主が作成されました。 上記のコマンドは、広告主 ID を含む新しい広告主を示すメッセージを返します。 この ID を書き留めます。以降のコマンドで使用します。
手順 2: 支出のないオブジェクト
この手順で作成するオブジェクトは "支出なし" オブジェクトです。つまり、それらに関連付けられた金額はありません。 これらはすべて互いに独立しており、さまざまな広告申込情報やキャンペーンで使用できます。 これらのオブジェクトは任意の順序で作成できます。 この図は 4 種類のオブジェクトを示していますが、サードパーティのピクセル、バッチ セグメント、IP 範囲リストなど、さらに多くの種類があります。 ここでは、いくつかの例を示します。
クリエイティブ
クリエイティブ サービスを呼び出すコマンドを次に示します。
$ curl -b cookies -X POST -d @creative.json 'https://api.appnexus.com/creative?advertiser_id=10'
クエリ文字列に advertiser_id が渡されていることに注意してください。 これにより、クリエイティブを先ほど作成した広告主に関連付けることができます。
creative.jsonファイルの内容は、クリエイティブの種類によって異なります。 さまざまなオプションがあります。ここに行くにはあまりにも多くの。 クリエイティブの種類と JSON ファイルを作成して作成する方法の詳細については、 Creative Service を参照してください。
変換ピクセル
ピクセル サービスは、変換ピクセルの作成に使用できる ID を生成します。 これらのピクセルを広告主ページに配置して、ビューベースとクリックベースのコンバージョンの両方を追跡できます。 変換ピクセルを作成するプロセスを次に示します。
$cat conversionpixel.json
{
"pixel": {
"name": "Conversion Pixel 1",
"state": "active",
"trigger_type": "hybrid",
"post_click_value": 8,
"post_view_value": 8
}
}
$ curl -b cookies -X POST -d @conversionpixel.json 'https://api.appnexus.com/pixel?advertiser_id=10'
{
"response":{
"status":"OK",
"id":15
}
}
クエリ文字列に advertiser_id をもう一度渡して、このピクセルを特定の広告主に関連付けます。
セグメントピクセル
セグメント サービスを使用して、 セグメント のターゲット設定を有効にするためにインベントリ ページに配置されるセグメント ピクセルを作成する ID を生成します。 セグメント のターゲット設定を使用すると、所属するセグメントに基づいてユーザーをターゲットに設定できます。 一般に、ユーザーはクリエイティブをクリックするなど、アクションに基づいてセグメントに追加されます。
$cat segmentpixel.json
{
"segment": {
"state": "active",
"short_name": "Segment Pixel 1"
}
}
$ curl -b cookies -X POST -d @segmentpixel.json 'https://api.appnexus.com/segment?advertiser_id=10'
{
"response": {
"status": "OK",
"id": "500"
}
}
返される ID を必ずメモしておいてください。プロファイルを作成するときは、次の手順でこの ID を追加する必要があります。
注:
ID を追跡し忘れた場合は、 いつでもセグメント サービスを別の呼び出しで検索できます。 ただし、 レート制限があるので、API 呼び出しで効率的であることを確認する必要があることに注意してください。
ドメイン リスト
ドメイン リストを使用すると、許可リストまたはブロックリストを作成できます。 許可リストにはキャンペーンのターゲット設定に含めるドメインが含まれており、ブロックリストには除外するドメインが含まれます。
$ cat domain-list.json
{
"domain-list":{
"name":"Domains to target",
"type":"white",
"domains":["domain-a.com", "domain-b.net", "domain-c.org"]
}
}
$ curl -b cookies -X POST -d @domain-list.json 'https://api.appnexus.com/domain-list'
{
"response":{
"status":"OK",
"id":9
}
}
ドメイン リストは domains 配列を使用して作成されていることに注意してください。 ドメイン リストを更新する必要がある場合は、PUT コマンドで append フラグを使用してください。 たとえば、作成したリストに domain-d.com と domain-e.com を追加するとします。 次のような新しい JSON ファイルを作成します。
$cat updated-domain-list.json
{
"domain-list": {
"id": 9
"domains": ["domain-d.com", "domain-e.com"]
}
}
これらのフィールドを既存のリストに追加するには、次のコマンドを実行します。
$ curl -b cookies -X PUT -d @update-domain-list.json 'https://api.appnexus.com/domain-list?id=9&append=true'
これにより新しいドメインが追加され、リストは次のようになります。
"domain-list": {
"id": 9,
"name": "Domains to Target",
"description": null,
"type": "white",
"last_modified": "2016-12-01 22:36:41",
"domains": [
"domain-a.com",
"domain-b.net",
"domain-c.org",
"domain-d.com",
"domain-e.com"
],
"num_domains": 5
クエリ文字列の append=true フラグをオフにした場合、現在のリストは更新プログラムのリストに置き換えられます。 たとえば、 append=true なしで実行したのと同じ PUT コマンドを使用すると、このドメイン リストが生成されます。
"domain-list": {
"id": 9,
"name": "Domains to Target",
"description": null,
"type": "white",
"last_modified": "2016-12-01 22:36:41",
"domains": [
"domain-d.com",
"domain-e.com"
],
"num_domains": 2
注:
アップロードするドメインは、通常、API で受け入れられる URI 仕様 に準拠している必要があります。 実際には、国際化されたドメイン名をアップロードする場合を除き、この要件を心配する必要はないでしょう。その場合は、アップロードする前に、ASCII 以外の文字を含むドメインが Punycode でエンコードされていることを確認する必要があります。
手順 3: プロファイル
使用しないオブジェクトを作成した後、次の手順はプロファイルを作成することです。 プロファイルは使用しないオブジェクトでもありますが、プロファイルでこれらのオブジェクトの一部を使用できるため、手順 2 のオブジェクトの後に作成する必要があります。 プロファイルは、性別、年齢、地域、頻度などの一連のターゲット パラメーターです。 これは、セグメント ピクセルを含む、システム内のいくつかのオブジェクトを使用して作成できます。
$cat profile.json
{
"profile": {
"segment_group_targets": [
{
"segments": [
{
"id": 500,
"action": "include",
"name": "Segment Pixel 1"
}
]
}
],
"domain_action": "exclude",
"domain_targets": [
{
"domain": "competitorURL.com"
},
{
"domain": "badURL.com"
}
]
}
}
$ curl -b cookies -X POST -d @profile.json 'https://api.appnexus.com/profile?advertiser_id=10'
{
"response": {
"status": "OK",
"count": 1,
"id": 200,
...
}
}
この例では、手順 2 で作成したセグメント ピクセル (セグメント ピクセル 1) を使用しました。 このプロファイルは、そのセグメントに基づいてユーザーをターゲットにし、ここで指定した除外ドメインの一覧に含まれていないドメイン (competitorURL.com と badURL.com) もターゲットにします。 また、手順 2 で作成したドメイン リストを、domain_list_action フィールドと domain_list_targets フィールドを使用して使用することもできます。
このプロファイルは、「 手順 5: 行項目」の行項目に関連付けます。 ここでも、返された ID を追跡します。
手順 4: 挿入順序
次に、挿入順序を作成します。 これは、"支出" オブジェクトの最初のオブジェクトです。 これらは、どの期間にどの広告キャンペーンに費やされるかを決定するオブジェクトです。 挿入順序には、シームレスと非シームレスの 2 種類があります。 違いの詳細については、「 挿入注文サービス 」を参照してください。 シームレスな挿入順序が推奨されるモデルであるため、ここで作成します。
$ cat insertion-order.json
{
"insertion-order": {
"name": "Insertion Order 1",
"budget_intervals": [
{
"start_date": "2017-10-10 00:00:00",
"end_date": "2017-11-12 00:00:00",
"daily_budget": null,
"daily_budget_imps": 100,
"enable_pacing": true,
"lifetime_budget": null,
"lifetime_budget_imps": 2000,
"lifetime_pacing": false
},
{
"start_date": "2017-11-13 00:00:00",
"end_date": "2017-11-18 00:00:00",
"daily_budget": null,
"daily_budget_imps": 60,
"enable_pacing": true,
"lifetime_budget": null,
"lifetime_budget_imps": 300,
"lifetime_pacing": false
}
]
}
}
$ curl -b cookies -X POST -d @insertion-order.json "https://api.appnexus.com/insertion-order?advertiser_id=10'
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"insertion-orders": [
{
"id": 450450,
"name": "Insertion Order 1",
"code": null,
"state": "active",
"advertiser_id": 10,
"start_date": null,
"end_date": null,
"last_modified": "2016-11-1718: 41: 57",
"timezone": "EST5EDT",
"currency": "USD",
"comments": null,
"billing_code": null,
"line_items": null,
"labels": null,
"broker_fees": null,
"budget_intervals": [
{
"id": 111,
"start_date": "2017-10-1000: 00: 00",
"end_date": "2017-11-1200: 00: 00",
"parent_interval_id": null,
"lifetime_budget": null,
"lifetime_budget_imps": 2000,
"lifetime_pacing": false,
"enable_pacing": false,
"daily_budget_imps": 100,
"daily_budget": null
},
{
"id": 112,
"start_date": "2017-11-1300: 00: 00",
"end_date": "2017-11-1800: 00: 00",
"parent_interval_id": null,
"lifetime_budget": null,
"lifetime_budget_imps": 300,
"lifetime_pacing": false,
"enable_pacing": false,
"daily_budget_imps": 60,
"daily_budget": null
}
],
"lifetime_pacing": null,
"lifetime_budget": null,
"lifetime_budget_imps": null,
"enable_pacing": null,
"lifetime_pacing_span": null,
"allow_safety_pacing": null,
"daily_budget": null,
"daily_budget_imps": null
}
]
}
}
次の手順では、この挿入順序に関連付ける行項目を作成します。そのため、もう一度、作成した挿入順序の ID を追跡します。 また、予算間隔 ID も追跡する必要があります。 これらの ID を使用して、予算間隔情報を明細に関連付けます。
手順 5: 行項目
挿入注文と同様に、明細はシームレスまたは非シームレスにすることができます。 詳細については、「 Line Item Service 」を参照してください。 シームレスと非シームレスを組み合わせることはできません。そのため、手順 4. のシームレスな挿入順序に合わせてシームレスな行項目を作成します。 1 つの挿入順序で複数の明細を作成できます。 また、手順 3 で作成したプロファイルをこの行項目に添付し、プロファイル ID をフィールドに profile_id
割り当てます。
$ cat line-item.json
{
"line-item": {
"name": "Line Item 1",
"state": "active",
"insertion_orders": [
{
"id": 450450
}
],
"budget_intervals": [
{
"parent_interval_id": 111
},
{
"parent_interval_id": 112
}
],
"profile_id": 200
}
}
$ curl -b cookies -X POST -d @line-item.json "https://api.appnexus.com/line-item?advertiser_id=10"
{
"response": {
"status": "OK",
"count": 1,
"id": 230230,
"start_element": 0,
"num_elements": 100,
"line-item": {
"id": 230230,
"code": null,
"name": "Line Item 1",
"advertiser_id": 10,
"state": "active",
"start_date": null,
"end_date": null,
"timezone": "EST5EDT",
"discrepancy_pct": 0,
"publishers_allowed": "all",
"revenue_value": 0,
"revenue_type": "cpm",
"goal_type": "none",
"goal_value": null,
"last_modified": "2016-11-17 14:17:50",
"click_url": null,
"currency": "USD",
"require_cookie_for_tracking": true,
"profile_id": null,
"member_id": 1234,
"comments": null,
"remaining_days": null,
"total_days": null,
"manage_creative": false,
"advertiser": {
"id": 10,
"name": "AdvertiserA"
},
"flat_fee": null,
"delivery_goal": null,
"labels": null,
"broker_fees": null,
"pixels": null,
"insertion_orders": [
{
"id": 450450,
"state": "active",
"code": null,
"name": "Insertion Order 1",
"advertiser_id": 10,
"start_date": null,
"end_date": null,
"timezone": "EST5EDT",
"last_modified": "2016-11-17 13:56:56",
"currency": "USD",
"budget_intervals": [
{
"id": 111,
"object_id": 450450,
"object_type": "insertion_order",
"start_date": "2017-10-1000: 00: 00",
"end_date": "2017-11-1200: 00: 00",
"timezone": "EST5EDT",
"lifetime_budget": 1000,
"lifetime_budget_imps": null,
"lifetime_pacing": false,
"enable_pacing": false,
"daily_budget_imps": null,
"daily_budget": null
},
{
"id": 112,
"object_id": 450450,
"object_type": "insertion_order",
"start_date": "2017-11-1300: 00: 00",
"end_date": "2017-11-1800: 00: 00",
"timezone": "EST5EDT",
"lifetime_budget": 1000,
"lifetime_budget_imps": null,
"lifetime_pacing": false,
"enable_pacing": false,
"daily_budget_imps": null,
"daily_budget": null
}
]
}
],
"goal_pixels": null,
"imptrackers": null,
"clicktrackers": null,
"campaigns": null,
"valuation": {
"performance_mkt_managed": false,
},
"creatives": null,
"budget_intervals": [
{
"id": 1379,
"object_id": 2304000,
"object_type": "campaign_group",
"start_date": "2017-10-1000: 00: 00",
"end_date": "2017-11-1200: 00: 00",
"timezone": "EST5EDT",
"parent_interval_id": 111,
"budget_allocation": null
},
{
"id": 1380,
"object_id": 2304001,
"object_type": "campaign_group",
"start_date": "2017-11-1300: 00: 00",
"end_date": "2017-11-1800: 00: 00",
"timezone": "EST5EDT",
"parent_interval_id": 112,
"budget_allocation": null
}
],
"click_model": null,
"lifetime_budget": null,
"lifetime_budget_imps": null,
"daily_budget": null,
"daily_budget_imps": null,
"enable_pacing": null,
"allow_safety_pacing": null,
"lifetime_pacing": null,
"lifetime_pacing_span": null,
"lifetime_pacing_pct": null,
"payout_margin": null
}
}
}
新しい広告申込情報の ID をメモし、次の手順に進みます。
手順 6: キャンペーン
最後に、キャンペーンを作成します。 広告申込情報ではなく、キャンペーンにプロファイルを関連付けることができます。 広告申込情報ごとに複数のキャンペーンを作成できます。
$ cat campaign.json
{
"campaign": {
"state": "inactive",
"name": "Campaign 1",
"advertiser_id": 10,
"line_item_id": 230230,
"inventory_type": "direct"
}
}
$ curl -b cookies -X POST -d @campaign.json 'https://api.appnexus.com/campaign?advertiser_id=10'
{
"response": {
"status": "OK",
"id": 123456,
"dbg_info": {
...
}
}
}
そして、それはそれです。
これらの各サービスには、さらに多くのオプションがあります。 このチュートリアルでは、非常に基本的なセットアップを示しました。多くの場合、オブジェクトを作成するときにさらに多くの情報を追加する必要があります。 しかし、うまくいけば、このチュートリアルは、あなたに良い出発点を与えた。
概要
操作の順序に従う
- すべてが広告主に関連付けられているため、広告主を作成していない場合は、最初に作成します。
- 使用していないオブジェクト (クリエイティブ、セグメントなど) を任意の順序で作成します。
- ...プロファイルを除く。 プロファイルは支出以外のオブジェクトですが、最後に作成された非支出オブジェクトである必要があります。 これは、セグメントなど、他の支出以外のオブジェクトの一部に依存する場合があります。
- 広告表示順、広告申込情報、キャンペーン (必要に応じて) の 順序で支出オブジェクトを作成します。
以下の一般的なガイドラインに従ってください
支出オブジェクトに予算とフライトの日付を含めます。 順序の上位のオブジェクトに既にオブジェクトが存在する場合、明示的に変更されない限り、下位のオブジェクトはそれらを継承します。 下位オブジェクトの予算とフライトの日付は、上位のオブジェクトの予算とフライトの日付内にある必要があります。 (つまり、2017 年 4 月 2 日から 2017 年 4 月 30 日まで、挿入注文に予算間隔がある場合、2017 年 4 月 20 日から 2017 年 5 月 5 日の予算間隔でその挿入指図の下に広告申込情報を作成することはできません。
広告申込情報 (またはキャンペーン) にプロファイルを添付します。 プロファイルを添付しない場合は、深刻なターゲット設定と支出の問題が発生する可能性があります。
指定した開始日に支出を開始する準備ができたら、すべての支出オブジェクトの 状態 フィールドを アクティブ に設定します。 (オブジェクトの開始日に対する支出を開始しない場合は、状態を 非アクティブに設定します)。