レスポンスを作成する

Google からの入札リクエストをアプリケーションで処理したら、アプリケーションで レスポンスを送信します。このガイドでは、アプリケーションをコーディングし、 返されます。

入札レスポンス メッセージを作成する

認定バイヤーは、BidRequest を HTTP POST。アプリケーションから送信されるレスポンスには、 Content-Type ヘッダーを application/octet-stream に設定 シリアル化されたプロトコル バッファで構成されるメッセージ本文です。プロトコル バッファは、BidResponse メッセージです。 realtime-bidding.proto。アプリケーションが、解析可能な BidRequest ごとに BidResponse を返します。タイムアウト 解析できないレスポンスはエラーと見なされ、Google は エラー率の高いビッダーからの入札を除外します

インプレッションに入札したくない場合は、 processing_time_ms フィールドのみ、その他のフィールドはそのままにします。 空です。realtime-bidding.proto は、 参照データのページをご覧ください。

クリエイティブ ID

BidResponse では、 buyer_creative_id フィールド(64 バイトの上限)。類似のクリエイティブであっても 異なる場合は、buyer_creative_id に一意の値を指定する必要があります。 主な特徴(サイズ、宣言された URL、 クリエイティブの属性、ベンダー タイプを指定します。言い換えると、2 つの Pod に 次の条件に該当する 2 つの広告に割り当てることができます。

  • 見た目や動作が異なります。
  • さまざまな画像にレンダリングできます。
  • さまざまな方法でレンダリングする(例: 1 つの広告が画像で構成され、 もう一方には Flash が含まれています)。

アプリケーションを設計する際には、 作成するクリエイティブの種類に適した識別子を生成する 提出してください。

広告の帰属表示

広告の属性を詳細に説明したクリエイティブ属性を宣言する必要があります。 BidResponse.Ad.attribute での特性とそのターゲティングです。「 あります(サポートされている全属性のリストも参照してください)。 属性 buyer-declarable-creative-attributes.txt):

  • 7 Tagging: IsTagged
    広告には、独自のピクセルまたはウェブビーコンが 後続のリマーケティングに使用する Cookie ID のリスト。
  • 8 Remarketing: IsRemarketing
    この広告では、Cookie ID またはデバイス ID に基づいてユーザーをターゲティングしています。 Cookie ID またはデバイス ID のリストは、 以前に購入者が所有または代理人を務めるサイトとやり取りしたことのあるレポートです。
  • 9 UserInterestTargeting: IsUserInterestTargeted
    この広告では、Cookie ID またはデバイス ID に基づいてユーザーをターゲティングしています。 Cookie ID のリストまたはデバイス ID は、購入者が指定した一連の消費者を 共通のインタレスト グループとして定義されます。
  • 30 InstreamVastVideoType: Vpaid
    広告を表示するには VPAID 対応が必要。
  • 32 MraidType: MRAID
    広告をレンダリングするには MRAID API が必要です。

さらに、次の属性がサポートされていますが、その宣言は 必要ない。認定バイヤーではそうしたオーディエンスが自動的に検出され、 宣言ではなく検出された値に基づいてクリエイティブを制御します。 詳しくは、 クリエイティブ API で、検出されたプロパティに関するフィードバックを取得する方法を 作成できます。

  • 34 RichMediaCapabilityType: RichMediaCapabilityFlash
    広告を表示するには Flash サポートが必要です。
  • 50 RichMediaCapabilityType: RichMediaCapabilityNonFlash
    広告を表示するために Flash を必要としない。
  • 47 RichMediaCapabilityType: RichMediaCapabilitySSL
    広告を SSL ページで表示できる。認定バイヤーでは 異なるものとして宣言され、異なるものとして識別されます(これらは審査されます) 個別の承認ステータスが割り当てられます。そのため SSL と SSL 非対応バージョンの広告がある場合は、それに応じてこの属性を宣言する必要があります。 これにより、この区別が AdX に正しく反映されるようになります。

Open Bidding フィールド

Open に参加しているエクスチェンジとネットワーク入札者から送信される入札レスポンス 入札は、スタンダード ティアの認定バイヤーの入札と リアルタイム ビッダーOpen Bidding のお客様は 既存の一部のフィールドについては、別の用途がある場合があります。これらの 次の内容が含まれます。

OpenRTB 認定バイヤー 詳細
BidResponse.imp[].pmp.deals[].id BidResponse.ad[].adslot[].exchange_deal_id

これに関連付けられているエクスチェンジの名前空間の取引 ID パブリッシャーに報告されます

BidResponse.seatbid[].bid[].ext.exchange_deal_type BidResponse.ad[].adslot[].exchange_deal_type

パブリッシャーに報告される取引のタイプ。取引の方法に影響します。 関連付けられます

BidResponse.seatbid[].bid[].ext.third_party_buyer_token BidResponse.ad[].adslot[].third_party_buyer_token 第三者の購入者情報を特定するために使用されるトークン Open Bidding のエクスチェンジが仲介役になります。これは 入札で変更されることなく Google に渡される必要があります。 レスポンスが返されます。

推奨事項

  • 永続的な HTTPS 接続(「keep-alive」または 「接続の再利用」)によって保護するものではありません。タイムアウトを 10 秒に設定します。 最小値です。値が大きいほど有益です。Google による確認 これは、アプリケーションの最初のレイテンシ テスト中に行われます。これは、 認定バイヤーは頻繁にリクエストを送信するため、 アプリケーションごとに個別の TCP 接続を確立することによる リクエストできます。
  • 必要に応じてインプレッション トラッキング URL も組み込み、 落札したときではなく離脱のため レンダリングが分割されるため、精度の高いトラッキングが できます。

  • ビッダーのコードをサポートが終了したフィールドに依存しないようにしてください。 入札が失敗する可能性があります
  • BidResponse.Ad.width と あなたのBidResponseBidResponse.Ad.height。 複数の広告サイズを含むリクエストに BidResponse するには、 widthheight の値を含めないと、 オークションから除外された割合です
  • レスポンスのサイズを 8,000 未満に制限します。回答のサイズが非常に大きいと、 タイムアウトの原因となる場合があります
  • SKAdNetwork アトリビューションが必要な iOS 広告枠に入札する

入札レスポンスの例

次の例は、人間が読める形式の Protobuf サンプルと JSON リクエスト。

Google

OpenRTB JSON

OpenRTB プロトコル バッファ

重要: ここでは、人が読めるテキストとして表されます。しかし、それは メッセージはネットワーク経由で送信されます。Google または OpenRTB プロトコル バッファを使用する場合 形式の場合、シリアル化された入札レスポンス メッセージのみ受け入れられます。

BidResponse メッセージを作成してシリアル化するには、次のコマンドを使用します。 次の C++ コードは次のようになります。

BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
  // respond to the POST with post_response as the content
} else {
  // return an error to the POST
}

クリエイティブを指定する

入札レスポンスでは、落札した場合に配信するクリエイティブを指定します。入札単価 サポートされている広告フォーマット(AMP、動画、ネイティブ)のいずれかを含める必要があります。この この例では、html_snippet フィールドを使用してクリエイティブを指定しています。

または、次のいずれかを使用してクリエイティブを指定することもできます。 (広告フォーマット別)

  • SDK でレンダリングされた広告 <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.Ad.sdk_rendered_ad
  • AMP <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.Ad.amp_ad_url
  • 動画
    • BidResponse.Ad.video_urlまたは
    • BidResponse.Ad.video_vast_xml
  • ネイティブ <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.Ad.native_ad

HTML スニペットを使用して、自社サーバーでホストしている広告を BidResponsehtml_snippet フィールド。「 スニペットがウェブページに挿入された iFrame 内に挿入され、結果として広告が表示される ページの読み込み時に取得とレンダリングが行われますHTML コードを作成し、 スニペットを使用して、広告(バナーまたはインタースティシャル)が 入札する広告スロットに適したサイズに調整されています。

また、入札レスポンスで宣言される広告サイズは、1 つの広告ユニットと完全に一致する 次の場合に、入札リクエストでのサイズの組み合わせが 25% 削減されます。

  • 広告は通常のバナーである(動画、ネイティブ、インタースティシャルではない)。
  • ビッダーが入札レスポンスでサイズを宣言しました。サイズ宣言: リクエストに複数のサイズがある場合には必須です。
  • インタースティシャル広告の場合は例外となる。インタースティシャルの場合、幅は 画面の幅の 50% 以上、高さを画面の 40% 以上にする必要があります。 調整できます。

html_snippet フィールドは、次の文字列を含む有効な HTML コードをサポートします。 適切にレンダリングされますが、 [Create BidResponse message] セクションの buyer_creative_id フィールド。1 本 URL の引数に追加情報を含めることです。 レンダリングの一環として サーバーから取得されますこれにより、 インプレッションに関する任意のデータを自社のサーバーに送り返すことです。

入札レスポンスで返される HTML スニペットに関するポリシーのほとんどは、 使用する必要があります詳しくは、認定バイヤー プログラム ガイドラインサードパーティの要件 広告配信宣言 広告のリンク先 URL をご確認ください。

マクロを指定する

クリエイティブを定義する HTML スニペットには、1 つ以上の特別な URL を マクロと呼ばれる複合概念です。広告配信時に、値は マクロ。たとえば、クライアント入札アプリケーションでは、 WINNING_PRICE マクロを使用して、広告に支払われた金額、 落札しますこのマクロを解析するには、 価格確認を復号するアプリです。詳細については、価格の復号化 確認ページをご覧ください。

マクロを HTML スニペットの一部として %%MACRO%%MACRO はサポートされている マクロの一覧表です。

CLICK_URL_UNESC または 配信される第三者のクリエイティブ内の CLICK_URL_ESC マクロ 表示されます。Google はクリック トラッキングに CLICK_URL マクロを使用します。

マクロを使用するには、広告にマクロを追加して、 クリックされます。フェッチの戻り値は、別のリソースへの CLICK_URL に追加する URL。

マクロ 説明
ADVERTISING_IDENTIFIER 購入者がインプレッションのレンダリング時に iOS IDFA または Android の広告 ID を受け取ることができます。 広告主 ID の復号をご覧ください。 をご覧ください。
CACHEBUSTER ランダムな 4 バイトの符号なし整数の文字列表現。
CLICK_URL_UNESC

エスケープされていない広告のクリック URL。スニペットでは、 マクロの直後に第三者クリック URL を指定する必要があります。

たとえば、第三者のクリック URL が http://my.adserver.com/some/path/handleclick?click=clk, この場合、次のコードを、3 つ目の マクロ呼び出しに続く第三者クリック URL を追加します。

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

広告配信時には、次のように拡張されます。

<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

この URL は、まずクリックを Google に登録してから、第三者のクリック URL にリダイレクトします。

CLICK_URL_ESC

エスケープされた広告のクリック URL。代わりに使用するコード: 最初に値を渡す必要がある場合は、CLICK_URL_UNESC リダイレクトを返す別のサーバーです。

たとえば、次のコードを HTML スニペットで使用できます。

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>

広告配信時には、次のように拡張されます。

<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>

これにより、クリックが my.adserver.com に登録され、 その後、渡された URL へのリダイレクトを担当します。 google_click_url パラメータ。これは、 my.adserver.comgoogle_click_url のエスケープを解除します。 パラメータを指定します。

二重エスケープされた URL を %%CLICK_URL_ESC%%。エスケープ解除が完了すると my.adserver.com: シングル エスケープ バージョンの URL が残ります。 google_click_url に追加されます。Google google_click_url が取得されると、もう一度エスケープ解除され、 自動的にリダイレクトされます。

CLICK_URL_ESC_ESC

二重にエスケープされた広告の URL。代わりに使用するコード: 最初に値を渡す必要がある場合は、CLICK_URL_UNESC リダイレクトを返す別のサーバーです。

たとえば、次のコードを HTML スニペットで使用できます。

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>

広告配信時には、次のように拡張されます。

<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME 入札リクエストで SSL が必須でない、または SSL 対応が必須でない場合は、http: に展開されます。 入札リクエストで SSL が必須の場合は https:
SITE コンテンツ URL の URL がエスケープされたドメイン、または匿名広告枠の匿名 ID。
SITE_URL 非推奨です。同じ機能を提供する SITE マクロに置き換えられます。
TZ_OFFSET タイムゾーン オフセット。
VERIFICATION 本番環境ごとに異なる値と、クリエイティブをスキャンするタイミング 説明します形式は %%?VERIFICATION:true-val:false-val%% です。ここで、 マクロを除く値は true-valfalse-val に使用可能です。 空の文字列を含みます。Open Bidding の場合は、エクスチェンジでこのマクロを使用することをおすすめします。 一度変更した後に、デマンドサイド プラットフォームに変更を加える必要はありません。

たとえば、クリエイティブに %%?VERIFICATION:-1:5000%% が含まれているとします。 テキストの置換は、配信時は 5000、検索時は -1 になります。 検証パイプラインを構築しますこれは、2 つの ping を区別しやすくするためです。
WINNING_PRICE エンコードされたインプレッション費用(CPM ではなく CPI)は、 アカウントの通貨の 100 万倍の額。たとえば落札 CPM が 5 米ドル 5,000,000 マイクロ CPM または 5,000 マイクロ CPI に相当します。デコードされた この場合の WINNING_PRICE の値は 5,000 になります。 落札価格は CPI で指定します。
WINNING_PRICE_ESC URL がエスケープされた WINNING_PRICE

マクロ内の URL エスケープには、次のスキームが使用されます。

  • スペース文字はプラス記号(+)に置き換えられます。
  • 英数字(0 ~ 9、a ~ z、A ~ Z)とセットの !()*、-./:_~ の文字は変更されません。
  • その他の文字はすべて %XX に置き換えられます。ここで、XX は 16 進数です。 文字を表す数値。

パブリッシャー向け制限コンテンツ

パブリッシャーは BidRequest を使用して、どの広告に関する制限を渡すことができます できます。以下のフィールドで制限を適用する必要があります。

  • allowed_vendor_type
  • excluded_attribute
  • excluded_sensitive_category

1 つのフィールドで広告で許可される機能を指定し、もう 1 つのフィールドで 許可されません。許可されていない機能を含む広告は返してはなりません。許可される 使用する場合、そのベンダー タイプが BidRequestallowed_vendor_type リスト。詳しくは、 BidRequest プロトコル バッファ内のこれらのフィールドに関するコメント 定義をご覧ください。

HTML スニペットが BidResponse で返される場合、次のようになります。 attributecategory、 および click_through_url のフィールドをBidResponseします。 広告内のこれらのフィールドに適用可能な値が複数ある場合は、 すべての値が含まれます。これらのフィールドのコメントについては、 BidResponse プロトコル バッファの定義をご覧ください。 これらのフィールドが設定されていないレスポンスは破棄されます。

BidRequest.excluded_attribute に指定できる値は次のとおりです。 (publisher-excludable-creative-attributes.txt をご覧ください)。

  • 7 Tagging: IsTagged
    広告のリストを作成する目的でピクセルやウェブビーコンが含まれている場合、広告は許可されません Cookie ID を生成して、その後のリマーケティングに使用できます。
  • 8 CookieTargeting: IsCookieTargeted
    Cookie ID のリストが表す Cookie ID に基づいてユーザーをターゲティングしている広告は、許可されません。 購入者が所有または代理人を務めるサイトとやり取りしたことのある一連の消費者
  • 9 UserInterestTargeting: IsUserInterestTargeted
    Cookie ID のリストが表す Cookie ID に基づいてユーザーをターゲティングしている広告は、許可されません。 共通のインタレスト グループとして購入者が定義したユーザー グループ。
  • 21 CreativeType: Html
    広告で html_snippet または snippet_template を使用することはできません。 (BidResponse.Ad のフィールド)
  • 22 CreativeType: VastVideo
    広告で BidResponse.Advideo_url フィールドを使用することはできません。
  • 30 InstreamVastVideoType: Vpaid
    広告を表示するために VPAID 対応を必須とすることは許可されていません。
  • 32 MraidType: MRAID
    広告のレンダリングに MRAID API を要求することは禁止されています。
  • 34 RichMediaCapabilityType: RichMediaCapabilityFlash
    広告を表示する際に Flash 対応を必須とすることは許可されていません。
  • 39 RichMediaCapabilityType: RichMediaCapabilityHTML5
    HTML5 機能を必須にした広告は許可されません。
  • 48 RichMediaCapabilityType: RichMediaCapabilityNonSSL
    広告で SSL 以外のリクエストを行うことは許可されません。

したがって、excluded_attribute フィールドに値が含まれていると、 ピクセルやウェブビーコンを使用する広告は、 リストを作成します。なお、広告でこれを行う場合は、 BidResponse の属性フィールド。 同様に、excluded_attribute フィールドの値が 48 の場合、 SSL で表示できる広告のみを返すようにします 属性 47 の richCapabilityType: richCapabilitySSL を宣言)。

また、excluded_sensitive_category BidRequest では、 ad-sensitive-categories.txt ファイルは参照データのページから入手できます。こちらの このコードの一部の説明:

  • 3 Politics
    政治問題や物議を醸す社会問題を含む。問題に関して偏った視点を持っていると一般に考えられていないニュース メディアの広告は含まれません。
  • 4 Dating
    出会い系サービスやオンラインの出会い系コミュニティなど。
  • 5 Religion
    宗教的な広告や、宗教に関する賛成または反対の見解を支持する広告を含む。星占いや、特定の教派に属さないスピリチュアルな内容は含まれません。
  • 7 Video Games (Casual & Online)
    ビデオゲーム、オンライン ゲーム、ダウンロード可能なゲームを含む。ビデオゲーム機は対象外です。
  • 8 Ringtones & Downloadables
    着メロを含むモバイル用アドオン、パソコン用のスクリーンセーバーや壁紙、ソーシャル ネットワーク用のプロフィールのレイアウトや画像などのダウンロード可能なコンテンツ。
  • 10 Get Rich Quick
    急な収益を約束する仕組み。
  • 18 Weight Loss
    減量、ダイエットに関連する商品やプログラムを含む。健康的な食事や一般的なフィットネスに関する広告は含まれていない。
  • 19 Cosmetic Procedures & Body Modification
    フェイスリフト、脂肪吸引、レーザー施術、脱毛、植毛、タトゥー、美容整形などに関するサイトが含まれます。
  • 23 Drugs & Supplements:
    医薬品、ビタミン剤、サプリメント、関連する販売店を含む薬物に関する情報を提供するリソースが含まれていない。
  • 24 Sexual & Reproductive Health
    性機能や不妊対策に関する広告が含まれます。通常の妊娠に関するリソースは含まれません。
  • 35 Social Casino Games
    価値のあるもの(金銭や賞品など)を獲得する機会のないギャンブルのシミュレーション ゲーム(ポーカー、スロット、ビンゴ、宝くじ、スポーツ賭博、レース ベッティング、その他のカードゲーム、カジノゲームなど)が含まれます。
  • 36 Significant Skin Exposure
    胸から太ももまでで、一部の肌が露出している人物の広告画像。または、下着、水着、ランジェリーなど、透けて見える服、またはタオルやシーツなど衣服以外のものを身に着けている。
  • 37 Sensationalism
    ユーザーの好奇心を訴えてクリックを促すことを目的とする広告で、多くの場合、誇張的な言葉や画像を使ったティーザー メッセージが使用されています。扇情的なテーマ(有名人の逮捕、死、離婚など)を中心とした広告や、衝撃を与えることを目的とする広告が含まれます。

Open Measurement

Open Measurement では、独自の測定と測定を行う第三者ベンダーを指定できます モバイルアプリ環境に配信される広告向けのベリフィケーション サービス。

現在サポートされている広告フォーマットには、動画広告、バナー広告、インタースティシャル広告があります。詳細情報 これらのフォーマットを含む入札レスポンスで Open Measurement を使用する方法については、ヘルプセンターの Open Measurement SDK をご覧ください。 の記事を参照してください。

入札レスポンスの例

以下のセクションでは、広告タイプ別の入札レスポンスの例を示します。

アプリバナー

Google

OpenRTB JSON

OpenRTB プロトコル バッファ

アプリ インタースティシャル

Google

OpenRTB JSON

OpenRTB プロトコル バッファ

アプリ インタースティシャル動画

Google

OpenRTB プロトコル バッファ

アプリ ネイティブ

Google

OpenRTB JSON

OpenRTB プロトコル バッファ

ウェブ動画

Google

エクスチェンジ入札者のモバイルウェブ バナー

OpenRTB プロトコル バッファ