このページでは、ビッダーを Xandr と統合する方法について説明します。 これは、統合のさまざまな "レイヤー" の概要から始まり、テスト環境ですばやく起動して実行できるようにする単純な統合の実例 (実際の API 呼び出しを使用) で終わります。 また、Wikiの他の場所にあるより詳細な情報へのリンクも提供しています。
システム概要
大まかに言うと、ビッダーの設定時に注意する必要があるシステムの "レイヤー" が 2 つあります。
Real-Time レイヤー (RTB): これはアクションの中心であり、入札者はリアルタイム オークションに参加します。
サーバーは Web ページ (または SSP パートナー) から入札リクエストを受信し、それを書式設定して入札者に送信する準備をします。
入札者インスタンス (および入札者オブジェクト) の設定を使用して、要求をサーバーに送信します。
- 要求がヒットするエンドポイントは、要求の種類によって異なります。
構成レイヤー (API): ここでは、インプレッションに入札できるように入札者の「ビジネス ロジック」を構成します。つまり、不要なインプレッションをフィルタリングし、ユーザーを設定し、メンバーが提供したいクリエイティブを追加するなどです。
オブジェクト階層に関する注意事項
プラットフォーム オブジェクトが相互にどのように関連しているかを理解することが重要です。 以下は、オブジェクト階層の概要です。
入札者、メンバー、シート
- 入札者は、バイサイド階層内の最上位オブジェクトです。 これは、プラットフォーム上でのエンティティのプレゼンスを表します。
- その下にはメンバーがいます。 この関係はかつては一対多で、入札者には複数のメンバーのブレイクアウトがあった。
- これはもはや当てはまりません。 現在は 1 対 1 です。追加のメンバー ブレイクアウトはサポートされなくなりました。
- 1 人のメンバーと統合されます。これを「既定のメンバー」と呼びます。
- メンバーは、インプレッション バスを通じて購入 (または販売) を行う契約上の合意を結んでいるエンティティと見なされます (詳細については、「 メンバー サービス」を参照してください)。
- クリエイティブは、入札者ではなく、既定のメンバーに関連付けられます。
- 入札者自身が会員ではなく、会員の技術提供者です。
- ビッダーは、Xandr との接続を設定する場所です (受信するリクエストの種類、エンドポイントへの接続など)。
- メンバーは、クリエイティブなどのキャンペーン関連のオブジェクトを設定する場所です。
- 入札者は UI に統合されます。 インプレッション バスは、アグリゲーター、アド エクスチェンジ、ネットワーク再販在庫など、さまざまな在庫ソースと入札者を結び付けます。
- シートは内部エンティティであり、これを使用してオークションに入札し、対応する内部 ID を使用してインプレッションを購入できます。
- この階層を次の図に示します
- 前回のメンバーブレイクアウトでは、入札者の議席のどれがどのブレイクアウトメンバーに対応するかのマッピングを保持しました。 これにより、入札者は 100% の確率で内部 ID を使用して入札することができました。
- 1 人のメンバーのみと統合し、購入者シート入札では、デフォルト メンバーは 1 人だけになるため、シートとメンバーのマッピングについて心配する必要はありません。
ユーザー
従来、入札者は自分自身に代わって行動することも、複数のサードパーティ メンバーを持つこともできます。
メンバーは、メンバーが第三者を代表するかどうかにかかわらず、少なくとも 1 人のユーザーを持つ必要があります (詳細については、 ユーザー サービスを参照してください)。
- メンバーは多数のユーザーを持つことができます。
また、技術プロバイダーである入札者には、少なくとも 1 人のユーザーがいます。
入札者のユーザーは、入札者プロファイルの調整、入札者インスタンスの追加などを行います。
メンバー ユーザーがそのメンバーのクリエイティブをアップロードする、など。
入札者が会員と同じ法人であり、入札者が自分自身を代理するだけであっても、入札者は同じ方法で会員と論理的に区別されます。
入札者を設定する方法
このセクションでは、プラットフォームで入札者を設定するプロセス全体について説明します。 まず、パイプをフックするために必要な API 呼び出しを行います。
ヒント
API
ほとんどのクライアント テストは運用 API で行われます。 また、オブジェクトの作成とワークフローの更新をテストできるテスト環境 API もあります。
以下の呼び出し例のほとんどは、運用 API 環境で実行されます。
API による認証
他の操作を行う前に、ログインする必要があります。 使用できる認証 json の例を次に示します。 本番環境とテスト環境の認証プロセスは同じです。 唯一の違いはエンドポイントです。
ヒント
API による認証の詳細については、「 認証サービス」を参照してください。
認証 JSON の例
$ cat auth.json
{
"auth":
{
"username" : "rloveland",
"password" : "AppNexus1!"
}
}
認証するには、運用 API に投稿します。
運用 API での認証呼び出しの例
$ export IB="https://api.adnxs.com";
$ curl -b cookies -c cookies -X POST -d @auth.json $IB/auth
{ response": { "status": "OK", ... } }
同様に、テスト環境に投稿して認証します。
テスト API での認証呼び出しの例
$ export IB_TESTING="https://api-test.adnxs.com";
$ curl -b cookies -c cookies -X POST -d @auth.json $IB_TESTING/auth
{ response": { "status": "OK", ... } }
入札者オブジェクトを表示する
bidder オブジェクトは、システム内の入札者を表します。 そのため、入札者がプラットフォームとやり取りする方法を構成するために使用できるフィールドが多数あります。 これは、構成の残りの部分を吊るす中心的な "フック" と考えてください。 入札者オブジェクトは、Xandr の担当者によって既に作成されている必要があります。
以下の例では、ビッダー オブジェクトを表示するために GET 呼び出しを行いますが、その詳細については説明していません。 ビッダー オブジェクトの詳細については、 ビッダー サービスを参照してください。
呼び出しの例を展開する
$ export IB="https://api.adnxs.com";
$ curl -b cookies $IB/bidder/123
{
"response": {
"bidder": {
"active": true,
"always_send_owned_segments": true,
"audit_notify_uri": null,
"bid_percent": 100,
"bid_uri": "/xandr/bid",
"child_profiles": null,
"click_uri": null,
"daily_budget": null,
"daily_budget_imps": null,
"default_currency": "USD",
"default_member": {
"id": 9876,
"name": "Example Bidder's Default Member Name"
},
"dongle": null,
"exclude_unowned": false,
"id": 123,
"last_activity": "2021-02-03 19:47:25",
"lifetime_budget": null,
"lifetime_budget_imps": null,
"max_allowed_profiles": 5,
"max_seats": 10000,
"name": "ExampleBidder",
"notify_full_auction": false,
"notify_uri": null,
"num_conns": 3,
"object_limit_notify_email": null,
"parent_profile_id": null,
"pixel_uri": null,
"protocol_id": 10,
"protocol_name": "openrtb2",
"ready_uri": "/status/ready",
"send_class_2": true,
"send_class_3": true,
"send_owned_blocklist": false,
"send_public_deals": false,
"send_unaudited": true,
"setuid_function": null,
"short_name": "examplebidder",
"supports_deal_buyers": "seats",
"userdata_entity_id": null,
"userdata_javascript": null,
"vendor_id": null
},
"count": 1,
"dbg": {
"output_term": "bidder",
"version": "1.0.5",
"warnings": [
]
},
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}
入札者オブジェクトの構成
"Bidder" オブジェクトの次のフィールドでは、パスの前に IP アドレス/ホスト名を含めないでください。
IP アドレス は 、統合プロセスの次のステップで「Bidder Instance」オブジェクトで個別に構成されます。
| フィールド | 必須 | 説明 |
|---|---|---|
| bid_uri | 入札要求の送信先を指定するパス/ファイル名 (例: "/bidder") | |
| ready_uri | 準備完了要求の送信先を指定するパス/ファイル名 (例: "/ready") | |
| notify_uri | 通知 要求 の送信先を指定するパス/ファイル名 (例: "/notify") | |
| pixel_uri | オプション | コピー先を指定するパス/ファイル名 |
| click_uri | オプション | クリック要求の宛先を指定するパス/ファイル名 |
| audit_notify_uri | オプション | 監査 通知要求 の送信先を指定するパス/ファイル名 (たとえば、"https://examplebidder.com/audit_notify_endpoint") |
メンバー オブジェクトを表示する
入札者を通じて購入するメンバーが少なくとも 1 人いる必要があります。 オンボーディング プロセスの一環として、Xandr の担当者にメンバーを作成してもらう必要があります。 メンバーでは、ユーザー セグメントやクリエイティブなどの "ビジネス ロジック" の多くをここで構成します。
ヒント
以下の例では、メンバー オブジェクトを表示するために GET 呼び出しを行いますが、その詳細については説明していません。 表示されるフィールドの一部は非推奨である可能性があります。 現在サポートされているフィールドなど、メンバー オブジェクトの詳細については、「 メンバー サービス」を参照してください。
呼び出しの例を展開する
$ export IB="https://api.adnxs.com";
$ curl -b $IB/member/1234
{
"response": {
"count": 1,
"dbg": {
"output_term": "member",
"version": "1.18.1651",
"warnings": [
]
},
"member": {
"account_owner_user": {
"first_name": "Peter",
"id": 123456,
"last_name": "Driver"
},
"active": true,
"active_contract": null,
"age_segment_id": null,
"agent_id": null,
"allow_ad_profile_override": true,
"allow_priority_audit": false,
"audit_notify_email": null,
"bidder_id": 1234,
"billing_address_1": null,
"billing_address_2": null,
"billing_city": null,
"billing_country": null,
"billing_name": "ExampleMemberName",
"billing_postal_code": null,
"billing_region": null,
"buyer_clearing_fee_pct": null,
"buyer_credit_limit": 2500,
"code": null,
"contact_email": null,
"contact_info": null,
"contracts": null,
"curation_deductions_allowed": false,
"daily_imps_self_audited": null,
"daily_imps_unaudited": null,
"daily_imps_verified": null,
"deal_visibility_profile_id": null,
"default_accept_data_provider_usersync": true,
"default_accept_demand_partner_usersync": true,
"default_accept_supply_partner_usersync": true,
"default_ad_profile_id": null,
"default_buyer_group_id": null,
"default_content_retrieval_timeout_ms": 0,
"default_creatives": null,
"default_enable_for_mediation": false,
"default_external_audit": false,
"default_tag_id": null,
"description": null,
"developer_id": null,
"domain_blocklist_email": null,
"dongle": null,
"email_code": null,
"enable_click_and_imp_trackers": false,
"enable_facebook": false,
"expose_eap_ecp_placement_settings": false,
"gender_segment_id": null,
"id": 1234,
"is_iash_compliant": false,
"last_activity": "2020-03-19 06:00:39",
"max_hosted_video_size": null,
"native_custom_keys": null,
"platform_exposure": "public",
"plugins_enabled": false,
"pops_enabled_UI": false,
"price_buckets": null,
"prioritize_margin": false,
"reporting_decimal_type": "decimal",
"seller_member_groups": null,
"seller_revshare_pct": null,
"serving_domain": null,
"sherlock_notify_email": null,
"short_name": null,
"tax_region_id": null,
"thirdparty_pixels": null,
"timezone": "EST5EDT",
"vendor_id": null,
"visibility_profile_id": null,
"xd_coop": false
},
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}
入札者プロファイルを作成する
このステップでは、受信するトラフィックを形成するのに役立つビッダー プロファイルのオプションについて説明します。 入札者プロファイルは、API と 入札者 UI の両方を使用して更新できます。 これらのメイン ドキュメントは、次の場所にあります。
- API: 拡張入札者プロファイル
- 入札者 UI: 新しい入札者プロファイルの作成
- 入札者 UI には、メトリクスやレポートなど、他の多くのサービスが用意されています。 これらのパッケージは、こちらにあります。
以下の例では、ターゲティングは次のように分割されています。
- 直接交換メンバーのみを含める
- 米国ベースのトラフィックのみを受け入れる
- すべてのサイズのバナー トラフィック
- Web トラフィック
- 不明なユーザーを許可する
入札者プロフィールの JSON の例
$ cat create-bidder-profile-json
{
"bidder_profile": {
"active": true,
"bidder_id": 1234,
"description": "Example Bidder Profile",
"targeting": {
"ad_types": {
"audio": {
"action": "exclude"
},
"banner": {
"action": "include",
"sizes": [
]
},
"native": {
"action": "exclude"
},
"video": {
"action": "exclude"
}
},
"countries": {
"action": "include",
"targets": [
{
"active": true,
"code": "US",
"id": 233,
"name": "United States"
}
]
},
"exchanges": {
"action": "exclude",
"targets": [
{
"id": 2,
"name": "Connect"
},
{
"id": 3,
"name": "Network"
}
]
},
"supply_types": {
"action": "include",
"targets": [
"web"
]
}
},
"unknown_users_action": "include"
}
}
テスト プロファイル
- Xandr 統合エンジニアが、テスト用の入札者プロファイルの設定をお手伝いします。
- このプロファイルは、テスト発行元から送信されたトラフィックを除くすべてのプラットフォーム トラフィックをブロックします
- テスト メンバーからのトラフィックにより、支出を気にすることなく、入札ストリームをシミュレートできます。
テスト クリエイティブを追加する
このステップでは、クリエイティブを追加します。 このクリエイティブをアップロードした後、適切な形式の入札応答で入札要求に応答するように、入札者を設定する必要があります。 入札応答には、このクリエイティブを、クリエイティブの内部 ID に対応する "crid" フィールド、またはクリエイティブの Xandr ID である "adid"に含める必要があります。 これにより、統合が期待どおりに機能しているかどうかがテストされます。
ヒント
さまざまな種類のクリエイティブ構成の詳細については、「 クリエイティブ サービス」を参照してください。
クリエイティブを設定するためのヒントについては、「 クイック スタート クリエイティブ購入ガイド」を参照してください。
- この例では、クリエイティブ オブジェクトのコンテンツ フィールドを使用した (非常に) 昔ながらの自動車のデザインを示しています。 標準バナー raw-html テンプレートを使用しています。
- クライアント テスト環境を使用してクリエイティブのアップロードをテストする方法の詳細については、以下の「 クライアント テスト環境の使用 」を参照してください。
注:
ステータス
-
"allow_audit"フィールドと"allow_ssl_audit"フィールドはそれぞれtrueに設定されています。 - [
"allow_audit"] フィールドは、プラットフォームの人間による監査のためにクリエイティブを送信します。 -
"allow_ssl_audit"は、クリエイティブが安全な在庫でサービスを提供できるかどうかを判断するための自動スキャンのためにクリエイティブを送信します。
クリエイティブ JSON の例
$ cat add-creative.json
{
"creative": {
"width": 682,
"height": 488,
"landing_page_url": "https://en.wikipedia.org/wiki/Car",
"content": "document.write('<a href=\\\"https://en.wikipedia.org/wiki/Car\\\" target=\\\"_blank\\\">\\r\\n <img src=\\\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\\\" />\\r\\n</a>')",
"content_secure": "document.write('<a href=\\\"https://en.wikipedia.org/wiki/Car\\\" target=\\\"_blank\\\">\\r\\n <img src=\\\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\\\" />\\r\\n</a>')",
"template": {
"id": 6
},
"original_content": "<a href=\"https://en.wikipedia.org/wiki/Car\" target=\"_blank\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\" />\r\n</a>",
"original_content_secure": "<a href=\"https://en.wikipedia.org/wiki/Car\" target=\"_blank\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\" />\r\n</a>",
"click_action": "click-to-web",
"click_target": "https://en.wikipedia.org/wiki/Car",
"click_url": "https://en.wikipedia.org/wiki/Car",
"allow_ssl_audit": true,
"allow_audit": true
}
}
クリエイティブのアップロードの例
$ export IB="https://api.adnxs.com";
$ curl -b cookies -X POST -d @add-creative.json $IB/creative/1234
{
"response": {
"count": 1,
"creative": {
"active": true,
"added_by_bidder": null,
"adservers": null,
"adx_audit": null,
"allow_audit": true,
"allow_ssl_audit": true,
"audit_feedback": null,
"audit_status": "pending",
"backup_upload_status": nul
"brand": {
"category_id": 0,
"id": 1,
"name": "Unknown"
},
"brand_id": 1,
"campaign": null,
"categories": null,
"click_action": "click-to-web",
"click_target": "https://en.wikipedia.org/wiki/Car",
"click_url": "https://en.wikipedia.org/wiki/Car",
"code": null,
"code2": null,
"content": "document.write('<a href=\\\"https://en.wikipedia.org/wiki/Car\\\" target=\\\"_blank\\\">\\r\\n <img src=\\\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\\\" />\\r\\n</a>')",
"content_secure": "document.write('<a href=\\\"https://en.wikipedia.org/wiki/Car\\\" target=\\\"_blank\\\">\\r\\n <img src=\\\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\\\" />\\r\\n</a>')",
"content_source": "standard",
"created_on": "2021-02-05 21:56:47",
"custom_request_template": null,
"description": null,
"facebook_audit_feedback": null,
"facebook_audit_status": null,
"file_name": null,
"flash_backup_url": null,
"flash_backup_url_secure": null,
"flash_click_variable": null,
"height": 488,
"id": 271833576,
"ios_ssl_audit": null,
"is_blanking": null,
"is_expired": false,
"is_hosted": false,
"is_prohibited": false,
"is_rotating": null,
"is_self_audited": false,
"is_suspicious": false,
"landing_page_url": "https://en.wikipedia.org/wiki/Car",
"language": {
"id": 1,
"name": "English"
},
"last_activity": "2021-02-05 21:56:47",
"last_checked": null,
"media_assets": null,
"media_url": null,
"media_url_secure": null,
"member_id": 1234,
"mobile": null,
"native_attribute": null,
"no_adservers": false,
"not_found": 0,
"original_content": "<a href=\"https://en.wikipedia.org/wiki/Car\" target=\"_blank\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\" />\r\n</a>",
"original_content_secure": "<a href=\"https://en.wikipedia.org/wiki/Car\" target=\"_blank\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/3/3e/SteamMachineOfVerbiestIn1678.jpg\" />\r\n</a>",
"passed_sherlock_audit": true,
"pixels": null,
"placement": null,
"political": null,
"segments": null,
"size_in_bytes": 0,
"sla": "0",
"sla_eta": "2021-02-08 15:58:47",
"ssl_status": "pending",
"status": {
"hosted_assets_association_complete": null,
"user_ready": true
},
"suspicious_activity_timestamp": null,
"technical_attributes": [
{
"id": 1,
"name": "Image"
}
],
"template": {
"id": 6
},
"text_description": null,
"text_display_url": null,
"text_title": null,
"thirdparty_campaign_id": null,
"thirdparty_creative_id": null,
"thirdparty_page": null,
"thirdparty_pixels": null,
"thirdparty_viewability_providers": null,
"vendors": null,
"video_attribute": null,
"width": 682
},
"dbg": {
"output_term": "creative",
"version": "1.18",
"warnings": []
},
"id": "271833576",
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}
入札者インスタンスを追加する
入札者インスタンス オブジェクトは、データ センターで実行中の特定の入札者サーバーを表します。 このオブジェクトに保存されているこの情報により、トラフィックを送信する場所が決まります。 この例では、データセンター ID を (NYM) に設定します。
警告
この手順では、 システムの概要に詳しく記載されているように、入札リクエストや準備完了リクエストなどに対応できるビッダーが既に存在していることを前提としています。
ヒント
入札者インスタンスの設定の詳細については、「入札者インスタンス サービス」を参照してください
この例では、トラフィックの送信先となる IP アドレスとポートを設定します。
- ホスト名の使用もサポートされています。
- 存在する場合は、ホスト名が優先されます。
- 当社の入札者インスタンス サービスでは、アップロード時に IP アドレスが存在する必要があります。 ホスト名を使用する場合は、ダミーIPをオブジェクトのアップロードに配置できます。
- トラフィックを送信する完全なパスは次のとおりです。
https://[hostname or IP]:[port][bidder.bid_uri]
-
bidder.bid_uriは入札者オブジェクトで設定します。 - このパスは入札者ごとに一意である必要があります
-
- また、サーバーがトラフィックであふれないように、ビッダー インスタンスに 1 秒あたりのクエリ数 (QPS) 制限を設定することを強くお勧めします。
- 偶発的な支出を避けるために、トラフィックを受け取る準備ができるまで、ビッダー インスタンスを非アクティブに保つことを強くお勧めします。
入札者インスタンス オブジェクトの例
$ cat create-bidder-instance.json
{
"instance": {
"bidder_id": 123,
"active": true,
"datacenter_id": 6,
"ip_address": "10.3.64.215",
"port": 80
"qps_limit": 10000,
}
}
出力
$ export IB="https://api.adnxs.com";
$ curl -b cookies -X POST -d @create-bidder-instance.json $IB/bidder-instance/123
{
"response": {
"status": "OK",
"count": 1,
"start_element": null,
"num_elements": null,
"id": 1543,
"instance": {
"id": 1543,
"bidder_id": 123,
"active": true,
"datacenter_id": 6,
"ip_address": "10.3.64.215",
"port": 80,
"hostname": null,
"qps_limit": 10000,
"dns_interval": null,
"min_conns": 1,
"max_conns": null,
"receive_type_id": 0
},
"count": 1,
"dbg": {
"output_term": "bidder",
"version": "1.0.5",
"warnings": [
]
},
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}
入札応答
入札者が適切に入札を送信できるように、入札応答は正しい形式にする必要があります。 必須フィールドは ここにあります。
注:
購入者のシート ID と統合するため、seatbid.seat フィールドは独自の内部 ID にする必要があります。
使用する入札要求の例が必要な場合は、Xandr の担当者が提供できるようにします。 サポートされている入札要求フィールドと例については、 こちらをご覧ください。
ユーザー同期
- 入札アクティビティを通知するために、内部ユーザー ID を Xandr のユーザー ID と同期する方法を用意しています。
- 入札者パートナーにとって、標準は
/getuidを使用することです。 このサービスの詳細については、「ユーザー ID を同期する」を参照してください。
統合をテストする
準備完了の要求
- サーバーから入札リクエストを受信するには、まず入札者が準備完了のリクエストに正しく応答する必要があります。
- 準備完了要求は https://[hostname or IP]:[port][bidder.ready_uri] に送信されます
-
bidder.ready_uriは入札者オブジェクトで設定します。
-
- 応答は本文のどこかに
"1"が含まれている必要があります。 - 詳細については、 こちらをご覧ください。
入札ストリームのテスト
- Xandr 統合エンジニアが入札ストリームのテストをお手伝いします。
- これには、多くの場合、テスト パブリッシャー ページから入札要求が送信されることが含まれます。
- これらの要求に応え、オークションに落札して、クリエイティブをテスト ページに送ってもらうことが理想的です
- そこから、次の手順に進むことができます。
- マクロまたはトラッカーをテストして、期待どおりに動作することを確認します。
- 不一致が許容範囲内にあることを確認します。
クリエイティブの登録プロセス
注:
Xandr クリエイティブ ID をシステムに記録することをお勧めします。
- クリエイティブの事前登録は、ディスプレイ、ビデオ、ネイティブ クリエイティブの要件です
- クリエイティブを Microsoft のシステムに容易にアップロードし、監査プロセスに送信できる必要があります
- 広告 クリエイティブ基準と監査を確認する。 販売者は、在庫でサービスを提供するために、クリエイティブが監査ポリシーに合格する必要があります。
- 登録プロセスには、API サービスの構築が含まれ、
- クリエイティブ オブジェクトを追加する
- 状態の更新を確認します。
-
audit_status: このフィールドは、クリエイティブが適切にレンダリングとクリックが行われたことを確認する人間による監査に、クリエイティブが合格したかどうかを示します。 -
ssl_status: このフィールドは、クリエイティブが自動 SSL スキャナーに合格したかどうかを示します。 -
is_prohibited: このフィールドは、クリエイティブがポリシーのいずれかに違反しているかどうかを示します。
-
- 必要に応じて、ステータス フィールドに基づいてクリエイティブを調整し、問題を修正します。
- クライアント テスト環境を使用して、アップロード ワークフローをテストできます。
- クライアントのテスト環境に提出されたクリエイティブは監査されません。 クリエイティブをテストするには、Xandr 統合エンジニアと調整してください。
- クリエイティブの送信ワークフローは、入札ストリームのテストと並行して作業できます。
それでも期待通りの入札要求が表示されない場合は、このページの指示に対して構成を再チェックしてください。 問題が解決しない場合は、Xandr の担当者にお問い合わせください。
クライアント テスト環境の使用
クライアント テスト環境には、ワークフローと API 実装のテストに使用できる Impbus および Impbus API のバージョンが用意されています。 クライアント テスト環境のコードベースとデータが毎月更新されるようになりました。 つまり、テスト環境が運用環境で実行されている Xandr コードのバージョンより 30 日以上 (多くの場合それ以下) 遅れることはありません。 さらに、すべての実稼働データも毎月クライアント テスト環境 (メンバー アカウントと資格情報を含む) に自動的にコピーされます。 これにより、最新の機能に対してはるかに堅牢なテストが可能になります。
参考までに、実稼働環境とクライアント テスト環境のエンドポイントを次に示します。
更新プログラムの例
入札者オブジェクト ready_uri と bid_uri
これらのフィールドを更新して、準備完了要求と入札要求がそれぞれ適切なエンドポイントに送信されるようにします。
入札者更新の例
$ cat update-uris.json
{
"bidder": {
"ready_uri": "/example_ready_endpoint",
"bid_uri": "/example_bid_endpoint"
}
}
入札者の更新出力の例
$ export IB="https://api.adnxs.com";
$ curl -b cookies -X PUT -d @update-uris.json $IB/bidder/1234?fields=active,bid_uri,id,ready_uri
{
"response": {
"bidder": {
"active": true,
"bid_uri": "/example_bid_endpoint",
"id": 1234,
"ready_uri": "/ready/",
},
"count": 1,
"dbg": {
"output_term": "bidder",
"version": "1.0.5",
"warnings": []
},
"id": "1234",
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}
メンバー オブジェクトの更新、監査、通知メール
これらのフィールドを更新して、システムにアップロードしたクリエイティブの通知を確実に受け取るようにします。
メンバー更新の例
$ cat update-email.json
{
"member": {
"audit_notify_email": "your_email@email.com"
}
}
メンバー更新出力の例
$ export IB="https://api.adnxs.com";
$ curl -b cookies -X PUT -d @update-email.json $IB/member/5678?fields=active,audit_notify_email,id
{
"response": {
"member": {
"active": true,
"audit_notify_email": "your_email@email.com",
"id": 5678,
},
"count": 1,
"dbg": {
"output_term": "member",
"version": "1.0.5",
"warnings": []
},
"id": "5678",
"num_elements": 100,
"start_element": 0,
"status": "OK"
}
}