买方 SDK 广告使用通过您自己的 SDK 呈现的广告素材。
由集成了您的出价功能的发布商提供的移动应用广告资源
适配器可以接受出价
与买方 SDK 呈现的广告格式相关联。它们的呈现方式取决于您的
SDK 实施和SDKRenderedAd
您在
出价响应。
您可以在出价时加入买方 SDK 呈现的广告或任何其他广告 格式 Google 移动广告 SDK 支持,但任何 则同时包含这两者的出价会被滤除。
要求
买方 SDK 广告可供已获批准的买方使用。这种格式要求 需要付出的所有努力请与您的技术支持客户经理联系, 针对买方 SDK 广告配置您的账号。然后,您可以使用基于价值的出价策略 适配器,让您的 SDK 与 Google 移动广告 SDK 进行通信。发布商需要集成 将 SDK 和适配器导入他们的移动应用
我们建议您为 审核 然后再将其添加到出价响应中。请与您的技术支持客户经理联系 如果您在出价时不知道广告素材类型。
如果出价请求支持此广告格式,您可以指定呈现
设置 sdk_rendered_ad
字段,从而实现与 SDK 集成的
响应。
出价请求
针对移动应用广告资源的出价请求包括 SDK 的详细信息以及 可用于在以下展示位置中呈现的发布商应用中的适配器 字段:
- SDK ID
您可以使用出价请求查找您必须在出价中提供的
id
。 对买方 SDK 呈现的广告的响应。请参阅以下字段:
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Google 实时出价协议(已弃用):
BidRequest.mobile.installed_sdk
- OpenRTB:
- 广告单元映射
您可以使用出价请求来读取与出价位置匹配的广告单元映射。
请参阅以下字段:
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Google 实时出价协议(已弃用):
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
- 安全信号
发布商可与出价方共享安全信号。您可以从 OpenRTB 的
BuyerGeneratedRequestData
对象或来自已弃用的 Google RTB 协议的SecureSignal
对象。请参阅以下字段:
- OpenRTB:
BidRequest.imp.ext.buyer_generated_request_data.data
- Google 实时出价协议(已弃用):
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
- 测试请求
您可以阅读“测试请求”字段,了解出价请求是否属于 测试。
请参阅以下字段:
- OpenRTB:
BidRequest.test
- Google 实时出价协议(已弃用):
BidRequest.is_test
- OpenRTB:
出价请求示例
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>"
...
}
出价响应
以下字段是出价响应中必填字段:
- OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.ext.billing_id
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
- Google 实时出价协议(已弃用):
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
此外,您的出价响应必须包含带有SdkRenderedAd
以下:
- SDK ID
使用
id
字段提供 SDK 以呈现广告。您可以通过以下字段在出价请求中找到该 ID:
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Google 实时出价协议(已弃用):
BidRequest.mobile.installed_sdk
- OpenRTB:
- 声明的广告
使用
declared_ad
字段提供符合出价请求的CreativeEnforcementSettings
要求,并且代表了广告的 呈现数据。只能是html_snippet
、video_url
、video_vast_xml
或 应填充native_response
。- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
- Google 实时出价协议(已弃用):
BidResponse.ad.sdk_rendered_ad.declared_ad
如果您不填充
declared_ad
,我们将无法审核该广告素材,并且 相应广告素材的所有出价都将被滤除而无法参与竞价。- OpenRTB:
- 呈现数据
使用
rendering_data
字段提供相应数据,以供买方 SDK 来呈现您的广告- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Google 实时出价协议(已弃用):
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
投放买方 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提交 审核 然后再将其添加到出价响应中。
请参阅
Google 和
OpenRTB 协议指南
,详细了解 SdkRenderedAd
字段。
出价响应示例
以下是每种广告格式的出价响应示例:
横幅
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(推荐)
您可以使用
buyers.creatives.create
Real-time Bidding API 方法 提交广告素材以供审核。在该 API 中,每个广告素材只需提交一次,可让您查看 广告素材的审核状态
- 出价响应
您可以直接在出价响应中提交新的广告素材。
您必须使用
SdkRenderedAd
对象的declared_ad
字段才能提交 包含买方 SDK 广告素材的出价响应以供审核。在出价响应中提交的广告素材只有在多次出价后才会得到审核。 在审核完成前放置的所有出价都会被滤除而无法参与竞价。 您可以使用实时出价界面 或实时出价 API 以了解广告素材在审核开始后的状态。
请参阅广告素材指南 。