レスポンスを作成する

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

Protobuf BidResponse メッセージを作成する

認定バイヤーは、BidRequest を HTTP POST。入札エンドポイントが Protobuf 形式を使用するように構成されている場合、アプリケーションは、Content-Type ヘッダーを application/octet-stream に設定し、シリアル化されたプロトコル バッファで構成されるメッセージ本文を含むレスポンスを送信する必要があります。プロトコル バッファは、openrtb.proto で定義されている BidResponse メッセージです。アプリは、すべての BidRequest に対して解析可能な BidResponse を返す必要があります。タイムアウト 解析できないレスポンスはエラーと見なされ、Google は パフォーマンスが向上します

インプレッションへの入札を行わない場合は、BidResponse.ext.processing_time_ms フィールドのみを設定して、他のフィールドをすべて空白にしておくこともできます。openrtb.proto は、参照データページから取得できます。

クリエイティブ ID

BidResponse では、 BidResponse.seatbid.bid.crid フィールド(64 バイトの上限)。ほとんど変わらない 異なるクリエイティブについては、このフィールドに一意の値を指定する必要があります。 主な特徴(サイズ、宣言された URL、 クリエイティブの属性、ベンダー タイプを指定します。つまり、以下の条件を満たす 2 つの広告には、異なるクリエイティブ ID を割り当てる必要があります。

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

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

広告の帰属表示

広告の属性を表すクリエイティブ属性を宣言することをおすすめします。 属性とそのターゲット設定を組み合わせて、 BidResponse.seatbid.bid.apisBidResponse.seatbid.bid.attr、または BidResponse.seatbid.bid.ext.attribute 拡張機能。次の 属性を宣言する方法について説明します。

  • VPAID
    BidResponse.seatbid.bid.apisVPAID_1 に設定します。 または VPAID_2。JSON 形式の場合は、それぞれ 1 または 2 に設定できます。
  • MRAID
    BidResponse.seatbid.bid.apis の設定 MRAID_1、または JSON 形式の 3
  • SIZELESS
    BidResponse.seatbid.bid.attr の設定 RESPONSIVE、または 18(JSON の場合) 使用できます。
  • PLAYABLE
    これは、BidResponse.seatbid.bid.attr を設定することで示されます。 USER_INTERACTIVE、または 13(JSON の場合) 使用できます。

詳しくは、 クリエイティブ リソース で検出されたプロパティに関するフィードバックを取得する方法については、 指定します。

Open Bidding フィールド

Open Bidding に参加しているエクスチェンジとネットワークのビッダーが送信する入札レスポンスは、標準のリアルタイム ビッダーに参加している認定バイヤーの入札レスポンスと類似しています。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 接続(「キープアライブ」または「接続の再利用」とも呼ばれる)を有効にします。タイムアウトは少なくとも 10 秒に設定します。多くの場合、値を大きくすると効果的です。Google による確認 これは、アプリケーションの初回レイテンシ テスト中に行われます。これは、 認定バイヤーは頻繁にリクエストを送信するため、 アプリケーションごとに個別の TCP 接続を確立することによる リクエストできます。
  • 必要に応じてインプレッション トラッキング URL も組み込み、 落札したときではなく離脱のため レンダリングが分割されるため、精度の高いトラッキングが できます。

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

入札レスポンスの例

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

OpenRTB プロトコル バッファ

OpenRTB JSON

Google

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

次の C++ コードを使用して、BidResponse メッセージを作成してシリアル化できます。

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 レンダリング広告
    • BidResponse.seatbid.bid.ext.sdk_rendered_ad
  • AMP
    • BidResponse.seatbid.bid.amp_ad_url
  • 動画 <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.seatbid.bid.adm
  • ネイティブ
    • BidResponse.seatbid.bid.adm_native

HTML スニペットを使用して、自社サーバーでホストしている広告を BidResponse.seatbid.bid.adm フィールド。スニペットは iframe がウェブページに挿入され、結果として広告が取得され、 ページの読み込み時にレンダリングされます広告(バナーまたはインタースティシャル)が iframe 内で正しくレンダリングされ、入札する広告スロットに適したサイズになるように、HTML スニペットを作成する必要があります。

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

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

HTML スニペット クリエイティブには、有効な HTML コードを使用して、 適切にレンダリングされますが、 crid フィールド [入札レスポンス メッセージを作成する] セクション たとえば、広告のレンダリングの一環としてサーバーから取得される URL の引数に追加情報を追加できます。これにより、 インプレッションに関する任意のデータを自社のサーバーに送り返すことです。

入札レスポンスで返される HTML スニペットのポリシーのほとんどは、サードパーティ広告の場合と同じです。詳しくは、認定購入者プログラム ガイドライン第三者配信に関する要件広告でクリックスルー URL を宣言するをご覧ください。

マクロを指定する

マクロは、入札レスポンスのフィールド内に埋め込まれる書式設定されたテキストで、 広告配信時に関連する値に置き換えられる URL。たとえば 落札単価に HTML に AUCTION_PRICE マクロが含まれている場合 スニペット クリエイティブを含む場合、マクロは「 復号して、インプレッションに支払った金額を確認できます。 決定します

マクロは次のフィールドに含めることができます。

  • BidResponse.seatbid.bid.adm

    マクロは HTML スニペット、ネイティブ、動画 URL、動画 VAST でサポートされています XML 形式。

  • BidResponse.seatbid.bid.adm_native.eventtrackers.url

  • BidResponse.seatbid.bid.adm_native.imptrackers

  • BidResponse.seatbid.bid.ext.amp_ad_url

    Google 固有の WINNING_PRICEWINNING_PRICE_ESC マクロは AMP クリエイティブで使用できます。

  • BidResponse.seatbid.bid.burl

  • BidResponse.seatbid.bid.ext.impression_tracking_url

    次の場合は、BidResponse.seatbid.bid.burl の代わりにこれを使用します。 複数の請求 URL が必要です。

たとえば、クリエイティブの取得に使用する URL 内に ${MACRO} を埋め込むことで、HTML スニペットの一部としてマクロを含めることができます。ここで、MACROOpenRTB 仕様で説明されているサポートされているマクロの 1 つです。

Google RTB マクロ

Google では OpenRTB 以外のマクロもサポートしています。 仕様。これらは形式が異なり、次のように表示されます。 %%MACRO%%(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, この場合、シングル エスケープ バージョンでは、次のコードを使用できます。 マクロ呼び出し後の第三者クリック 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 に登録され、 その後、API によって渡される URL へのリダイレクトを担当します。 google_click_url パラメータ。これは、my.adserver.comgoogle_click_url パラメータをエスケープ解除することを前提としています。

%%CLICK_URL_ESC%% の後に、二重エスケープされた URL を追加できます。my.adserver.com によってエスケープ解除が完了すると、google_click_url に URL の単一エスケープ バージョンが追加されます。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 万倍の額。たとえば 5 米ドルの落札 CPM は、500 万マイクロ CPM または 5,000 マイクロ CPI に相当し、デコードされた この場合の WINNING_PRICE の値は 5,000 になります。 落札価格は CPI で表されます。

このマクロを解析するには、 価格確認を復号します詳しくは、 価格確認の復号 のページをご覧ください。

WINNING_PRICE_ESC URL がエスケープされた WINNING_PRICE

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

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

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

パブリッシャー向け制限コンテンツおよび要件

入札リクエストには、制限の種類に関する情報と、 パブリッシャーがオークションでクリエイティブに求める要件

  • BidRequest.bcat
    • このフィールドで指定されたブロックされたカテゴリは、Real-time Bidding API の detectedCategories フィールドを使用して、送信されたクリエイティブで検出されたカテゴリと比較できます。
  • BidRequest.imp.ext.allowed_vendor_type
  • BidRequest.imp.secure
    • 実際には、すべてのクリエイティブで SSL サポートが必須であるため、この値は常に true に設定されます。
  • BidRequest.imp.{audio/banner/native/video}
  • BidRequest.imp.{audio/banner/native/video}.api
  • BidRequest.imp.{audio/banner/native/video}.battr
  • BidRequest.imp.{audio/banner/video}.mimes

制限付きの機能を含む広告で入札しないでください。使用できる機能 (ベンダー タイプなど)は、ベンダー タイプが BidRequestallowed_vendor_type リスト。入札に含めることができるのは、BidRequest.imp.banner などのフィールドに値を入力して入札リクエストで指定した広告フォーマットのみです。詳しくは、 BidRequest プロトコル バッファ内のこれらのフィールドに関するコメント 定義をご覧ください。

BidResponse で広告が返された場合は、BidResponseBidResponse.seatbid.bid.attrBidResponse.seatbid.bid.catBidResponse.seatbid.bid.adomain または BidResponse.seatbid.bid.adm_native.link.url のいずれかのフィールドを正確に設定する必要があります。広告に適用可能な値が複数ある場合 すべての値を含める必要があります。これらのフィールドのコメントについては、 BidResponse プロトコル バッファの定義をご覧ください。 これらのフィールドが設定されていないレスポンスは破棄されます。

Open Measurement

Open Measurement では、モバイルアプリ環境に配信される広告の独立した測定と検証サービスを提供するサードパーティ ベンダーを指定できます。

サポートされている広告フォーマットには、動画広告、バナー広告、インタースティシャル広告があります。詳細情報 入札レスポンスで Open Measurement を使用する方法を Open Measurement SDK をご覧ください。 ご覧ください。

入札レスポンスの例

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

アプリバナー

OpenRTB Protobuf

OpenRTB JSON

Google

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

OpenRTB Protobuf

OpenRTB JSON

Google

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

OpenRTB プロトコル バッファ

Google

アプリ ネイティブ

OpenRTB プロトコル バッファ

OpenRTB JSON

Google

ウェブ動画

Google

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

OpenRTB プロトコル バッファ