原生广告是一种格式来契合周围内容和视觉设计的广告,更有可能被用户查看和点击。原生广告资源在移动应用、桌面版网站和移动网站上均可使用。如需详细了解原生广告,请参阅原生广告概览 。
Authorized Buyers 和公开出价均支持原生广告。
以下是原生广告的工作流程:
向 Google 发出原生广告调用请求。该调用会指定下面的一个或两个原生广告模板,每个模板都指定首选的原生广告字段。
Google 向买方发送实时出价请求,其中包含所请求的字段列表。
感兴趣的买方使用请求的字段进行响应。
Google 开展竞价,以选择获胜出价,并将相应买方提供的广告素材资源发送给发布商。
发布商将这些素材资源整合到一个原生广告中,并调整它们的样式以契合网站的设计。
Google 支持 JSON 和 Protobuf 格式的
OpenRTB 规范 。
对于 OpenRTB Protobuf 原生广告,以下字段与规范不同:
JSON 规范 (PROTOCOL_OPENRTB_2_4)
JSON 类型
OpenRTB 实现 (PROTOCOL_OPENRTB_PROTOBUF_2_4)
OpenRTB 类型
BidRequest.imp[].native.request
string
BidRequest.imp[].native.request_native
NativeRequest
BidResponse.seatbid[].bid[].adm
string
BidResponse.seatbid[].bid[].adm_native
NativeResponse
OpenRTB 字段是 Protobuf 消息,而不是字符串。
如果您使用 OpenRTB Protobuf 实现,则不会收到 BidRequest.imp[].native.request
,并且必须使用 BidResponse.seatbid[].bid[].adm_native
进行响应。包含 BidResponse.seatbid[].bid[].adm
的出价响应会被滤除。OpenRTB Protobuf 出价响应不需要素材资源 ID。
如果您使用买方 SDK 呈现原生广告,那么在提交广告素材以供审核 时,您必须在 declared_ad
中添加图片 type
。
原生广告模板
对于非视频广告和视频原生广告,Google 支持以下两种最常见的原生广告模板:
还有其他模板,这些模板可能对字段、维度和尺寸有不同的要求。
应用安装广告模板
必填字段和推荐字段
下表显示了标记为必需 或建议 的字段。
以下规则适用:
标记为必需 的字段为出价工具的必填字段。
标记为 Recommended 的字段并非出价方的必填字段;如果提供,发布商不一定会显示这些字段(例如,星级)。
号召性用语 (CTA) 始终被标记为 Recommended ,因为如果出价工具未发送,则会分配默认号召性用语,但如果出价工具发送,则始终会显示该默认值。
下表列出了应用安装广告模板的字段。
移动应用会使用这些字段来制作原生应用安装广告。
字段
说明
必需或推荐?
始终显示?
建议的图片大小/字符数上限
示例
标题
应用名称
必需
是
25 个字符
Flood-It!
图片
应用的屏幕截图或其他相关图片
必需
否
1,200 像素 x 627 像素或 600 像素 x 600 像素,具体取决于发布商要求的宽高比。
<Flood-It! 游戏的屏幕截图>
Body
应用的主要文字
必需
否
90 个字符
看似简单 + 诱人挑战 = 令人欲罢不能!
应用图标
应用图标
必需
否
128 x 128 像素
<Flood-it! 应用图标>
号召性用语
首选用户操作
推荐
是
15 个字符
安装
星级
表示应用在应用商店中的评分的星标数 (0 - 5)
推荐
否
0 - 5 个
4.5
Price
应用的费用
推荐
否
15 个字符
免费
有关文本长度的注意事项
如果买方发送的文字素材资源(例如正文)超出建议的最大字符数,Google 或发布商可能会截断和省略文字。请注意,在中文、日语和韩语中,截断限制大小只有一半。例如,英文标题限制为 90 个,中文标题限制为 45 个。
关于图片大小的注意事项
发布商可以:
对称剪裁主图片,在一个维度(高度或宽度)不超过 20%。
缩放图片,而不更改其宽高比。
如果图片的宽高比与高度和宽度所隐含的宽高比明显不同,则可能会被滤除。
内容广告模板
下表列出了内容广告模板的字段。发布商可以使用这些字段制作原生内容广告。
字段
说明
必需或推荐?
始终显示?
建议的图片大小/字符数上限
*
示例
标题
广告标题
必需
是
25 个字符
最低按揭贷款利率
图片
广告的主要图片
必需
否
1,200 像素 x 627 像素或 600 像素 x 600 像素,具体取决于发布商要求的宽高比。
<广告的主图片>
Body
广告内容
必需
否
90 个字符
布鲁克林的温馨家 - 价格更实惠,而且比你想象的要快!
徽标
广告客户的徽标或其他相关的小图片
推荐
否
128 x 128 像素
<NY Mortgage Inc. 的徽标>
号召性用语
用户的首选操作
推荐
否
15 个字符
获取报价
广告客户
标识广告客户或品牌的文字
必需
否
25 个字符
纽约抵押贷款公司
应用安装视频广告模板
字段
说明
必需或推荐?
始终显示?
建议的图片大小/字符数上限*
示例
视频
包含播放视频广告所需的所有素材资源的视频 VAST 响应。
必需
否
-
指向包含 Flood-It!视频广告
标题
应用名称
必需
是
25 个字符
Flood-It!
图片
点击视频广告前或视频广告加载时在播放器中显示的图片(缩略图)。
必需
否
应与视频的宽高比匹配(例如:16x9 视频为 1280x720,640x480 视频为 4x3)。
Flood-It! 游戏的屏幕截图或者在视频中
正文
应用的主要文字
必需
否
90 个字符
看似简单 + 诱人挑战 = 令人欲罢不能!
应用图标
应用图标
必需
否
128 x 128 像素
Flood-it! 应用图标
号召性用语
首选用户操作
必需
是
15 个字符
安装
星级
应用商店中代表应用评分的星标数 (0 - 5)
推荐
否
0 - 5
4.5
价格
应用的费用
推荐
否
15 个字符
免费
限制
应用安装广告示例
视频内容广告模板
字段
说明
必需或推荐?
始终显示?
建议的图片大小/字符数上限*
示例
视频
包含播放视频广告所需的所有素材资源的视频 VAST 响应。
必需
是
-
指向包含 Flood-It!视频广告
标题
广告标题
必需
是
25 个字符
最低按揭贷款利率
图片
点击视频广告前或视频广告加载时在播放器中显示的图片(缩略图)。
必需
否
应与视频的宽高比匹配(例如:16x9 视频为 1280x720,640x480 视频为 4x3)。
视频的屏幕截图
正文
广告内容
必需
否
90 个字符
布鲁克林的温馨家 - 价格更实惠,而且比你想象的要快!
徽标
广告客户的徽标或其他相关的小图片
推荐
否
128 x 128 像素
NY Mortgage Inc. 的徽标
号召性用语
用户的首选操作
必需
否
15 个字符
获取报价
广告客户
用于标识广告客户或品牌的文字
必需
否
25 个字符
NY Mortgage Inc.
所有支持的广告模板共享以下元字段:
Authorized Buyers 实时协议缓冲区
Authorized Buyers OpenRTB 等效项
说明
NativeAd.click_link_url
Link.url
当用户点击广告时,浏览器会调用的网址。
可以是重定向链的第一步,该链最终会将用户引导至着陆页。对于原生广告,我们建议使用 click_link_url
作为字段来设置用户最终到达的目的地。如果使用动态着陆页,则必须使用此字段。
Ad.click_through_url
Bid.adomain
如果出价方打算出价,则必须设置此字段。这是该代码段的一组目标网址,包括用户点击展示的广告后会进入的网址,以及在所呈现的广告中显示的所有网址。请勿添加与最终着陆页无关的对广告服务器的中间调用。返回代码段或视频广告但未声明任何 click_through_url
的 BidResponse 将被舍弃。请仅在设置了 html_snippet
、video_url
或 native_ad
时才设置此字段。此类数据将用作目标网址声明,例如,对发布商屏蔽的网址进行后期过滤或对广告进行分类。在使用原生广告时,请参阅上文中的 NativeAd.click_link_url
。
对于非原生广告,它不用于点击跟踪或任何其他广告功能;它只用作目标网址声明。
对于原生广告,如果未设置 NativeAd.click_link_url
,则系统会使用 click_through_url
的第一个值将用户引导至着陆页。此外,所有值都将用作目标网址声明(类似于非原生情况)。
NativeAd.click_tracking_urls
Link.clicktrackers
可选。供广告客户跟踪用户点击广告的其他网址。
Ad.ad_choices_destination_url
BidExt.ad_choices_destination_url
链接至广告偏好设置或选择停用页面。标准“广告选择”图标(如果存在)会添加到原生广告素材中,并链接到此网址。原生广告支持此属性,但出价响应中不包含原生消息。
Ad.impression_tracking_url
NativeResponse.imptrackers
应使用 Authorized Buyers 实时出价协议中的 impression_tracking_url
或 OpenRTB 中的原生广告点击跟踪广告代码来跟踪原生展示。
必填字段和推荐字段
required_fields
和 recommended_fields
由发布商指定。我们将展示如何转换这些位字段,以确定某个字段是必需字段还是建议字段。
位字段使用二进制值的每个位来存储一个 true 或 false 语句,相当于发送许多布尔信号(如 is_logo_required
、is_header_required
等),但所有这些信号都打包在一起。
示例
在此示例中,我们将使用 required_fields
值 1085
。
首先,找到等效二元值 :10000111101
获得二进制值后,您可以检查各个位,了解某个字段是必需 (1) 还是不需要 (0)。
下表将这些字段映射到了它们在二进制值中的位置。从右到左读取二进制文件,其中 1 位对应于二进制值中最右边的位置。
字段
二进制值展示位置(从右到左)
HEADLINE
1
BODY
2
CALL_TO_ACTION
4
ADVERTISER
8
IMAGE
16
LOGO
32
APP_ICON
64
STAR_RATING
128
PRICE
256
STORE
512
VIDEO
1024
以示例二进制值 10000111101
为例,1 位(最右侧)是 1
,表示必填值。根据该表,1 位对应于 HEADLINE
。
2 位(右边的第二个值)是 0
,表示不需要。 2 位对应于 BODY
。
以下是示例中所有经过解释的必填字段:
值
说明
是否必需?
1
VIDEO
是
0
STORE
否
0
PRICE
否
0
STAR_RATING
否
0
APP_ICON
否
1
LOGO
是
1
IMAGE
是
1
ADVERTISER
是
1
CALL_TO_ACTION
是
0
BODY
否
1
HEADLINE
是
NativeAdTemplate 消息
当收到包含原生广告资源的出价请求时,它将包含一个填充的 BidRequest.adSlot[].native_ad_template 。NativeAdTemplate
消息提供了以下规范:
必填字段或推荐字段。
图片、徽标和应用图标的尺寸。
广告呈现时所使用的样式规范。
注意 :对于 style_layout_type
字段,PIXEL
表示原生单元具有固定尺寸,而 FLUID
表示原生单元会缩放以填满外围列的宽度,并调整高度以保持宽高比。指定 FLUID
后,高度和宽度可能为 1x1。
message BidRequest {
//...
message AdSlot {
//...
message NativeAdTemplate {
// Defines the bits used in required_fields and recommended_fields.
// There is one bit for each of the fields in BidResponse.Ad.NativeAd
enum Fields {
NO_FIELDS = 0x0;
HEADLINE = 0x1;
BODY = 0x2;
CALL_TO_ACTION = 0x4;
ADVERTISER = 0x8;
IMAGE = 0x10;
LOGO = 0x20;
APP_ICON = 0x40;
STAR_RATING = 0x80;
PRICE = 0x100;
DEPRECATED_STORE = 0x200;
VIDEO = 0x400;
}
// Bitfield describing which fields are required by the publisher. Bid
// responses with no value for these fields will be rejected. Click
// and view tracking urls are always implicitly required.
optional int64 required_fields = 1;
// Bitfield describing which fields are recommended by the publisher.
// All recommended field are supported, but not all recommended fields
// are required.
optional int64 recommended_fields = 2;
// max_safe_length indicates the maximum number of Unicode characters that
// are guaranteed to be shown without truncation. Longer strings may be
// truncated and ellipsized by Ad Exchange or the publisher during
// rendering.
optional int32 headline_max_safe_length = 3;
optional int32 body_max_safe_length = 4;
optional int32 call_to_action_max_safe_length = 5;
optional int32 advertiser_max_safe_length = 6;
optional int32 price_max_safe_length = 15;
// The width and height from which to calculate the required aspect ratio.
// You can provide a larger image in the response. Images that have aspect
// ratios substantially different than those implied by the height and
// width may be filtered.
optional int32 image_width = 7;
optional int32 image_height = 8;
optional int32 logo_width = 9;
optional int32 logo_height = 10;
optional int32 app_icon_width = 11;
optional int32 app_icon_height = 12;
// Globally distinct id for the specific style, HTML, and CSS with which
// the native ad is rendered.
optional int32 style_id = 16;
// Type of style layout for each native ad template.
enum LayoutType {
PIXEL = 0;
FLUID = 1;
}
optional LayoutType style_layout_type = 17 [default = PIXEL];
// If the style_layout_type is Pixel, width and height of the
// entire native ad after rendering. If the style_layout_type is
// Fluid, the style_height and style_width may optionally
// not be populated.
optional int32 style_height = 18;
optional int32 style_width = 19;
}
repeated NativeAdTemplate native_ad_template = 51;
}
// NativePlacementType describes placement of native ad slot with respect to
// surrounding context.
enum NativePlacementType {
PLACEMENT_UNKNOWN = 0;
// In the feed of content - for example as an item inside the organic
// feed/grid/listing/carousel.
PLACEMENT_IN_FEED = 1;
// In the atomic unit of the content - for example, in the article page or single
// image page.
PLACEMENT_ATOMIC_UNIT = 2;
// Outside the core content - for example in the ads section on the right
// rail, as a banner-style placement near the content, etc.
PLACEMENT_OUTSIDE = 3;
// Recommendation widget, most commonly presented below the article
// content.
PLACEMENT_RECOMMENDATION = 4;
}
optional NativePlacementType native_placement_type = 45;
// ...
}
NativeAd 消息
对原生广告资源出价时,买方必须使用相应 BidRequest.adSlot[].native_ad_template
中声明的必填字段填充 BidResponse.ad[].native_ad 。
注意 :下面还列出了 BidResponse.Ad
中的一些其他字段,因为它们与原生广告相关。
message BidResponse {
//...
message Ad {
//...
message NativeAd {
// A short title for the ad.
optional string headline = 1;
// A long description of the ad.
optional string body = 2;
// A label for the button that the user is supposed to click.
optional string call_to_action = 3;
// The name of the advertiser or sponsor, to be displayed in the ad
// creative.
optional string advertiser = 4;
// Next tag to use: 4
message Image {
optional string url = 1;
// Image width and height are specified in pixels. You may provide a
// larger image than was requested, so long as the aspect ratio is
// preserved.
optional int32 width = 2;
optional int32 height = 3;
}
// A large image.
optional Image image = 5;
// A smaller image, for the advertiser's logo.
optional Image logo = 6;
// The app icon, for app download ads.
optional Image app_icon = 7;
// The video file. Only set this field if the video field is requested.
oneof video {
// The URL to fetch a video ad. The URL should return an XML response
// that conforms to VAST standards.
string video_url = 13;
// The VAST document to be returned.
string video_vast_xml = 16;
}
// The app rating in the app store. Must be in the range [0-5].
optional double star_rating = 8;
// The URL that the browser/SDK will load when the user clicks the ad.
// This can be the landing page directly, or the first step of a redirect
// chain that eventually leads to it. For backward compatibility, if this
// is not set, the first Ad.click_through_url is used.
optional string click_link_url = 14;
// The URL to use for click tracking. The SDK pings click tracking url on
// a background thread. When resolving the url, HTTP 30x redirects are
// followed. The SDK ignores the contents of the response; this URL
// has no effect on the landing page for the user.
// This field is planned to be deprecated and we are moving to the
// repeated click_tracking_urls field.
optional string click_tracking_url = 11;
// The URLs to use for click tracking. This will be used throughout the
// serving stack and will incorporate any URL in click_tracking_urls.
repeated string click_tracking_urls = 15;
// The price of the promoted app including the currency info.
optional string price = 10;
};
optional NativeAd native_ad = 18;
// The set of destination URLs for the snippet. This includes the URLs that
// the user will go to if they click on the displayed ad, and any URLs that
// are visible in the rendered ad. Do not include intermediate calls to the
// adserver that are unrelated to the final landing page. A BidResponse that
// returns a snippet or video ad but declares no click_through_url will be
// discarded. Only set this field if html_snippet or video_url or native_ad
// are set. This data is used as a destination URL declaration, for example
// for post-filtering of publisher-blocked URLs or ad categorization.
//
// For non-native ads, it is not used for click tracking or any
// other ad functionality; it is only used as a destination URL
// declaration.
//
// For native ads, if NativeAd.click_link_url is not set, the first
// value of click_through_url is used to direct the user to the landing
// page. In addition, all values are used as destination
// URL declarations (similar to the non-native case).
repeated string click_through_url = 4;
//...
// The URLs to call when the impression is rendered. The SDK pings
// impression urls on a background thread and ignores the contents
// of the response.
repeated string impression_tracking_url = 19;
// Link to ad preferences page. This is only supported for native ads.
// If present, a standard AdChoices icon is added to the native ad creative and
// linked to this URL.
optional string ad_choices_destination_url = 21;
// ...
}
}
出价请求示例
注意:如需了解响应中显示的必需或可选信息,请参阅下方 Google 请求中的 BidRequest.adslot.native_ad_template
。对于 OpenRTB JSON,可在 BidRequest.imp.native
的 request
字段中找到相关要求。对于 OpenRTB Protobuf,请参阅 BidRequest.imp.native
的 request_native
字段。
非视频广告出价请求
Google
显示示例
id: "\226M\242\204\324\r\2019\256\362F\020[\323\205n\320\003\257\0179\274\034"
ip: "\300\250"
user_agent: "Mozilla/5.0 (Linux; Android 13; Pixel 6a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36 RakutenWebsearch/5.100.08"
url: "https://www.google.com"
detected_language: "ja"
adslot {
id: 1
excluded_attribute: 20
excluded_attribute: 21
allowed_vendor_type: 42
allowed_vendor_type: 144
matching_ad_data {
billing_id: 34438877165
minimum_cpm_micros: 1000000
}
slot_visibility: NO_DETECTION
excluded_product_category: 10015
excluded_product_category: 10611
ad_block_key: 4801919744
publisher_settings_list_id: 9565076710629580954
publisher_settings_list_id: 9122016041291349488
allowed_restricted_category: 32
allowed_restricted_category: 33
iframing_state: UNKNOWN_IFRAME_STATE
viewability: 0
allowed_restricted_category_for_deals: 33
allowed_restricted_category_for_deals: 32
click_through_rate: 0.00012890543
sticky_settings {
bottom_horizontal_stickiness: IS_STICKY
}
allowed_ad_types: ALLOWED_AD_TYPE_NATIVE
is_amp_page: DIALECT_HTML
amp_ad_requirement_type: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
session_depth: 19
native_placement_type: PLACEMENT_IN_FEED
native_ad_template {
required_fields: 25
recommended_fields: 0
headline_max_safe_length: 25
body_max_safe_length: 90
call_to_action_max_safe_length: 15
advertiser_max_safe_length: 25
image_width: 1200
image_height: 627
style_id: 221281
style_layout_type: FLUID
style_height: 1
style_width: 1
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
}
auction_environment: SERVER_SIDE_AUCTION
impression_expiration_seconds: 3600
}
is_test: false
cookie_version: 1
google_user_id: "F6U2fpw3K08HSZGB73seQ5Pbk31"
mobile {
is_app: false
is_mobile_web_optimized: true
}
cookie_age_seconds: 12960000
hosted_match_data: "\312B\314fj@}h\3168\373\376D\335B\007\362\245\253"
geo_criteria_id: 1009637
encrypted_hyperlocal_set: "\\\253\006\362\017\201L\262\200\255z\2076g,\346\304\0279\273(\314\303\2402\3667\004\215W\353\225i\316\3302\035\t\273\220\330Eu\3106\337\352\331\'AX\377[\022\302\3254rtI\025W\316V\336\366\260\177_\355:QU\225t\300\315E\036\220\r\214\360\206\030\230\332HW\362&"
seller_network_id: 10468
publisher_type: PUBLISHER_REPRESENTED
partner_id: 6586746035199562167
hyperlocal_set {
hyperlocal {
corners {
latitude: 0.0
longitude: 0.0
}
corners {
latitude: 0.0
longitude: 0.0
}
corners {
latitude: 0.0
longitude: 0.0
}
corners {
latitude: 0.0
longitude: 0.0
}
}
center_point {
latitude: 0.0
longitude: 0.0
}
}
device {
device_type: HIGHEND_PHONE
platform: "android"
brand: "google"
model: "pixel 6a"
os_version {
major: 13
}
carrier_id: 0
screen_width: 376
screen_height: 835
screen_pixel_ratio_millis: 2875
limit_ad_tracking: false
}
publisher_country: "JP"
publisher_id: "pub-1111111111111111"
response_deadline_ms: 300
google_query_id: "ANy-z65c3V-K51171Fi2prC2Yn4f0X1I970y576HVOU2BXJn0lf2XSziKevRK1vpMGHD153A"
auction_type: FIRST_PRICE
geo {
lat: 34.59
lon: 133.89
country: "JPN"
region: "JP-33"
city: "Okayama"
accuracy: 19507
}
user_agent_data {
platform {
brand: "Android"
version: "13"
version: "0"
}
mobile: true
model: "Pixel 6a"
browsers {
brand: "(Not(A:Brand"
version: "8"
version: "0"
}
browsers {
brand: "Chromium"
version: "100"
version: "0"
}
}
page_visibility: VISIBILITY_STATE_VISIBLE
supply_chain {
complete: true
nodes {
advertising_system_identifier: "i-mobile.co.jp"
seller_identifier: "pub-1111111111111111"
handles_payment: true
}
nodes {
advertising_system_identifier: "google.com"
seller_identifier: "pub-1111111111111111"
handles_payment: true
}
version: "1.0"
}
frequency_capping_scope: FREQUENCY_CAPPING_SCOPE_BROWSER
privacy_treatments {
allow_user_data_collection: false
}
inventory_partner_domain: "OMITTED"
OpenRTB JSON
显示示例
{
"id": "8C7058U3s20928AGBP5Yij",
"imp": [
{
"id": "1",
"tagid": "9593912945",
"bidfloor": 0.01,
"bidfloorcur": "USD",
"secure": 1,
"native": {
"request": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":25}},{\"id\":2,\"required\":1,\"data\":{\"type\":1,\"len\":25}},{\"id\":3,\"required\":1,\"img\":{\"type\":3,\"wmin\":600,\"hmin\":313}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1]}]}",
"ver": "1.2",
"api": [
1,
2
]
},
"metric": [
{
"type": "click_through_rate",
"value": 0,
"vendor": "EXCHANGE"
},
{
"type": "viewability",
"value": 0,
"vendor": "EXCHANGE"
}
],
"ext": {
"billing_id": [
19693706542
],
"publisher_settings_list_id": [
3575046024785253379,
8093493698074697754
],
"allowed_vendor_type": [
331,
4680
],
"ampad": 2,
"excluded_creatives": [
{
"buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
}
],
"creative_enforcement_settings": {
"policy_enforcement": 2,
"publisher_blocks_enforcement": 1,
"is_default": 1
},
"auction_environment": 0
}
}
],
"site": {
"page": "https://www.google.com",
"publisher": {
"id": "pub-1111111111111111",
"ext": {
"country": "VN"
}
},
"content": {
"livestream": 0,
"language": "en"
},
"mobile": 1,
"ext": {
"amp": 0,
"page_visibility": 1,
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",
"geo": {
"lat": 0.0,
"lon": 0.0,
"country": "USA",
"region": "FL",
"metro": "539",
"city": "Bradenton",
"zip": "34207",
"type": 2,
"accuracy": 2905
},
"ipv6": "2603:9000:a403::",
"make": "apple",
"model": "iphone",
"os": "iOS",
"osv": "15.4.4",
"devicetype": 4,
"lmt": 0,
"w": 428,
"h": 926,
"pxratio": 3,
"ext": {
"user_agent_data": {
"platform": {
"brand": "iPhone",
"version": [
"15",
"4"
]
},
"mobile": 1,
"browsers": [
{
"brand": "Safari",
"version": [
"15",
"4"
]
},
{
"brand": "Mozilla",
"version": [
"5",
"0"
]
},
{
"brand": "AppleWebKit",
"version": [
"605",
"1"
]
}
],
"bitness": "64"
}
}
},
"user": {
"ext": {}
},
"at": 1,
"tmax": 300,
"cur": [
"USD"
],
"source": {
"ext": {
"schain": {
"complete": 1,
"nodes": [
{
"asi": "google.com",
"sid": "pub-1028650221795432",
"hp": 1
}
],
"ver": "1.0"
}
}
},
"ext": {
"google_query_id": "ANy-zfKua9-G5R316N638Mn0xgl3iu68F0u72M7r0aT9dMS24U7VNy3D391xb7K41155r533",
"fcap_scope": 5,
"privacy_treatments": {
"allow_user_data_collection": 1
}
}
}
OpenRTB 协议缓冲区
显示示例
id: "CW335Jn7Z9302AoiHaJ457"
imp {
id: "1"
tagid: "6556451022"
bidfloor: 0.01
bidfloorcur: "USD"
secure: true
native {
ver: "1.2"
api: VPAID_1
api: VPAID_2
request_native {
ver: "1.2"
assets {
id: 1
required: true
title {
len: 25
}
}
assets {
id: 2
required: true
data {
type: DESC
len: 90
}
}
assets {
id: 3
data {
type: CTATEXT
len: 15
}
}
assets {
id: 4
required: true
img {
type: MAIN
wmin: 1200
hmin: 627
}
}
eventtrackers {
event: IMPRESSION
methods: IMG
}
[com.google.doubleclick.native_ext] {
style_id: 476037
style_height: 1
style_width: 1
style_layout_type: FLUID
}
}
}
exp: 3600
metric {
type: "click_through_rate"
value: 0.0006219408242031932
vendor: "EXCHANGE"
}
metric {
type: "viewability"
value: 0.11
vendor: "EXCHANGE"
}
[com.google.doubleclick.imp] {
billing_id: 43493646043
dfp_ad_unit_code: "/4297145/google/test"
ampad: AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
open_bidding {
is_open_bidding: true
}
creative_enforcement_settings {
policy_enforcement: POLICY_ENFORCEMENT_PLATFORM_POLICY
publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN
}
auction_environment: SERVER_SIDE_AUCTION
}
}
site {
page: "https://www.google.com"
publisher {
id: "pub-1111111111111111"
[com.google.doubleclick.publisher] {
country: "BR"
}
}
content {
livestream: false
language: "pt"
}
[com.google.doubleclick.site] {
amp: DIALECT_HTML
page_visibility: VISIBILITY_STATE_HIDDEN
inventorypartnerdomain: "OMITTED"
}
}
device {
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0"
geo {
lat: 0.0
lon: 0.0
country: "BRA"
region: "BR-SP"
city: "Sao Paulo"
}
ipv6: "2804:7f0:b1c0::"
os: "Windows"
devicetype: PERSONAL_COMPUTER
lmt: false
pxratio: 1.0
sua {
platform {
brand: "Firefox"
version: "5"
version: "0"
}
}
[com.google.doubleclick.device] {
}
}
user {
[com.google.doubleclick.user] {
}
}
at: FIRST_PRICE
tmax: 300
cur: "USD"
regs {
[com.google.doubleclick.regs] {
lgpd: true
}
}
source {
[com.google.doubleclick.source] {
schain {
complete: 1
nodes {
asi: "google.com"
sid: "pub-6330791094260149"
hp: 1
}
ver: "1.0"
}
}
}
[com.google.doubleclick.bid_request] {
google_query_id: "ANy-z1n1nk-p8G11E7E4Mg3tk38VNZWB88ijTr0zpZ22Lg363603SMcty7L78211J0e34Mc3"
fcap_scope: FREQUENCY_CAPPING_SCOPE_SITE
privacy_treatments {
}
}
视频广告出价请求
点击查看
{
id: "\\\123/f\000\t\456&\n\789\1234\"\001a\123",
ip: "\0338\355",
google_user_id: "CAESEJ1ur2l94_8ruuu",
cookie_version: 1,
cookie_age_seconds: 5184000,
hosted_match_data: "W9ABDAAAAGR67nl0",
user_agent: "Mozilla/5.0 (Linux; Android 5.1; CP8298_I00) Mobile Safari/537.36",
publisher_country: "IN",
geo_criteria_id: 1007796,
timezone_offset: 330,
publisher_id: "pub-2230723027927371",
seller_network_id: 989,
url: "https://m.example.com",
detected_language: [en],
google_query_id: "ANy-zJEgdus4l0MishbSmH0eOcXUA1Fbo4_tKROsbR37q",
auction_type: "SECOND_PRICE",
device: {
device_type: "HIGHEND_PHONE",
platform: "android",
brand: "coolpad",
model: "cp8298_i00",
os_version: {
major: 5,
minor: 1
},
carrier_id: 70210,
screen_width: 360,
screen_height: 640,
screen_pixel_ratio_millis: 2000
},
mobile: {
is_app: false,
is_mobile_web_optimized: true,
DEPRECATED_platform: "android",
DEPRECATED_mobile_device_type: "HIGHEND_PHONE",
DEPRECATED_brand: "coolpad",
DEPRECATED_model: "cp8298_i00",
DEPRECATED_os_version: {
os_version_major: 5,
os_version_minor: 1
},
DEPRECATED_screen_width: 360,
DEPRECATED_screen_height: 640,
DEPRECATED_carrier_id: 70210,
DEPRECATED_device_pixel_ratio_millis: 2000
},
publisher_type: "ADX_PUBLISHER_OWNED_AND_OPERATED",
adslot: [{
id: 1,
ad_block_key: 2882274820,
width: [300,250],
height: [250,250],
excluded_attribute: [114,22,34,25,27,13,14,15,16,17,18,19,20,25,27,22],
allowed_vendor_type: [42,144,575,698,704,743,776,785,793,797,808,828,832,885],
excluded_sensitive_category: [36,27,19,4,23,30,10,3,31,5,8,37,18],
excluded_product_category: [10031,11669,13423,13525,13566,13589,13612,13740],
excluded_creatives: [{
buyer_creative_id: "1234567.1234567890-ssl"
}],
matching_ad_data: [{
billing_id: [6629616415,51386650457],
minimum_cpm_micros: 1380000,
direct_deal: [{
direct_deal_id: 410401,
fixed_cpm_micros: 1360000,
deal_type: "PREFERRED_DEAL",
publisher_blocks_overridden: true
},{
direct_deal_id: 240644,
fixed_cpm_micros: 1500000,
deal_type: "PREFERRED_DEAL",
publisher_blocks_overridden: true
}]
},{
billing_id: [1234567890],
minimum_cpm_micros: 1380000
}],
publisher_settings_list_id: [12109930661871909476,11138951146123409010],
slot_visibility: "BELOW_THE_FOLD",
viewability: 30,
click_through_rate: 0.0010072842,
iframing_state: "UNKNOWN_IFRAME_STATE",
native_ad_template: [{
required_fields: 1065,
recommended_fields: 4,
headline_max_safe_length: 25,
body_max_safe_length: 90,
call_to_action_max_safe_length: 15,
advertiser_max_safe_length: 25,
logo_width: 100,
logo_height: 100,
style_id: 199892,
style_height: 250,
style_width: 300
}],
sticky_settings: {
},
renderer: "GOOGLE",
is_amp_page: "DIALECT_HTML",
amp_ad_requirement_type: "AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED",
allowed_ad_types: [ALLOWED_AD_TYPE_BANNER,ALLOWED_AD_TYPE_NATIVE],
session_depth: 1,
internal_data: {
}
}],
response_deadline_ms: 122,
is_test: false
}
出价响应示例
请注意,这些响应中的值与上述相应请求并不相符。但是,如果请求中的模板建议必填字段/选填字段,则此处的响应符合这些要求。
非视频广告出价响应
Google
显示示例
ad {
adslot {
id: 1
max_cpm_micros: 3000000
billing_id: 34438877165
deal_id: 1
buyer_reporting_id: "DjA6yW8"
}
click_through_url: "google.com"
attribute: 47
buyer_creative_id: "test_creative_id_845142"
native_ad {
headline: "Luxury Mars Cruises"
body: "Visit the planet in a luxury spaceship."
call_to_action: "Book today"
advertiser: "Galactic Luxury Cruises"
image {
url: "https://native.test.com/image?id=123456"
width: 1200
height: 627
}
logo {
url: "https://native.test.com/logo?id=123456"
width: 200
height: 200
}
app_icon {
url: "https://native.test.com/icon?id=123456"
width: 200
height: 200
}
click_link_url: "https://www.google.com"
}
impression_tracking_url: "https://test.com/imp?id=123456"
ad_choices_destination_url: "https://test.com/preferences"
event_notification_token: "token"
}
processing_time_ms: 5
OpenRTB JSON
显示示例
{
"id": "j53Z8GLLnSq8N97uXu029T",
"seatbid": [
{
"bid": [
{
"id": "0kcWm8o4Q44BV54eOX8",
"impid": "1",
"price": 0.0612,
"adid": "test_creative_id_838714",
"adm": "{\"assets\": [{\"id\": 1, \"title\": {\"text\": \"Luxury Mars Cruises\"}}, {\"id\": 2, \"data\": {\"value\": \"Galactic Luxury Cruises\"}}, {\"id\": 3, \"img\": {\"url\": \"https://native.test.com/image?id=123456\", \"w\": 1200, \"h\": 627}}], \"link\": {\"url\": \"https://www.google.com\", \"clicktrackers\": [\"https://native.test.com/click?id=123456\"]}, \"imptrackers\": [\"https://test.com/impression?id=123456&amt=${AUCTION_PRICE}\"]}",
"adomain": [
"google.com"
],
"cid": "19693706542",
"crid": "test_creative_id_838714",
"ext": {
"ad_choices_destination_url": "https://test.com/preferences"
}
}
],
"seat": "8710:9087:596625"
}
],
"bidid": "50x4472o-qpci0H0b-Ovbp-6C470CnUTyA2"
}
OpenRTB 协议缓冲区
显示示例
id: "W4E2PD2Vr8Gl4Eq70eoT6v"
seatbid {
bid {
id: "uz3aH5W5Tzvc42GkuXT"
impid: "1"
price: 0.04632
adomain: "google.com"
cid: "43493646043"
crid: "test_creative_id_877701"
cat: "IAB13-7"
adm_native {
ver: "1.0"
assets {
id: 1
required: true
title {
text: "Luxury Mars Cruises"
}
}
assets {
id: 2
required: true
data {
value: "Visit the planet in a luxury spaceship."
}
}
assets {
id: 4
required: true
img {
url: "https://native.test.com/image?id=123456"
w: 1200
h: 627
}
}
link {
url: "https://www.google.com"
}
imptrackers: "https://test.com/impression?id=123456&amt=${AUCTION_PRICE}"
}
[com.google.doubleclick.bid] {
ad_choices_destination_url: "https://test.com/preferences"
billing_id: 43493646043
}
}
bid {
id: "19794j5G3x4mpfzvr4m"
impid: "1"
price: 0.032292
adomain: "google.com"
cid: "43493646043"
crid: "test_creative_id_877701"
cat: "IAB7-44"
adm_native {
ver: "1.0"
assets {
id: 1
required: true
title {
text: "Luxury Mars Cruises"
}
}
assets {
id: 2
required: true
data {
value: "Visit the planet in a luxury spaceship."
}
}
assets {
id: 4
required: true
img {
url: "https://native.test.com/image?id=123456"
w: 1200
h: 627
}
}
link {
url: "https://www.google.com"
}
imptrackers: "https://test.com/impression?id=123456&amt=${AUCTION_PRICE}"
}
[com.google.doubleclick.bid] {
ad_choices_destination_url: "https://test.com/preferences"
billing_id: 43493646043
}
}
seat: "6718:8545:950241"
group: false
}
bidid: "ah128WV2-1j995674-5243-f57Et5RtZLF7"
cur: "USD"
视频广告出价响应数
点击查看
bid_response {
ad {
...
click_through_url: "https://www.exampleDomain.com"
impression_tracking_url: "https://my_impression_tracking_url.com/"
ad_choices_destination_url: "https://my_ad_choices_destination_url.com/"
...
native_ad {
headline: "Lowest mortgage rates"
video_url: "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast"
call_to_action: "Get a quote"
advertiser: "NY Mortgage Inc."
image {
url: "https://www.example.net/mypromoimage.png"
width: 1200
height: 700
}
logo {
url: "https://www.example.net/mylogo.png"
width: 200
height: 200
}
click_link_url: "https://r1.example.com/r/u1dhfh3cow00/b1_googleadx/830/41972/ ?_b_ctrl=1"
click_tracking_urls: "https://my_click_tracking_url.com/"
}
}
}