販売側のセットアップ
販売側アクティビティに Xandr API 実装を設定すると、複雑に見える場合があります。 このページでは、一般的な API セットアップ用の販売側オブジェクトを作成および構成するプロセスについて説明します。
概要
通常、パブリッシャーを設定するには、対応する販売側オブジェクトを作成して構成するために、次の API サービス エンドポイントに要求を行う必要があります。
API エンドポイント | Sell-Side オブジェクト | 詳細なリファレンス |
---|---|---|
https://api.appnexus.com/publisher |
publisher |
Publisher Service |
https://api.appnexus.com/site |
site |
Site Service |
https://api.appnexus.com/placement |
placement |
Placement Service |
https://api.appnexus.com/payment-rule |
payment rule |
支払ルール サービス |
https://api.appnexus.com/ad-profile |
ad profile |
広告プロファイル サービス |
https://api.appnexus.com//ad-quality-rule |
ad quality rule |
広告品質ルール サービス |
このガイドでは、すべての要求の例を使用 cURL
します。 Postman などの他の API 要求ツールを使用できますが、それに応じて例を調整する必要があります。
注:
わかりやすくするために、提供される構成例では、オブジェクトを特定のユース ケースにカスタマイズしません。 各サービスで使用できる設定の詳細については、「 Sell-Side Services 」を参照してください。
前提条件
このセットアップを開始する前に、必ず API はじめにを読み取ってください。 テスト環境、使用制約、API セマンティクス (コマンドの実行、フィルター処理、並べ替えなど)、ベスト プラクティスに関する情報を提供します。
依存関係と操作の順序
販売側オブジェクトは、多くの場合、他の販売側オブジェクトに依存します。 たとえば、 支払いルールを作成または更新する場合は、要求に 発行元 ID を 指定する POST
必要があります。 ただし、必要なシステム生成パブリッシャー ID を取得するには、パブリッシャーを作成する (または既にアクセスできる) 必要があります。 販売側オブジェクトの間には、他にも多くの同様の依存関係があります。 このページで説明されている操作の順序に従うと、構成が容易になり、API に対して行う必要がある要求の数を減らすことができます。
注:
販売側オブジェクトが別の販売側オブジェクトとの依存関係を持っているかどうかを知る良い方法は、作成または更新に使用される JSON で必要なフィールドをメモすることです。 たとえば、オブジェクトの作成要求にPOST
必要なオブジェクト ID (、 などpublisher_id
ad_profile_id
) がある場合、そのオブジェクトは、必要な ID を持つオブジェクトに依存します。
次の図は、使用される発行元フィールド、作成または構成された販売側オブジェクト、および単純な販売側実装を設定するために必要なセットアップ手順を示しています。
注:
API "site"
オブジェクトは、 を使用して作成および構成するときに、"配置グループ" と呼ばれます。
ベスト プラクティス
API を操作するときに従うベスト プラクティスの一般的な一覧については、「 API のベスト プラクティス」を参照してください。 販売側 API のセットアップに固有のベスト プラクティスを次に示します。
- 既定のサイトと既定の配置を使用します。 既定のサイトと既定の配置を使用せずにパブリッシャーを作成できますが (詳細については、「 Publisher Service 」を参照)、通常、既定のサイトと既定の配置で、ターゲット設定の誤りについて "catchall" を提供する必要があります。
- パブリッシャーに広告品質ルールを設定します。 パブリッシャーに広告品質ルールが割り当てられていない場合、パブリッシャーの既定の広告プロファイルが自動的に適用されます。 パブリッシャーの既定の広告プロファイルがない場合は、ネットワーク広告プロファイルが適用されます。 パブリッシャーに広告品質ルールを設定すると、パブリッシャーのインベントリで配信される広告の種類をより詳細に制御できます。
- パブリッシャーの基本広告品質ルール ID を割り当てます。 パブリッシャーの基本広告品質ルールは "catchall" として機能し、次の 2 つの状況で適用されます。
- 条件付き広告品質ルールが定義されていない場合。
- 定義されている条件付き広告品質ルールが現在のインプレッションと一致しない場合。
- パブリッシャーが完全に構成され、テストの準備ができるまで、発行元のフィールドを に
"inactive"
設定します。state
- 作成するオブジェクトの ID をメモします。 作成したオブジェクトの ID は、要求の応答本文で返されます。 多くの場合、これらの ID は後で必要になるため、返されるときに ID をコピーすると、取得するために行う必要がある追加
GET
の要求の数を減らすことができます。
セットアップ手順
次の手順では、一般的な構成を使用してパブリッシャーを設定するプロセスについて説明します。
- 既定のサイトと既定の配置を持つ発行元を作成します。
- 既定のサイトを更新します。
- 既定の配置を更新します。
- 新しいサイトを作成します。
- 新しい配置を作成します。
- 基本支払いルールを更新します。
- 広告プロファイルを作成します。
- 広告品質ルールを作成します。
- 基本広告品質ルール ID を更新します。
認証
まず、承認トークンを取得する必要があります。 その後、後続のすべての要求にこの承認トークンを含める必要があります (詳細については、「 認証サービス 」を参照してください)。 承認トークンを取得するには、次の操作を行います。
ユーザー名とパスワードを含む JSON ファイルを作成します。
{ "auth": { "username" : "USERNAME", "password" : "PASSWORD" } }
POST
要求本文に/auth
この JSON ファイルを使用してエンドポイントに要求を行います (詳細については、「認証サービス」を参照してください)。 以下の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" } }
Publisher
手順 1: パブリッシャーの作成
パブリッシャーを作成するには、次の 2 つのオプションがあります (詳細については、「 Publisher Service 」を参照してください)。
- 既定のサイトと既定の配置を持つ発行元を作成します。
- 既定のサイトまたは既定の配置を使用せずにパブリッシャーを作成します。
パブリッシャーは、既定のサイトと既定の配置の両方を使用することをお勧めします。そのため、このセットアップ ガイドで注目するオプションです。 ターゲット設定が正しく構成されておらず、不一致の解決に役立つ場合は、既定のサイトと既定の配置で "catchall" を提供できます。
既定のサイトと既定の配置を持つ発行元を作成するには、次の操作を行います。
パブリッシャーに必要なフィールドを含む JSON ファイルを作成します (詳細については、「 Publisher Service 」を参照してください)。
注:
次の JSON 例のプレースホルダー (例:
"PUBLISHER_NAME"
) を独自の値に置き換えます。inventory_relationship
フィールドは必須であるため、 に"direct"
設定しています (ただし、他の値に設定できます)。 また、今のところ を に"inactive"
設定state
しました。 要求に他の発行元フィールドは提供されないため、既定値に設定され、応答本文に表示されます。{ "publisher": { "name": "PUBLISHER_NAME", "inventory_relationship": "direct", "billing_dba": "PUBLISHER_DBA", "billing_address1": "PUBLISHER_ADDRESS", "billing_city": "PUBLISHER_CITY", "billing_state": "PUBLISHER_STATE", "billing_zip": "PUBLISHER_ZIP", "billing_country": "PUBLISHER_COUNTRY", "contact": { "phone": "CONTACT_PHONE", "email": "CONTACT_EMAIL", "name": "CONTACT_NAME" } } }
要求本文に
POST
この JSON ファイルを/publisher
使用してエンドポイントに要求を行います。curl -b cookies -X POST -d @Publisher.json 'https://api.appnexus.com/publisher'
要求の応答本文を確認します (後述の 応答例 を参照)。 要求が成功した場合は、 の と、応答本文で
"publisher"
返されるパブリッシャー ID ("id"
オブジェクト内) が取得"status"
"OK"
されます。default_site_id
、default_placement_id
、および フィールドが (他の多くのフィールドとbase_payment_rule_id
共に) 入力されていることに注意してください。 後でpublisher
使用するために、ID、、default_placement_id
default_site_id
、および の値をbase_payment_rule_id
コピーします。応答の例
{ "response" : { "status" : "OK", "id" : "1256104", "start_element" : 0, "num_elements" : 100, "publisher" : { "contact" : { "phone" : "CONTACT_PHONE_NUMBER", "name" : "CONTACT_NAME", "email" : "CONTACT_EMAIL", "id" : 931326 }, "billing_zip" : "BILLING_ZIP", "allow_cpc_external" : false, "allow_report_on_default_imps" : false, "platform_ops_notes" : null, "inventory_relationship" : "direct", "billing_state" : "BILLING_STATE", "publisher_brand_exceptions" : null, "allow_cpm_external" : true, "default_site_id" : 3758012, "billing_dba" : "BILLING_DBA_NAME", "accept_data_provider_usersync" : null, "allow_cpc_managed" : true, "default_placement_id" : 13814496, "description" : "", "expose_domains" : true, "base_payment_rule_id" : 1579248, "default_ad_profile_id" : null, "name" : "PUBLISHER_NAME", "reselling_exposure" : "private", "code" : null, "is_oo" : false, "pitbull_segment_id" : 0, "learn_bypass_cpm" : 5, "managed_cpa_bias_pct" : 100, "billing_address2" : null, "max_learn_pct" : 0, "cpc_reselling_disabled" : false, "last_modified" : "2018-08-10 18:05:08", "billing_city" : "BILLING_CITY", "pitbull_segment_value" : 0, "base_ad_quality_rule_id" : null, "billing_country" : "BILLING_COUNTRY", "id" : 1256104, "inventory_source_name" : null, "disclosure_status" : "disclosed_pending", "seller_page_cap_enabled" : false, "currency" : "USD", "external_cpc_bias_pct" : 100, "billing_address1" : "BILLING_ADDRESS", "allow_cpa_managed" : true, "external_inv_codes" : null, "reselling_exposed_on" : "1970-01-01 00:00:01", "allow_cpa_external" : false, "cpm_reselling_disabled" : false, "billing_internal_user" : null, "allow_cpm_managed" : true, "labels" : null, "inventory_source" : null, "reselling_name" : null, "visibility_profile_id" : null, "ym_profile_id" : null, "contact_info" : null, "use_anx_auction_logic" : false, "ad_quality_advanced_mode_enabled" : true, "accept_demand_partner_usersync" : null, "state" : "inactive", "placements" : [ { "id" : 13814496, "code" : null } ], "is_rtb" : false, "accept_supply_partner_usersync" : null, "timezone" : "CET", "enable_cookie_tracking_default" : true, "managed_cpc_bias_pct" : 100, "external_cpa_bias_pct" : 100 }, "count" : 1 } }
手順 2: 既定のサイトを更新する
上記の「パブリッシャーの作成」でパブリッシャーを作成したときに、既定のサイト が作成 されました。 この既定のサイトでは、機能するために追加の構成は必要ありませんが、必要に応じて一部のフィールドを更新できます。 既定のサイトを更新するには、次の操作を行います。
ヒント
API "site"
オブジェクトは、 を使用して作成および構成するときに、"配置グループ" と呼ばれます。
更新する既定のサイトのフィールドを含む JSON ファイルを作成します (詳細については、「 Site Service 」を参照してください)。 この例では、配列を
content_categories
更新しています。{ "site": { "content_categories": [{ "id": 8, "name": "Business & Industry", "is_system": true }, { "name": "Arts & Entertainment", "id": 10, "is_system": true }, { "is_system": true, "id": 29, "name": "Sports" } ] } }
要求本文に
PUT
この JSON ファイルを/site
使用してエンドポイントに要求を行います。 要求のクエリ文字列で更新する既定のサイトのサイト ID を示す必要があります。ヒント
上記の パブリッシャーの作成 で既定のサイト ID をコピーした場合は、これを使用できます。 それ以外の場合は、更新する既定のサイトを持つパブリッシャーの発行元 ID を使用してエンドポイントに
/publisher
要求を行GET
うことで、既定のサイト ID を取得できます (詳細については、「Publisher Service」を参照してください)。curl -b cookies -X PUT -d @DefaultSiteUpdate.json 'https://api.appnexus.com/site?id=DEFAULT_SITE_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、行った更新が表示されます。応答の例
{ "response" : { "site" : { "url" : "", "publisher_name" : "PUBLISHER_NAME", "creative_format_action" : "exclude", "code" : null, "managed_optimization_zone_id" : "262", "audited" : false, "intended_audience" : null, "content_categories" : [ { "name" : "Business & Industry", "is_system" : true, "id" : 8 }, { "name" : "Arts & Entertainment", "is_system" : true, "id" : 10 }, { "name" : "Sports", "is_system" : true, "id" : 29 } ], "marketplace_map" : { "rtb" : true, "an_audit_perf_only" : false, "rtb_suspended" : false, "deals_suspended" : false, "deals_allowed" : true, "performance" : false }, "creative_formats" : null, "name" : "[DEFAULT_SITE_NAME] - ROS", "id" : 3731466, "mobile_app_instance" : null, "allowed_click_actions" : null, "last_modified" : "2018-08-17 23:44:07", "inventory_attributes" : null, "primary_content_category_id" : null, "state" : "active", "publisher_id" : 1240580, "rtb_optimization_zone_id" : null, "supply_type" : "web", "placements" : [ { "code" : null, "id" : 13741957 } ] }, "id" : "3731466", "start_element" : 0, "count" : 1, "status" : "OK", "num_elements" : 100 } }
手順 3: 既定の配置を更新する
既定の配置は、上記の「パブリッシャーの作成」でパブリッシャー を作成したときに作成 されました。 この既定の配置では、機能するために追加の構成は必要ありませんが、必要に応じて一部のフィールドを更新できます。 既定の配置を更新するには、次の操作を行います。
更新する既定の配置のフィールドを含む JSON ファイルを作成します (詳細については、「 配置サービス 」を参照してください)。 この例では、既定の配置の
default_position
フィールドを更新しています。{ "placement" : { "default_position" : "above" } }
要求本文に
PUT
この JSON ファイルを/placement
使用してエンドポイントに要求を行います。 要求のクエリ文字列で更新する既定の配置の配置 ID を示す必要があります。注:
上記の 「パブリッシャーの作成 」で既定の配置 ID をコピーした場合は、これを使用できます。 それ以外の場合は、更新する既定の配置を持つ発行元の発行元 ID を使用してエンドポイントに
/publisher
要求を行GET
うことで、既定の配置 ID を取得できます (詳細については、「Publisher Service」を参照してください)。curl -b cookies -X PUT -d @DefaultPlacementUpdate.json 'https://api.appnexus.com/placement?id=DEFAULT_PLACEMENT_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、行った更新が表示されます。応答の例
{ "response" : { "start_element" : 0, "status" : "OK", "id" : "13741957", "num_elements" : 100, "placement" : { "private_sizes" : null, "publisher_id" : 1240580, "code3" : null, "width" : null, "ad_types" : null, "pixel_type" : "image", "acb_code" : null, "cost_cpm" : null, "inventory_attributes" : null, "estimated_clear_prices" : [ { "width" : 0, "geo_country" : "", "height" : 0, "clear_price" : 1, "average_price" : 0.5, "verified" : true } ], "demand_filter_action" : "default", "content_categories" : null, "is_prohibited" : false, "site_name" : "[DEFAULT_SITE_NAME] - ROS", "code2" : null, "reserve_price" : null, "site_audit_status" : "unaudited", "audited" : false, "id" : 13741957, "state" : "active", "name" : "[PLACEMENT_NAME] - Default", "filtered_advertisers" : null, "default_creative_id" : null, "pop_values" : null, "exclusive" : false, "toolbar" : null, "default_creatives" : null, "enable_for_mediation" : false, "mime_types" : null, "segments" : null, "visibility_profile_id" : null, "pixel_url_secure" : null, "default_calculation_type" : "gross", "code" : null, "default_position" : "above", "filtered_campaigns" : null, "filtered_line_items" : null, "supported_mime_types_action_include" : false, "supported_media_subtypes" : null, "ad_profile_id" : null, "content_retrieval_timeout_ms" : 0, "audit_level" : "site", "tag_data" : null, "use_detected_domain" : true, "is_resizable" : false, "vendor_id" : null, "intended_audience" : null, "hide_referer" : false, "supported_media_types" : [ { "id" : 1, "name" : "Banner", "is_private" : false } ], "default_referrer_url" : null, "floor_application_target" : "all", "pixel_url" : null, "site_id" : 3731466, "publisher_name" : "PUBLISHER_NAME", "media_subtypes" : null, "video" : null, "last_modified" : "2018-08-20 17:17:42", "height" : null, "is_prebid_enabled" : false, "buy_it_now_price" : 0 }, "count" : 1 } }
手順 4: 新しいサイトを作成する
上記のパブリッシャーの作成でパブリッシャー を 作成したときに既定のサイトが作成されましたが、これは通常、構成ミスをターゲットにするための "catchall" として使用され、通常は既定の配置のみが含まれます。 パブリッシャーに新しい配置を追加する必要があるため、最初に新しい配置を含む新しいサイトを作成する必要があります。 新しいサイトを作成するには、次の操作を行います。
新しいサイトのフィールドを含む JSON ファイルを作成します (詳細については、「 Site Service 」を参照してください)。 この例では、配列内の
content_categories
フィールドと必要なフィールドを含めます。{ "site" : { "name" : "NEW_SITE_NAME", "rtb" : true, "content_categories" : [ { "id" : 8, "name" : "Business & Industry", "is_system" : true }, { "name" : "Arts & Entertainment", "id" : 10, "is_system" : true }, { "is_system" : true, "id" : 29, "name" : "Sports" } ] } }
要求本文に
POST
この JSON ファイルを/site
使用してエンドポイントに要求を行います。 要求のクエリ文字列で、サイトを追加する発行元の を示すpublisher_id
必要があります。ヒント
上記の「パブリッシャーの作成」で パブリッシャー ID をコピーした場合は、これを使用できます。
curl -b cookies -X POST -d @NewSite.json 'https://api.appnexus.com/site publisher_id=PUBLISHER_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、新しいサイトのフィールドが表示されます。 サイト ID をコピーして、新しいサイトに配置を追加するときに使用できるようにします。応答の例
{ "response" : { "status" : "OK", "start_element" : 0, "id" : 3804119, "num_elements" : 100, "site" : { "content_categories" : [ { "id" : 8, "is_system" : true, "name" : "Business & Industry" }, { "name" : "Arts & Entertainment", "is_system" : true, "id" : 10 }, { "is_system" : true, "id" : 29, "name" : "Sports" } ], "id" : 3804119, "creative_formats" : [ "text" ], "mobile_app_instance" : null, "audited" : false, "rtb_optimization_zone_id" : null, "marketplace_map" : { "rtb" : true, "performance" : false, "deals_suspended" : false, "rtb_suspended" : false, "an_audit_perf_only" : false, "deals_allowed" : true }, "supply_type" : "web", "code" : null, "creative_format_action" : "exclude", "inventory_attributes" : null, "name" : "NEW_SITE_NAME", "allowed_click_actions" : [ "click-to-web" ], "intended_audience" : null, "publisher_id" : 1229638, "primary_content_category_id" : null, "managed_optimization_zone_id" : "262", "publisher_name" : "MarkD_Test05", "placements" : null, "url" : "", "state" : "active", "last_modified" : "2018-09-08 00:01:40" }, "count" : 1 } }
手順 5: 新しい配置を作成する
[上記のパブリッシャーの作成] でパブリッシャー を 作成したときに既定の配置が作成されましたが、1 つ以上のプレースメントを作成し、パブリッシャーに追加して広告の配置のターゲット設定を処理する必要があります。 配置を作成してパブリッシャーに追加するには、次の操作を行います。
追加する配置のフィールドを含む JSON ファイルを作成します (詳細については、「 Placement Service 」を参照してください)。 この例では、必要なフィールドと、サポートされているメディアの種類の情報を含めます。
{ "placement" : { "name" : "NEW_PLACEMENT_NAME", "state" : "inactive", "supported_media_types" : [ { "name" : "Banner", "is_private" : false, "id" : 1 } ] } }
要求本文に
POST
この JSON ファイルを/placement
使用してエンドポイントに要求を行います。 要求のクエリ文字列に、配置を追加するサイトの を追加site_id
する必要があります (詳細については、「 配置サービス 」を参照してください)。ヒント
上記の 「新しい サイトの作成」でサイト ID をコピーした場合は、配置を追加するときにこれを使用できます。 パブリッシャーのサイト ID を取得するには、サイトを持つ発行元の発行元 ID を使用してエンドポイントに対して
/site
GET 要求を行います (詳細については、「 Site Service 」を参照してください)。curl -b cookies -X POST -d @NewPlacement.json 'https://api.appnexus.com/placement?site_id=SITE_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、新しい配置のフィールドが表示されます。応答の例
{ "response" : { "num_elements" : 100, "placement" : { "supported_mime_types_action_include" : false, "video" : null, "default_creative_id" : null, "private_sizes" : null, "code" : null, "height" : null, "audited" : false, "state" : "inactive", "filtered_line_items" : null, "last_modified" : "2018-08-20 22:40:09", "tag_data" : null, "content_retrieval_timeout_ms" : 0, "is_prebid_enabled" : false, "toolbar" : null, "pixel_url_secure" : null, "vendor_id" : null, "supported_media_types" : [ { "id" : 1, "is_private" : false, "name" : "Banner" } ], "default_position" : "unknown", "is_resizable" : false, "code3" : null, "filtered_advertisers" : null, "exclusive" : false, "site_id" : 3731466, "estimated_clear_prices" : [ { "average_price" : 0.5, "verified" : true, "clear_price" : 1, "width" : 0, "geo_country" : "", "height" : 0 } ], "name" : "NEW_PLACEMENT_NAME", "site_audit_status" : "unaudited", "site_name" : "SITE_NAME", "pop_values" : null, "media_subtypes" : null, "enable_for_mediation" : true, "supported_media_subtypes" : null, "segments" : null, "pixel_url" : null, "publisher_id" : 1240580, "pixel_type" : "image", "reserve_price" : null, "content_categories" : null, "audit_level" : "site", "mime_types" : null, "visibility_profile_id" : null, "id" : 13847262, "use_detected_domain" : true, "default_creatives" : null, "hide_referer" : false, "intended_audience" : null, "width" : null, "default_referrer_url" : null, "default_calculation_type" : "gross", "buy_it_now_price" : 0, "ad_profile_id" : null, "floor_application_target" : "all", "demand_filter_action" : "default", "filtered_campaigns" : null, "inventory_attributes" : null, "ad_types" : null, "cost_cpm" : null, "code2" : null, "acb_code" : null, "publisher_name" : "PUBLISHER_NAME", "is_prohibited" : false }, "status" : "OK", "start_element" : 0, "id" : 13847262, "count" : 1 } }
支払いルール
ネットワークと発行元の間の財務上の配置を構成する必要があります。 これは、基本支払ルールと条件付き支払ルールを使用して行います (詳細については、「 支払ルール サービス 」を参照してください)。
手順 6: 基本支払ルールを更新する
上記の「パブリッシャーの作成」で発行元を作成したときに、基本支払いルールが既定で 作成 されました。 通常、ネットワークと発行元の間の実際の財務上の取り決めを反映するように、この基本支払いルールを更新する必要があります。 基本支払ルールを更新するには、次の操作を行います。
必要な更新プログラムを含むフィールドを含む JSON ファイルを作成します (詳細については、「 支払ルール サービス 」を参照してください)。 この例では、 フィールドと
cost_cpm
フィールドをpricing_type
更新しています。注:
1 つのフィールドを変更するには、別の依存フィールドを変更する必要がある場合があります。 たとえば、フィールドの値を から
"revshare"
に変更するpricing_type
"cpm"
場合は、フィールドも更新するcost_cpm
必要があります。 詳細については、「 支払ルール サービス 」を参照してください。{ "payment-rule":{ "pricing_type": "cpm", "cost_cpm": "0.4" } }
要求本文に
PUT
この JSON ファイルを/payment-rule
使用してエンドポイントに要求を行います。 要求のクエリ文字列に基本支払いルール ID と発行元 ID を示す必要があります。注:
上記の「 パブリッシャーの作成 」でベースペイメント ルール ID とパブリッシャー ID をコピーした場合は、これらを使用できます。 それ以外の場合は、パブリッシャーの
/publisher
発行元 ID を使用してエンドポイントに要求を行GET
い、更新する基本支払いルール ID を見つけることができます (詳細については、「Publisher Service」を参照してください)。curl -b cookies -X PUT -d @UpdatePaymentRule.json 'https://api.appnexus.com/payment-rule?id=BASE_PAYMENT_RULE_ID&publisher_id=PUBLISHER_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、行った更新が表示されます。応答の例
{ "response" : { "id" : "1570229", "start_element" : 0, "count" : 1, "num_elements" : 100, "status" : "OK", "payment-rule" : { "id" : 1570229, "target_ecpm" : null, "priority" : 1, "lifetime_budget_imps" : null, "start_date" : null, "lifetime_budget" : null, "filtered_advertisers" : null, "description" : "", "last_modified" : "2018-08-21 22:26:19", "code" : null, "state" : "active", "daily_budget_imps" : null, "name" : "Base Payment Rule", "apply_cost_on_default" : false, "end_date" : null, "pricing_type" : "cpm", "buyer_type" : "both", "profile_id" : null, "revshare" : 0, "demand_filter_action" : "default", "filtered_campaigns" : null, "cost_cpm" : 0.4, "daily_budget" : null, "max_revshare" : null, "timezone" : "EST5EDT", "filtered_line_items" : null } } }
広告品質設定
パブリッシャーの広告品質設定を構成できるようになりました。 新しく作成されたパブリッシャーは、パブリッシャーの広告品質設定を作成して構成しない限り、ネットワーク広告品質設定を使用します。 広告品質設定を使用すると、パブリッシャーは広告枠で配信される広告の品質を判断できます。 これらの広告品質設定は、広告プロファイル (詳細については 「広告プロファイル サービス 」を参照) と基本および条件付き広告品質ルールで構成されます (詳細については、「 広告品質規則サービス 」を参照してください)。
広告品質ルールには広告プロファイル ID が必要であるため、広告品質ルールを作成して適用するには、広告プロファイルを作成する (または既存のものを使用する) 必要があります。
手順 7: 広告プロファイルを作成する
広告プロファイルは、パブリッシャーが配信する広告の特性の適格性 ("trusted"
または "banned"
) を示します。 これらの広告特性には、購入者、ブランド、カテゴリ、技術属性、言語、広告サーバーなどが含まれます。 その後、広告品質ルールを使用して広告プロファイルが適用されます。
注:
パブリッシャーに広告品質ルールが割り当てられていない場合、パブリッシャーの既定の広告プロファイルが自動的に適用されます。 パブリッシャーの既定の広告プロファイルがない場合は、ネットワーク広告プロファイルが適用されます。
広告プロファイルを作成するには、次の操作を行います。
必要な更新プログラムを含むフィールドを含む JSON ファイルを作成します (詳細については、「 Ad Profile Service 」を参照してください)。 この例では、 および カテゴリ配列に適格性情報を
technical_attributes
追加しています。{ "ad-profile" : { "technical_attributes" : [ { "id" : 2, "status" : "banned" }, { "id" : 8, "status" : "banned" }, { "status" : "banned", "id" : 22 }, { "status" : "banned", "id" : 104 } ], "categories" : [ { "id" : 37, "status" : "banned" }, { "status" : "banned", "id" : 109 }, { "id" : 166, "status" : "banned" } ], "description" : "AD_PROFILE_DESCRIPTION" } }
要求本文に
POST
この JSON ファイルを/ad-profile
使用してエンドポイントに要求を行います。 要求のクエリ文字列で、広告プロファイルを関連付ける発行元の を指定publisher_id
する必要があります注:
上記の「パブリッシャーの作成」で パブリッシャー ID をコピーした場合は、これを使用できます。
curl -b cookies -X POST -d @AdProfile.json 'https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID'
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が取得
"status"
"OK"
され、追加した値が他の既定の設定と共に表示されます。応答の例
{ "response" : { "ad-profile" : { "require_msft_audit" : false, "creatives" : null, "default_ad_server_status" : "trusted", "exclude_unaudited_direct" : false, "default_brand_status" : "trusted", "inventory_type" : "real_time", "excluded_landing_page_urls" : null, "default_category_status" : "trusted", "exclude_direct" : false, "categories" : [ { "status" : "banned", "id" : 37 }, { "status" : "banned", "id" : 109 }, { "id" : 166, "status" : "banned" } ], "exclude_unaudited" : true, "member_id" : 958, "require_google_audit" : false, "check_attributes_direct" : false, "description" : "AD_PROFILE_DESCRIPTION", "last_modified" : "2018-08-24 23:37:40", "technical_attributes" : [ { "status" : "banned", "id" : 2 }, { "id" : 8, "status" : "banned" }, { "id" : 22, "status" : "banned" }, { "status" : "banned", "id" : 104 } ], "audit_type_direct" : "platform_or_self", "require_landing_page_url" : false, "require_seller_audit_default" : false, "id" : 1223520, "ad_servers" : null, "allow_pending_creatives_direct" : false, "default_member_status" : "case-by-case", "members" : null, "languages" : null, "state" : "active", "require_msft_external_audit" : false, "default_audit_type" : "platform", "default_technical_attribute_status" : "trusted", "brands" : null, "frequency_caps" : null, "require_appnexus_review" : false, "publisher_id" : 1240580, "notes" : null, "default_language_status" : "trusted" }, "count" : 1, "start_element" : 0, "id" : 1223520, "num_elements" : 100, "status" : "OK" } }
手順 8: 広告品質ルールを作成する
ネットワーク プロファイルを超えて広告品質設定を構成することは省略可能ですが、パブリッシャー レベルで広告品質ルールを使用して広告品質を制御することをお勧めします。 パブリッシャー レベルで広告品質設定を構成する場合は、パブリッシャーの基本広告品質ルールが必要です。 これにより、条件付き広告品質規則が適用されない場合に備え、少なくとも一部の広告品質コントロールがパブリッシャー レベルで適用されるようになります。 基本広告品質ルールは、パブリッシャーのフィールドに割り当てられる広告品質ルールです (下記の「パブリッシャーのbase_ad_quality_rule_id
基本広告品質規則 ID の更新」を参照)。
広告品質ルールを作成するには、次の操作を行います。
必要なフィールドを含む JSON ファイルを作成します (詳細については、「 Ad Quality Rule Service 」を参照してください)。 この例では、広告プロファイルの ID (上記の「 広告プロファイルの作成 」を参照) を追加し、この広告品質ルールをこのルールの名前と優先順位と共に使用します。
{ "ad-quality-rule" : { "name" : "New_Ad_Quality_Rule", "ad_profile_id" : 1223520, "priority" : 1 } }
要求本文に
POST
この JSON ファイルを/ad-quality-rule
使用してエンドポイントに要求を行います。 要求のクエリ文字列で をpublisher_id
指定する必要があります。注:
上記の「パブリッシャーの作成」で パブリッシャー ID をコピーした場合は、これを使用できます。
curl -b cookies -X POST -d @AdQualityRule.json 'https://api.appnexus.com/ad-quality-rule?publisher_id=PUBLISHER_ID'
要求の応答本文を確認します (後述の 応答例 を参照)。 要求が成功した場合は、 が
"OK"
表示"status"
され、作成した広告品質ルールのフィールドが表示されます。 広告品質ルール ID をコピーして、次の手順でパブリッシャーの基本広告品質ルール ID を更新するときに使用できるようにします。応答の例
{ "response" : { "count" : 1, "start_element" : 0, "num_elements" : 100, "ad-quality-rule" : { "active" : true, "publisher_id" : 1240580, "id" : 632112, "member_id" : 958, "description" : null, "code" : null, "profile_id" : null, "priority" : 1, "name" : "New_Ad_Quality_Rule", "last_modified" : "2018-08-26 21:47:12", "ad_profile_id" : 1223520 }, "id" : 632112, "status" : "OK" } }
手順 9: 発行元の基本広告品質ルール ID を更新する
通常、基本広告品質ルールをパブリッシャーに割り当てる必要があります。 条件付き広告品質ルールが定義されていない場合、または条件付き広告品質ルールがインプレッションと一致しない場合、基本広告品質ルールは "catchall" 広告品質ルールとして機能します。 基本広告品質ルールに使用する広告品質ルールを作成したら、その広告品質ルールの ID を要求で PUT
パブリッシャーに割り当てるだけです。
パブリッシャーに基本広告品質ルールを割り当てるには、次の操作を行います。
発行元のフィールドの値
base_ad_quality_rule_id
を含む JSON ファイルを作成します (詳細については、「 Publisher Service 」を参照してください)。 この例では、上記の「広告品質ルールの作成」で作成した 広告品質ルール の ID を追加しています。PUT
要求本文にこの JSON ファイルを使用してエンドポイントに/publisher
要求を行います (詳細については、「Publisher Service」を参照してください)。 要求のクエリ文字列に発行元 ID を示す必要があります。ヒント
上記の「パブリッシャーの作成」で パブリッシャー ID をコピーした場合は、これを使用できます。
curl -b cookies -X PUT -d @PublisherBaseAdQualityRuleUpdate.json 'https://api.appnexus.com/publisher?id=PUBLISHER_ID' ```
要求の応答本文を確認します (下記の 応答例 を参照してください)。 要求が成功した場合は、 が
"OK"
表示"status"
され、行った更新が表示されます。応答の例
{ "response" : { "count" : 1, "status" : "OK", "start_element" : 0, "id" : "1240580", "publisher" : { "billing_address1" : "BILLING_ADDRESS", "managed_cpa_bias_pct" : 100, "inventory_source" : null, "external_cpc_bias_pct" : 100, "ym_profile_id" : null, "currency" : "USD", "allow_cpa_managed" : true, "inventory_source_name" : null, "use_anx_auction_logic" : false, "learn_bypass_cpm" : 5, "platform_ops_notes" : null, "contact" : { "phone" : "555-555-1212", "email" : "CONTACT_EMAIL@EMAIL.COM", "id" : CONTACT_ID, "name" : "CONTACT_NAME" }, "allow_cpc_managed" : true, "is_rtb" : false, "disclosure_status" : "disclosed_pending", "visibility_profile_id" : null, "billing_dba" : "BILLING_DBA", "reselling_exposure" : "private", "managed_cpc_bias_pct" : 100, "default_placement_id" : 13741957, "labels" : null, "accept_supply_partner_usersync" : null, "expose_domains" : true, "reselling_name" : null, "billing_internal_user" : null, "placements" : [ { "id" : 13741957, "code" : null }, { "id" : 13847262, "code" : null } ], "enable_cookie_tracking_default" : true, "external_inv_codes" : null, "inventory_relationship" : "direct", "pitbull_segment_value" : 0, "default_site_id" : 3731466, "publisher_brand_exceptions" : null, "billing_address2" : null, "timezone" : "CET", "contact_info" : null, "last_modified" : "2018-08-26 22:33:13", "code" : null, "billing_zip" : "BILLING_ZIP", "billing_country" : "US", "reselling_exposed_on" : "1970-01-01 00:00:01", "is_oo" : false, "billing_state" : "BILLING_STATE", "ad_quality_advanced_mode_enabled" : true, "allow_cpm_external" : true, "pitbull_segment_id" : 0, "base_ad_quality_rule_id" : 632112, "default_ad_profile_id" : null, "seller_page_cap_enabled" : false, "description" : "", "allow_cpa_external" : false, "id" : 1240580, "state" : "inactive", "billing_city" : "Portland", "max_learn_pct" : 0, "cpc_reselling_disabled" : false, "allow_report_on_default_imps" : false, "cpm_reselling_disabled" : false, "base_payment_rule_id" : 1570229, "name" : "PUBLISHER_NAME", "allow_cpm_managed" : true, "accept_demand_partner_usersync" : null, "accept_data_provider_usersync" : null, "external_cpa_bias_pct" : 100, "allow_cpc_external" : false }, "num_elements" : 100 } }