Index Exchangeでデータを有効にする

データパートナーとして、Index Exchangeプラットフォームと統合し、パブリッシャー 広告が表示される、ウェブサイトまたはアプリの所有者。またはマーケットプレイス パートナー Indexマーケットプレイスのオーナーは、Indexマーケットプレイス内でメディアソリューションをキュレーションし、これらのサービスをパッケージ化することで、パブリッシャーにデマンドの増加をもたらします。広告代理店、データプロバイダー、リテール・メディア・ネットワークなどは、マーケットプレイスのパートナーとしてメリットを受けられます。ディール パブリッシャーがディールIDによって限定されたバイヤーに特定のインベントリを直接販売できるプライベートオークション。条件はオークション開催前の交渉によって合意されます。を作成する際にデータを利用できるようになります。データを統合し有効化する方法には、以下のオプションがあります:

  • ファイルアップロード接続: このオプションは、 Indexが、リクエスト毎にコールできるインフラを持たないか、それらのセグメントを表す、ある程度固定されたアイテムリストを保持するデータパートナーに適しています。例えば、10,000未満のドメインやユーザーIDのリスト。

  • キャッシュAPI接続: このオプションは、1~2つのフィールドを使用し、セグメントタクソノミーを有効にするデータパートナー、短いタイムアウト制限内で応答できないデータパートナー、またはIndexからのコール頻度を制限したいデータパートナーに適しています。例えば、URLに関連するコンテキストセグメントを返すAPI。

  • リアルタイムデータ(RTD)接続:このオプションは、データ量が多く、複数のキーでセグメントタクソノミーを有効にし、低レイテンシー時間制限内で応答でき、理想的にはIndexデータセンターと同じ場所に設置できるデータパートナーに適しています。例えば、リクエストの複数のフィールドでセグメントを有効にしたり、独自のマッチングロジックを維持したりできます。これが推奨される接続方法です。

ファイル・アップロードの接続方法

この方法では、以下のいずれかの方法でセグメントファイルをIndex Exchangeと共有する必要があります。

  • 人ベースのIDでグループ分けしたオーディエンスファイルを含む場合、SFTPを使いIndex Exchangeにオーディエンスファイルを送信でき、Audience Managerシステムにより15~20分で処理可能です。詳細はオーディエンスファイル・フォーマットをご覧ください。

  • オーディエンスファイルにドメインが含まれる場合、Index担当者と連携し、APIを使いセグメントファイルをアップロードしてください。

Index Exchangeが、これらの値を登録した後、アカウントに対しセグメントの許可を付与し、ディールでターゲティングできるようになります。Index Exchangeが、user.ext.eids またはsite.domainフィールドにターゲットセグメントと一致する属性を含む広告リクエストを受信すると、ディールが有効化され、DSP デマンドサイドプラットフォーム(DSP)。リアルタイムで入札の意思決定を自動化し、アドエクスチェンジやSSPを通じてバイヤーとオーディエンスを効率的につなぐソフトウェアプラットフォーム。バイサイド・プラットフォームとも呼ばれます。に送信されます。

郵便番号、IPアドレス、IFAリストなど、Indexと共有したい他のタイプのセグメントファイルがある場合は、Index担当者に相談してください。

キャッシュAPIの接続方法

この方法では、当社のプラットフォームにセグメントタクソノミーを登録することでIndexと接続し、HTTP GETエンドポイントを使用してIndexに接続する必要があります。接続が完了すると、Indexはキャッシュ場所にレスポンスを保存し始めます。Indexが広告リクエストを受信すると、キャッシュされたデータを、受信リクエストで送信された特定のOpenRTB リアルタイム入札オークションにおけるオンライン広告のバイヤーとセラー間の通信のためのオープンな業界標準。IABにより制定されました。属性(例えば、ページURL、アプリバンドルID)と照合します。指定されたタイムアウトの前に、属性にマッチするセグメントが見つかれば、それらはリクエストに追加され、マッチするディールは有効化され、DSPに送信されます。関連するセグメントが見つからない場合、IndexはリクエストにOpenRTB属性を指定してエンドポイント 特定の方法でサーバーと通信するように設定されたURL。を非同期で呼び出します。指定されたタイムアウトの前に、更新されたセグメントデータを含むレスポンスを受信した場合、更新されたデータをキャッシュに書き込み、将来のリクエストで使用できるようにします。

統合要件の詳細については、以下の統合要件の詳細については、以下の統合要件の詳細については、以下のHow to integrate Cached API and Real Time Data solutions with を参照。を参照。 を参照。

リアルタイムデータ接続方法

この方法では、当社のプラットフォームにセグメントタクソノミーを登録することでIndexと接続し、HTTP POSTエンドポイントを使用してIndexに接続する必要があります。Indexが広告リクエストを受信すると、ユーザーのプライバシーの選択と規制に準拠し、OpenRTBのアトリビューションを使ってリアルタイムでエンドポイントにコールを行い、エンドポイントはオークションに詳細情報を提供するために、関連するセグメントIDやその他のメタデータで応答します。セグメントIDは、DSPでディールIDと照合可能です。

統合要件の詳細については、以下の統合要件の詳細については、以下の統合要件の詳細については、以下のHow to integrate Cached API and Real Time Data solutions with を参照。を参照。を参照。

IndexでキャッシュAPIとリアルタイムデータ・ソリューションで接続する方法

Cached APIまたはリアルタイムデータ接続を使用してIndexプラットフォームとデータを共有するには、Index ExchangeでHTTPエンドポイントを設定する必要があります。

リクエストフォーマット

キャッシュAPI接続

Cached API接続を使用するパートナーは、HTTP GETリクエストでアクセス可能なエンドポイントを公開する必要があります。IndexURLエンコードされたクエリ文字列パラメータとして、URL内にエンリッチするキー(例えば、URL、アプリバンドル、IPなど)を埋め込むことができます。

Index複雑なキャッシュキーを考慮する必要がないように、HTTPリクエストの URLには1つのキーしか入力しません。複数のキーに対してエンリッチメントを提供するパートナーについては、複雑な鍵に対す る考慮事項を議論することができる。決定ロジックに有用であれば、 IndexHTTPリクエストで追加のキーを提供することもできるが、キャッシュは主キーに対して保存される。

GET https://www.mypartner.com/segments?url=apple.com%2Fdeveloper%2Fnews%2Fiphone

https://www.mypartner.com/segments?url={URL_MACRO}のエンドポイントを例にとると、入ってくる広告リクエストに apple.com/developer/news/iphoneURLが含まれる場合、Indexは貴社のエンドポイントに以下の呼び出しを行います:

リアルタイムデータ接続

リアルタイムデータ接続を使用するパートナーは、HTTP POSTリクエストを通じてアクセス可能なエンドポイントを公開する必要があります:Indexは、可能な限り互換性を確保するために次のOpenRTB属性を使います。 オブジェクト
app 詳細
device インプレッションがアプリケーションから発信された場合は、appオブジェクトが含まれます。パブリッシャーのアプリに関する詳細(非ブラウザアプリなど)が含まれています。
imp インプレッションが配信されるユーザーのデバイスに関する情報を含むデバイスオブジェクト。
site オークションにかけられる広告プレースメントまたはインプレッション機会に関する情報を含むimpオブジェクト(bidFloorフィールドとppmオブジェクトを除く)。GPID拡張子を含見ます。
user パブリッシャーのウェブサイトの詳細を含むサイトオブジェクト。インプレッションがウェブサイトから発信されている場合に限り含まれます。

デバイスのユーザーに関する情報を含むユーザーオブジェクト。関連するサードパーティとプライバシー条件が合意する場合、Indexがuser.idとuser.ext.eidsオブジェクトを送信します。

上記のOpenRTBオブジェクトに含まれるextオブジェクトは、明示されていない限り送信されません。入札クエストの属性は、プライバシー保護のため、削除または変更されます(例えば、IPアドレスは必要に応じて切り捨てられる)。これらのOpenRTB属性に関する詳しい情報については、セラー向けOpenRTB入札リクエストフィールドの対応一覧をご覧ください。

{
	"app":{
		"id":"12345",
		"name":"App Name",
		"bundle":"123456789",
		"domain":"appexample.com",
		"storeurl":"https://apps.apple.com/app/idexample",
		"cat":[
			"IAB9-7"
		],
		"ver":"4.56.0",
		"publisher":{
			"id":"555555",
			"name":"Publisher Name",
			"domain":"appexample.com"
		}
	},
	"device":{
		"ua":"Mozilla/5.0 (iPad; CPU OS 17_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
		"geo":{
			"lat":12.123,
			"lon":-12.123,
			"country":"USA",
			"city":"New City",
			"zip":"555555"
		},
		"ip":"100.00.000.000"
	},
	"imp": [
		{
		"banner": {
			"w": 728,
			"h": 90,
			"pos": 1,
			"topframe": 0
		},
		"secure":1,
		"ext": {
			"gpid": "/1234567/home/mpu/atf"
		}, 			
		"id": "1",
		"tagid": "12345_12345"
		}
	],			
	"user":{
		"id": "AbcdEfgHijklmnoP",
		"ext":{
			"eids":[
				{
					"source": "ID_Provider.com",
					"uids": [
						{
							"id": "Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567",
						}
					]
				},
				{
					"source": "Provider_id.org",
					"uids": [
					{
						"id": "123456-abcde-123456-abcde-123456",
						}
					]
				}
			]
		}
     },
	"regs":{
		"coppa":0,
		"gpp":"",
		"gppSid":[
         
		],
		"ext":{
			"gdpr":0,
			"us_privacy":"1---",
			"ccpa":0
		}
	}
}
		

サンプルアプリリクエスト

{
	"site":{
		"id":"12345",		
		"page":"https://example.com/section/",
		"domain":"example.com",
		"ref":"https://exampleref.com/",
		"publisher":{
			"id":"555555",
			"domain":"example.com",
			"name":"Publisher Name"
		},
		"content":{
			"url":"https://example.com/content-link/"
			}
		},
	"device":{
		"ua":"Mozilla/5.0 (Linux; Android 14; SM-S911U Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.0000.000 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/441.0.0.32.109;]",
		"geo":{
			"country":"USA",
			"region":"OR",
			"city":"New City",
			"zip":"55555"
		},
		"ip":"100.00.000.000"
	},
	"imp": [
		{
		"banner": {
			"w": 728,
			"h": 90,
			"pos": 1,
			"topframe": 0
		},
		"secure":1,
		"ext": {
			"gpid": "/1234567/home/mpu/atf"
		}, 			
		"id": "1",
		"tagid": "12345_12345"
		}
	],		
	"user":{
		"id": "AbcdEfgHijklmnoP",
		"ext":{
			"eids":[
				{
					"source": "ID_Provider.com",
					"uids": [
						{
							"id": "Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567Abcdefgh1234567",
						}
					]
				},
				{
					"source": "Provider_id.org",
					"uids": [
					{
						"id": "123456-abcde-123456-abcde-123456",
						}
					]
				}
			]
		}
     },
	"regs":{
		"ext":{
			"gdpr":0
		}
	}
}
		

サンプルウェブリクエスト

レスポンスフォーマット(キャッシュAPIとリアルタイムデータ接続)

HTTPレスポンスは、以下の構成にしたがったJSONフォーマットである必要があります。 オブジェクト 必須か否か 詳細
フォーマット segment_ids

必須

有効なセグメントのリスト。

注意:最大500セグメントを配列に含めて送信できます。
文字列配列 deal_ids (近日中に利用可) オプション 有効にする外部ディールIDのリスト。

文字列配列

{ 
	"segment_ids": ["cat_owners", "target_shoppers", "gender_female"]
}

レスポンスコードとサーキットブレーカーのロジック

  • 次のHTTPレスポンスコードのルールとロジックが適用されます。

  • 全てのパートナーの正常なレスポンスに対して、2xx HTTPレスポンスコードが返されます。

キャッシュ・データプロバイダーは、Index 5xxエラーを受信した場合、Indexはキャッシュを行わず、リクエストは再試行されます。Indexが4xxエラーを受け取った場合、Indexが、情報をキャッシュし、リクエストは再試行されるべきでないと明示し、パートナーからのキーに対するエンリッチメントデータは利用できません。

サーキットブレーカー・ロジック

キャッシュするまたキャッシュを利用しないパートナーの場合、Indexが、4xxまたは5xxエラーを受け取った場合は、Index社内のサーキットブレーカー・ロジックが呼び出され、影響を受けるパートナーのAPIがスロットルされます。有効時間が切れたパートナーのAPIにリクエストした場合も、同じサーキットブレーカーのロジックを呼び出します。サーキットブレーカーのロジックは、Indexとパートナーのシステムを保護するために存在します。エラー率が、通常のレベルに戻ると、サーキットブレーカーが再開し、トラフィック量の制御を再開します。

キャッシュAPIレスポンスヘッダー

Index Exchangeは、キャッシュAPI接続に対して以下のHTTP レスポンスヘッダーを使用します。 オブジェクト 必須か否か
詳細 Cache-Control オプション

max-ageディレクティブは、データがキャッシュから使用できる時間を伝えるために使用されます。Indexとキャッシュ接続を実装しているパートナーの場合、このディレクティブが提供されない場合、当社で、データを24時間キャッシュし、Indexは、24時間以上経過したmax-ageディレクティブを無効にします。このno-cacheディレクティブは、返されたデータが再度使用される前に、再検証すべきかどうかを伝えるために使用されます。このヘッダーを持つレスポンスはキャッシュされるが、そのレスポンスが使用されるたびに、Indexはパートナー企業に通知し、レスポンスが変更されたかどうかを判断します。このディレクティブは、パートナー企業の分類実行中に使用できます。

レスポンスの例

"HTTP/1.1 200 OK
Server":"abc
Date":"Fri",
"31 Mar 2020 18":"37":"10 GMT
Content-Type":"text/html;charset=utf-8
Content-Length":"0
Connection":"keep-alive
Cache-Control":"no-cache"{
"segment_ids":[
	"sports_news",
	"football_players"
	]
}
		

以下の例では、Indexがデータ・パートナーのエンドポイントにデータをリクエストしています。パートナーは予備エンリッチメント・データを返し、Indexが完全なエンリッチメント・データのためにエンドポイントに再確認し続けることを希望します。

"HTTP/1.1 200 OK
Server":"abc
Date":"Fri",
"31 Mar 2020 18":"37":"10 GMT
Content-Type":"text/html;charset=utf-8
Content-Length":"0
Connection":"keep-alive
Cache-Control":"no-cache"{
"segment_ids":[
      
]
}"# note":"an empty response body is also acceptable in this situation."
		

以下の例では、Indexがパートナーのエンドポイントにデータをリクエストしています。パートナーはまだ利用可能なデータを持っておらず、Indexが完全なエンリッチメントデータをエンドポイントに再確認し続けることを希望します。

HTTP/1.1 200 OK 
Server":"abc 
Date":"Fri",
"31 Mar 2020 18":"37":"10 GMT 
Content-Type":"text/html;charset=utf-8 
Content-Length":"0 
Connection":"keep-alive 
Cache-Control":max-age=86400{
"segment_ids":[
	"sports_news",
	"football_players",
	"arsenal",
	"english_sports",
	"fa_cup"
	]
}
		

以下の例では、Indexがパートナーのエンドポイントにデータをリクエストしています。パートナーは、24時間(86,000秒)キャッシュされるべき完全な分類を返します。

認証

認証が必要な場合、Indexは、キャッシュAPIとリアルタイムデータ接続の両方でOAuthをサポートしています。

よくある質問

自分のセグメントデータが、いつ入札に使用されるかをコントロールできますか?

QPS クエリ毎秒(QPS)。DSPが1秒間に処理する入札リクエスト数。1秒あたりのインプレッション数としても知られています。コントロールとターゲティングオプション(例えば、アプリ内または動画のみ)は開発中です。

誰が自社のセグメント・データを使用できますか?

セグメントの許可は、貴社のみでコントロールできるように厳しく管理されています。お客様は、ご自身のセグメント・データを単独で使用することも、他のマーケットプレイスまたはパブリッシャーのアカウントに許可することもできます。