このドキュメントについて
※この翻訳は、IAB Tech Lab による公式なものではありません。翻訳の正確性については翻訳者が責任を負います。
Abstract(概要)
オープンなデジタル広告エコシステムにおける無効なトラフィック、アドフラウド、偽造インベントリから利益を得る能力を排除するための広範な取り組みの一環として、SupplyChain オブジェクトは、バイヤーが特定のビッドリクエストを販売または再販しているすべての当事者を確認できるようにします。この拡張オブジェクトは OpenRTB 2.5 で使用できます。OpenRTB 2.6 および 3.0 では、source オブジェクトに正式に追加されました。Introduction(はじめに)
ads.txt は、パブリッシャーやアプリ制作者がプログラマティックマーケットプレイスを通じて特定のインプレッションセットを販売する権限を持つ者を定義することにおいて、非常に成功しています。しかし、ads.txt はそれらのインプレッションの取引に関与するすべての当事者を明らかにしたり、認可したりする試みは行っていません。この情報は、サプライチェーンの透明性、すべての仲介者がバイヤーが取引したいエンティティであることの確認、インベントリが可能な限り直接的に購入されることの確認など、さまざまな理由からバイヤーにとって重要です。実装はバイヤーに対して可能な限り透明であるべきです。バイヤーがどのインベントリの販売にも誰が参加しているかを容易に理解できるようにするべきです。Implementation(実装)
SupplyChain オブジェクトは、主にノードのセットで構成されており、各ノードはインベントリの取引に参加する特定のエンティティを表します。最初から最後までのノードのチェーン全体が、インベントリに対する直接的な支払いフローに関与するすべてのエンティティを表します。将来のバージョンの仕様には、取引には関与しているが支払いには関与していないエンティティも含まれる可能性があります。ノードの定義
ノードには 2 つの必須プロパティが含まれます。広告システム識別子(asi)とセラー ID(sid)です。広告システム識別子は、広告システムのドメイン名です。セラー ID は、インベントリのセラー(広告システムがこのインベントリに対して支払う相手)を識別するために使用されます。広告システム識別子とセラー ID の両方は、ads.txt ファイルで提供されるものと同じ値であるべきです。セラー ID が複数のエンティティを表すことは無効です。すべてのセラー ID は、そのセラー ID で取引されたインベントリに対して支払いを受ける単一のエンティティにのみマッピングされなければなりません。販売エンティティが広告システム内で複数のセラー ID を持つことは有効です。OpenRTB オブジェクト: SupplyChain
このオブジェクトは、サプライチェーン内のリンクと、サプライチェーンが完全かどうかの指標の両方を表します。 SupplyChain オブジェクトは、OpenRTB 2.6 以降では BidRequest.Source.schain 属性に、OpenRTB 2.5 では BidRequest.Source.ext.schain 属性に含めるべきです。OpenRTB 2.4 以前の場合は、BidRequest.ext.schain 属性を使用するべきです。 SupplyChain オブジェクトには以下の属性が含まれます:OpenRTB オブジェクト: SupplyChainNode
このオブジェクトは、ノードの配列として SupplyChain オブジェクトに関連付けられています。これらのノードは、ビッドリクエストのサプライチェーンに参加するエンティティの ID を定義します。SupplyChainNode オブジェクトには以下の属性が含まれます:
asi および domain フィールドには、広告システムまたはセラーの正規ドメインのみを入力する必要があり、これらは照合のために OpenRTB Site.domain、sellers.json、ads.txt で使用されるドメインと同じであるべきです。完全な URL(またはスキーマ、つまり http:// や https://)は使用しないでください。このドキュメントの目的上、「ルートドメイン」は「パブリックサフィックス」に名前の 1 つの文字列を加えたものとして定義されます。実装者はルートドメインを導出するために Public Suffix リスト [16] を組み込むべきです。
有効な例:
example.com
example.co.uk
無効な例:
http://example.com
https://example.com/about-us.html
実装の詳細
リセラーが、自身のノードをチェーンに挿入せずに、前のセラーから SupplyChain オブジェクトをそのインベントリに対するリクエストにコピーすることは無効です。リセラーがチェーンに自身を挿入しない場合、そのビッドリクエストには SupplyChain オブジェクトを含めるべきではありません。 セラーが以前 SupplyChain オブジェクトを含んでいなかったインベントリを再販している場合、自身で SupplyChain オブジェクトを作成し、“complete” 属性を 0 に設定し、自身のノードを “nodes” 配列に挿入するべきです。 セラーが SupplyChain オブジェクトを持つインベントリを再販している場合、リセラーは既存のオブジェクトをコピーし、“complete” の元の値を保持し、自身のノードを “nodes” 配列の末尾に追加するべきです。 これがこのインベントリの最初のビッドリクエストである場合、SupplyChain オブジェクトは “complete” 属性を 1 に設定し、自身の情報のみを “nodes” 配列の唯一のノードとして作成するべきです。Examples(例):
有効で完全な SupplyChain オブジェクト
最初のビッドリクエストの例(BidRequest1, seller = “directseller.com”):
BidRequest1 の再販の例(BidRequest2, seller = “reseller.com”):
有効で不完全な SupplyChain オブジェクト
SupplyChain オブジェクトをサポートしていない広告システムからの最初のビッドリクエストの例(BidRequest3, seller = “directseller.com”):
SupplyChain オブジェクトをサポートする広告システムによる BidRequest3 の再販の例(BidRequest4, seller = “reseller.com”):
非 OpenRTB リクエストのための SupplyChain
上記のドキュメントは OpenRTB プロトコルを介した取引のみのガイダンスを提供しているため、このセクションでは OpenRTB ではなくタグを介して SupplyChain 情報を通信する標準的な方法について説明します。この状況は、広告システムがアドサーバー、ビデオプレーヤー、SSAI ベンダーなどに挿入して広告システムへの広告リクエストを開始できるタグを提供する場合に最も一般的に発生します。 シリアライゼーションの目標:- SupplyChain オブジェクトのすべてのプロパティをサポートする
- シリアライズされたデータの URL エンコーディングの必要性を最小限に抑える
- SupplyChain の将来の変更に対する前方互換性をサポートする
OpenRTB SupplyChain オブジェクトの URL パラメータへのシリアライゼーション
推奨 URL パラメータ: schainシリアライゼーションの形式
シリアライゼーションは 2 つの項目で構成されます。SupplyChainObject プロパティと SupplyChainNode 配列です。これら 2 つの項目はバン(”!”)文字で区切られます。{SupplyChainObject}!{SupplyChainNode array}
SupplyChainObject プロパティ
SupplyChain オブジェクトには 2 つのプロパティがあります。version と complete です。これら 2 つの値はシリアライズされた値の先頭に含まれなければならず、カンマ(”,“)で区切られなければなりません。ver,complete
SupplyChainNode プロパティの配列
SupplyChainObject プロパティに続いて、SupplyChain 内のすべてのノードを含めなければなりません。SupplyChainNode オブジェクトのプロパティはカンマ(”,“)で区切られなければならず、複数のノードがある場合は、各ノードはバン(”!”)文字で区切られなければなりません。 プロパティの順序は以下のとおりです:asi,sid,hp,rid,name,domain,ext
ext プロパティの内容はエクスチェンジ固有であり、このドキュメントではこのオブジェクトの値のシリアライゼーション方法を指定する試みは行いません。
オプションの SupplyChainNode プロパティ値は省略でき、末尾のセパレータはオプションで除外できます。
Example:
exampleexchange.com,12345,1,,,
or
exampleexchange.com,12345,1
プロパティの値に URL エンコーディングが必要な場合(RFC 3986 または Wikipedia の投稿を参照)、またはカンマやバン文字が含まれる場合は、URL エンコードするべきです。プロパティを区切るために使用されるカンマはエンコードしないでください。
Example:
exampleexchange.com,123%2CB,1,,,
これは、支払いを処理する exampleexchange.com 上の “123,B” という sid を表します。
Examples(例)
シングルホップ - チェーン完全
SupplyChainシングルホップ - チェーン完全、オプションフィールド欠落
SupplyChain1.0,1!exchange1.com,1234,1,,,
マルチホップ - すべてのプロパティが提供
SupplyChain1.0,1!exchange1.com,1234,1,bid-request-1,publisher,publisher.com!exchange2.com,abcd,1,bid-request2,intermediary,intermediary.com
マルチホップ - チェーン完全、オプションフィールド欠落
SupplyChain1.0,1!exchange1.com,1234,1,,,!exchange2.com,abcd,1,,,
マルチホップ予想 - チェーン不完全
SupplyChain1.0,0!exchange2.com,abcd,1,,,
シングルホップ - チェーン完全、エンコードされた値
SupplyChain1.0,1!exchange1.com,1234%21abcd,1,bid-request-1,publisher%2c%20Inc.,publisher.com