購入者の SDK 広告では、独自の SDK でレンダリングされたクリエイティブが使用されます。
入札アダプタをアプリに統合したパブリッシャーのモバイルアプリ広告枠は、購入者の SDK でレンダリングされた広告フォーマットでの入札を受け入れることができます。レンダリングの方法は SDK の実装と、入札レスポンスで送信する SDKRenderedAd
に基づきます。
購入者の SDK でレンダリングされた広告、または Google Mobile Ads SDK でサポートされているその他の広告フォーマットを使って入札できますが、両方を含む入札は除外されます。
要件
購入者の SDK 広告は承認済みの購入者が利用できます。この形式ではパブリッシャーとパブリッシャーの双方に余計な労力がかかります。購入者の SDK 広告用にアカウントを設定するには、テクニカル アカウント マネージャーにお問い合わせください。その後、SDK が Google Mobile Ads SDK と通信できるように入札アダプタを実装します。ニュース メディアは、SDK とアダプタをモバイルアプリに統合する必要があります。
入札レスポンスに含める前に、クリエイティブを審査に送信することをおすすめします。入札時のクリエイティブ タイプがわからない場合は、テクニカル アカウント マネージャーにお問い合わせください。
入札リクエストがこの広告フォーマットをサポートしている場合、入札レスポンスで sdk_rendered_ad
フィールドを設定することで、SDK でレンダリングする広告を指定できます。
入札リクエスト
モバイルアプリ広告枠の入札リクエストには、パブリッシャーのアプリ内の SDK とアダプタの詳細情報が含まれ、次のフィールドでレンダリングに使用できます。
- SDK ID
入札リクエストを使用して、購入者の SDK でレンダリングされた広告の入札レスポンスで指定する必要がある
id
を見つけることができます。次のフィールドをご覧ください。
- 認定バイヤー:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- 認定バイヤー:
InstalledSdk
メッセージについて詳しくは、Google および OpenRTB プロトコル ガイドをご覧ください。- 広告ユニットのマッピング
入札リクエストを使用して、入札スロットに一致する広告ユニットのマッピングを読み取ることができます。
次のフィールドをご覧ください。
- 認定バイヤー:
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- 認定バイヤー:
AdUnitMapping
オブジェクトについて詳しくは、Google と OpenRTB プロトコル ガイドをご覧ください。- セキュア シグナル
拡張 ID オブジェクトを読み取る必要があります。これは、パブリッシャーが選択したセキュア シグナルを渡すために使用される標準の拡張機能です。
次のフィールドをご覧ください。
- 認定バイヤー:
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
BidRequest.user.ext.eids.uids.id
- 認定バイヤー:
Extended Id
オブジェクトについて詳しくは、Google と OpenRTB プロトコル ガイドをご覧ください。- テスト リクエスト
[テスト リクエスト] フィールドを確認すると、入札リクエストがテストかどうかを確認できます。
次のフィールドをご覧ください。
- 認定バイヤー:
BidRequest.is_test
- OpenRTB:
BidRequest.test
- 認定バイヤー:
入札リクエストの例
id: "<bid_request_id>"
imp {
id: "1"
banner {
w: 320
h: 50
...
}
...
adx_ext {
...
ad_unit_mapping {
keyvals {
key: "key_1"
value: "value_1"
}
keyvals {
key: "key_2"
value: "value_2"
}
...
format: FORMAT_BANNER
}
}
}
app {
...
adx_ext {
installed_sdk {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
sdk_version {
major: 1
minor: 2
micro: 30
}
adapter_version {
major: 1
minor: 2
micro: 3000
}
}
installed_sdk {
...
}
...
}
}
device {
...
}
user {
...
}
adx_ext {
eids {
source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
uids {
id: "<partner_signal_string>"
}
}
}
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
google_query_id: "<query_string>"
...
}
入札レスポンス
- シート数
BidResponse.seatbid.bid
オブジェクトには、次のフィールドが必要です。認定バイヤー:
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.cid
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
入札レスポンスには、次のものを含む SdkRenderedAd
を含める必要があります。
- SDK ID
id
フィールドを使用して、SDK が広告をレンダリングするための ID を指定します。ID は入札リクエストの以下のフィールドで確認できます。
- 認定バイヤー:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- 認定バイヤー:
InstalledSdk
メッセージについて詳しくは、Google および OpenRTB プロトコル ガイドをご覧ください。- 宣言した広告
入札リクエストの
CreativeEnforcementSettings
要件を満たし、広告のレンダリング データを表すクリエイティブを指定する場合は、declared_ad
フィールドを使用します。ネイティブ以外の広告フォーマットでは、html_snippet
、video_url
、video_vast_xml
のいずれか 1 つのみを表示する必要があります。ネイティブ広告フォーマットの場合は、native_response
のみを使用する必要があります。- 認定バイヤー:
BidResponse.ad.sdk_rendered_ad.declared_ad
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
declared_ad
に値が入力されないと、クリエイティブは審査できず、そのクリエイティブの入札はすべてオークションから除外されます。- 認定バイヤー:
- データのレンダリング
rendering_data
フィールドを使って、購入者の SDK が広告のレンダリングに使用するデータを指定します。- 認定バイヤー:
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- 認定バイヤー:
購入者の SDK 広告を配信するための入札では、
declared_ad
フィールドにクリエイティブを指定する必要があります。宣言された広告は、rendering_data
を正確に表す必要があります。SdkRenderedAd
オブジェクトの例を次に示します。{ "id": "1234567", "rendering_data": "\xd58...,\xd4\x89\xd\xf9", "declared_ad": { "html_snippet": "<iframe src=\"https://example.com/ads?id=123& curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", } }
入札レスポンスに含める前に、Realtime Bidding API を使用して審査のためにクリエイティブを送信することをおすすめします。
SdkRenderedAd
フィールドの詳細については、Google プロトコル ガイドと OpenRTB プロトコル ガイドをご覧ください。
入札レスポンスの例
広告フォーマットごとの入札レスポンスの例を次に示します。
バナー
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 99
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 320
h: 50
burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
html_snippet: "<!doctype html> <html> ... </html>"
}
}
event_notification_token {
payload: "<payload_string>"
}
billing_id: 141763360450
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
インタースティシャル
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
動画リワード
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
ネイティブ
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 1200
h: 627
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
native_response {
...
assets {
id: 1
title {
text: ""
}
}
assets {
id: 2
data {
value: "<some_string>"
}
}
assets {
id: 3
data {
value: "View now"
}
}
assets {
id: 4
img {
url: "<valid_image_url>"
w: 1200
h: 627
type: 3
}
}
assets {
id: 5
img {
url: "<valid_image_url>"
w: 100
h: 100
type: 1
}
}
assets {
id: 6
data {
value: ""
}
}
assets {
id: 7
data {
value: "<some_string>"
}
}
link {
url: "<destination_link>"
}
}
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
クリエイティブの審査
クリエイティブは配信前に審査され、Google のポリシーとパブリッシャーの設定に準拠しているかどうかが確認されます。
審査のためにクリエイティブを送信するには、次の 2 つの方法があります。
- Real-time Bidding API(推奨)
審査のためにクリエイティブを送信するには、Real-time Bidding API の
buyers.creatives.create
メソッドを使用します。API では、1 つのクリエイティブにつき 1 つの送信のみが必要となります。この API を使用すると、クリエイティブの審査状況を確認できます。
- 入札レスポンス
新しいクリエイティブは、入札レスポンスで直接送信できます。
審査を受けるために購入者の SDK クリエイティブを含む入札レスポンスを送信するには、
SdkRenderedAd
オブジェクトのdeclared_ad
フィールドを使用する必要があります。入札レスポンスで送信されたクリエイティブは、多くの入札が行われた後にのみ審査されます。審査が完了する前に行われた入札はすべてオークションから除外されます。 審査開始後にクリエイティブのステータスを確認するには、リアルタイム ビッダー インターフェースまたはリアルタイム ビッダー API を使用します。
詳しくは、クリエイティブ ガイドをご覧ください。