买方 SDK 广告使用由您自己的 SDK 呈现的广告素材。
如果发布商将您的出价适配器集成到其应用中,则其移动应用广告资源可以接受买方 SDK 呈现的广告格式的出价。它们的呈现方式取决于您的 SDK 实现和您在出价响应中提交的 SDKRenderedAd。
您可以出价,其中包含买方 SDK 呈现的广告或 Google 移动广告 SDK 支持的任何其他广告格式,但包含这两者的任何出价都会被过滤掉。
要求
买方 SDK 广告仅面向已获批的买方提供。此格式需要您和发布商付出额外的努力。请与您的技术支持客户经理联系,以将您的账号配置为支持买方 SDK 广告。然后,您可以实现一个出价适配器,使您的 SDK 能够与 Google 移动广告 SDK 通信。发布商需要将您的 SDK 和适配器集成到其移动应用中。
我们建议您先提交广告素材以供审核,然后再将其纳入出价响应中。如果您在出价时不知道广告素材类型,请与您的技术支持客户经理联系。
如果出价请求支持此广告格式,您可以通过在出价响应中设置 sdk_rendered_ad 字段来指定使用您的 SDK 呈现的广告。
出价请求
移动应用广告资源的竞价请求包含发布商应用中 SDK 和适配器的详细信息,您可以使用这些信息在以下字段中进行呈现:
- SDK ID
您可以使用出价请求来查找必须在出价响应中通过
BidRequest.app.ext.installed_sdk.id字段提供的 SDK ID。如需了解相关详情,请参阅
InstalledSdk参考文档。- 广告单元映射
您可以使用出价请求通过
BidRequest.imp.ext.ad_unit_mapping字段查找与出价时段匹配的广告单元映射。如需了解相关详情,请参阅
AdUnitMapping参考文档。- 安全信号
发布商可以与出价方共享安全信号。您可以在
BidRequest.imp.ext.buyer_generated_request_data.data中找到这些内容。如需详细了解安全信号在
BuyerGeneratedRequestData参考文档中的表示方式,请参阅该文档。- 测试请求
您可以使用
BidRequest.test字段来验证出价请求是否为测试。如需详细了解此字段,请参阅
BidRequest参考文档。
出价请求示例
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.adomainBidResponse.seatbid.bid.ext.billing_idBidResponse.seatbid.bid.cridBidResponse.seatbid.bid.wBidResponse.seatbid.bid.h
此外,出价响应还必须使用以下内容填充 BidResponse.seatbid.bid.ext.sdk_rendered_ad:
- SDK ID
使用
id字段提供供 SDK 呈现广告的 ID。您可以在
BidRequest.app.ext.installed_sdk中找到该 ID。- 已声明的广告
使用
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad提供符合BidRequest.imp.ext.creative_enforcement_settings中要求的广告素材,并能代表广告的呈现数据。只能填充html_snippet、video_url、video_vast_xml或native_response中的一个。如果您未填充
declared_ad,我们将无法审核相应广告素材,并且所有包含该广告素材的出价都会从竞价中滤除。如需详细了解声明的广告,请参阅
DeclaredAd参考文档。- 呈现数据
使用
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data字段提供买方 SDK 用于呈现广告的数据。用于投放买方 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>", } }
我们建议您先使用 Real-time Bidding API 提交广告素材以供审核,然后再将其纳入出价响应中。
如需详细了解 SdkRenderedAd 字段,请参阅 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"
广告素材审核
广告素材需通过审核才能投放,以确保其符合我们的政策和发布商设置。
您可以通过以下两种方式提交广告素材以供审核:
- Real-time Bidding API(推荐)
您可以使用 Real-time Bidding API 的
buyers.creatives.create方法提交广告素材以供审核。该 API 仅要求每个广告素材提交一次,并允许您查看广告素材的审核状态。
- 出价响应
您可以直接在出价响应中提交新的广告素材。
您必须使用
SdkRenderedAd对象的declared_ad字段提交包含买方 SDK 广告素材的出价响应以供审核。出价响应中提交的广告素材只有在多次出价后才会接受审核。 在审核完成之前提交的所有出价都会从竞价中滤除。 您可以使用实时出价界面或实时出价 API 来查看广告素材在审核开始后的状态。
如需了解详情,请参阅广告素材指南。