API を使用してインベントリ構造を同期する
このページでは、Xandr の API を使用して、対応する Xandr オブジェクトにサプライをマップし、デバッグ オークションでマッピングをテストする方法について説明します。 使用する発行元ごとに、次の手順に従ってください。
UI を使用してサプライをマップするには、「UI を使用してインベントリ構造を同期する」を参照してください。
開始する前に
開始する前に、次の条件を満たす必要があります。
- API オンボードが完了しました。
- あなたは、販売側オブジェクト階層に精通しています。
- Xandr と協力して グローバル広告品質プロファイル を作成し、パブリッシャーのインベントリに表示できるクリエイティブを制御しました。
手順 1. パブリッシャーを作成する
パブリッシャー サービスを使用して、インベントリにマップされた新しい発行元を作成します。
注:
この code
フィールドは、発行元と配置レベルの両方のすべての外部販売者に必要であり、品質の問題、特にドメイン検出可能性のために正確に調査できるように、他のすべての販売者に対して可能な限り詳細な在庫を確保することを強くお勧めします。 必須ではありませんが、この手順は、インベントリを非常に検出可能で検出しにくいタグに分割するのに役立ちます。これにより、検出できないドメインがインベントリの残りの実行可能性に与える影響を分離できます。
JSON には次のフィールドが含まれている必要があります
フィールド | 種類 | 説明 |
---|---|---|
name |
string (255) | お金を支払う会社の法人の名前。 たとえば、 から espn.com 購入する場合、発行元は ESPN の法人として名前を付ける必要があります。 |
is_oo |
ブール値 | true の場合、パブリッシャーはネットワークによって所有および運用されます。つまり、ネットワークは収益の 100% を取得します。 これを true に設定すると、支払いルールの設定をスキップすることもできます。 既定値: false |
code |
string (100) | インベントリから発行元を識別するコード。 または BidRequest.App.Publisher.id フィールドの値をBidRequest.Site.Publisher.id 使用します。 |
reselling_exposure |
列挙 | プラットフォームの他のメンバーに再販するパブリッシャーの公開。 使用可能な値: "public" または "private" 既定値: "private" |
state |
列挙 | パブリッシャーの状態。 使用可能な値: "アクティブ" または "非アクティブ" です。 既定値: "非アクティブ" |
例
$cat publisher.json
{
"publisher": {
"name": "PUBLISHER_NAME",
"is_oo": true,
"code": "PUBLISHER_CODE",
"reselling_exposure": "private",
"state": "active"
}
}
$curl -b cookies -c cookies -d @publisher.json -X POST 'https://api.appnexus.com/publisher?member_id=MEMBER_ID&create_default_placement=false'
API は、応答で新しく作成されたオブジェクトの ID を返します。 次の 2 つの手順で使用するために、この値を保存します。
手順 2. サイトの作成 (配置グループ)
Site Service を使用して、手順 1 で作成した発行元に関連付けられた 1 つ以上のサイト (または配置グループ) を作成します。 サイトは、配置の単なるグループ化メカニズムです。 少なくとも 1 つのサイトが必要ですが、さらに細分性が必要ない場合は、追加のサイトを作成する必要はありません。
各サイトは、次の配置のグループを表す必要があります。
- 同じドメインに関連付けられている (モバイル Web と標準 Web の両方)
- または、同じモバイル アプリに関連付けられています
JSON には、次のフィールドが含まれている必要があります。
フィールド | 種類 | 説明 |
---|---|---|
name |
string (255) | このサイトを通じて渡されるドメインまたはアプリ バンドル ID。 |
supply_type |
列挙 | これは、デスクトップ ブラウザー ("web") で表示されるサイト、モバイル ブラウザー ("mobile_web") で表示されるサイト、またはモバイル デバイス ("mobile_app") でアプリを実行するかどうかを指定します。 この違いにより、購入者は広告を掲載する特定の供給タイプにキャンペーンをターゲットにできます。たとえば、広告主はモバイル ランディング ページを使用してモバイル ブラウザー用に最適化されたクリエイティブをアップロードできます。 既定値: "web" |
例
$cat site.json
{
"site": {
"name": "DOMAIN_NAME_OR_APP_BUNDLE_ID",
"supply_type": "SUPPLY_TYPE"
}
}
$curl -b cookies -c cookies -d @site.json -X POST 'https://api.appnexus.com/site?member_id=MEMBER_ID&publisher_id=PUBLISHER_ID'
API は、応答で新しく作成されたオブジェクトの ID を返します。 次の手順で使用するために、この値を保存します。
手順 3. 配置を作成する
Placement Service を使用して、手順 1 と 2 で作成した発行元とサイトに関連付けられた配置を作成します。
注:
この code
フィールドは、発行元と配置レベルの両方のすべての外部販売者に必要であり、品質の問題、特にドメイン検出可能性のために正確に調査できるように、他のすべての販売者に対して可能な限り詳細な在庫を確保することを強くお勧めします。 必須ではありませんが、この手順は、インベントリを非常に検出可能で検出しにくいタグに分割するのに役立ちます。これにより、検出できないドメインがインベントリの残りの実行可能性に与える影響を分離できます。
JSON には、次のフィールドが含まれている必要があります。
フィールド | 種類 | 説明 |
---|---|---|
name |
string (255) | 発行元に関連付けられている名前。 |
code |
string (100) | インベントリからの配置を識別するコード。 または BidRequest.App.id フィールドの値をBidRequest.Site.id 使用します。 |
例
$cat placement.json
{
"placement": {
"name": "PLACEMENT_NAME",
"code": "PLACEMENT_CODE"
}
}
$curl -b cookies -c cookies -d @placement.json -X POST 'https://api.appnexus.com/placement?member_id=MEMBER_ID&publisher_id=PUBLISHER_ID&site_id=SITE_ID'
手順 4. マッピングのセットアップをテストする (省略可能)
デバッグ オークションを使用して、マッピングが正しく動作していることをテストできます。 デバッグ パラメーターを使用してテストインプレッションをエンドポイントに送信し、インプレッションが予想される配置に達したことをチェックします。
OpenRTB プロトコル展開ソースを使用したビデオ インプレッションのデバッグ オークションの例
$cat debug.json
{
"id": {
"imp": [{
"id": "1",
"video": {
"mimes": [
"application/x-shockwave-flash",
"video/mp4",
"video/x-flv"
],
"linearity": 1,
"minduration": 0,
"maxduration": 999,
"protocols": [2,5],
"w": 640,
"h": 360,
"startdelay": 0,
"minbitrate": 0,
"maxbitrate": 1500,
"delivery": [2],
"pos": 0,
"api": [1]
},
"bidfloor": 1,
"bidfloorcur": "EUR"
} ],
"site": {
"domain": "test.com" },
"device": {
"dnt": 0,
"ua": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0",
"ip": "212.185.163.114",
"os": "Win_8",
"osv": "8",
"js": 0,
"devicetype": 2
},
"user": {
"buyeruid": "XANDR_USER_ID"
},
"at": 2,
"tmax": 100,
"cur": ["EUR","USD"]}'
}
$curl -b cookies -c cookies -s -i d @debug.json 'https://<MEMBER_NAME>-<GEO>.com/openrtb2?member_id=MEMBER_ID&debug_member=DEBUG_MEMBER&dongle=DONGLE'
上の例では、 <GEO>
"useast"、"uswest"、"apac"、"emea" の潜在的な値があります。