本页面介绍了如何开始使用 AMPHTML 广告 实时出价。查看下面的资源以了解更多信息 AMPHTML 广告和工具可帮助您轻松上手。
概要方法
实时出价请求
实时出价请求会指明请求是否来自 AMP 网页 和 AMPHTML 广告的要求
OpenRTB
AMP 网页
message SiteExt { enum AmpPage { // This is not an AMP page. DIALECT_HTML = 0; // This is an Amp page. DIALECT_HTML_AMP = 1; } // Whether this is an AMP page or not. Omitted if unknown. optional AmpPage amp = 1; enum VisibilityState { VISIBILITY_STATE_UNKNOWN = 0; // The page is at least partially visible. For example, in the foreground // tab of a non-minimized window. VISIBILITY_STATE_VISIBLE = 1; // The page is not visible to users. For example, when the page is in a // background browser tab, or in a minimized window. VISIBILITY_STATE_HIDDEN = 2; } // The visibility state of the web page containing the ad slot. // See https://www.w3.org/TR/page-visibility/. // [AdX: BidRequest.page_visibility] optional VisibilityState page_visibility = 2 [default = VISIBILITY_STATE_UNKNOWN]; // Information about a browser window's user activation state. See // https://html.spec.whatwg.org/multipage/interaction.html#the-useractivation-interface. message UserActivation { // Indicates whether a user has completed an interaction since page load. optional bool wasact = 1; // Indicates whether a user is currently interacting with the page. optional bool isact = 2; } // User activation information from the browser for the current request, if // the request is for a web page. optional UserActivation uact = 5; // The set of possible web navigation types that predicate a page load. Each // of these types may have different performance characteristics. For example, // users going back and forth might experience a faster site than users // performing navigation for the first time or submitting forms. See // https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming-type. enum NavigationType { NAVIGATION_TYPE_UNKNOWN = 0; // Navigation started by clicking a link, entering the URL in the browser's // address bar, form submission, or initializing through a script operation // other than reload and back_forward. NAVIGATION_TYPE_NAVIGATE = 1; // Navigation is through the browser's reload operation, location.reload(), // or a Refresh pragma directive like // <meta http-equiv="refresh" content="300">. NAVIGATION_TYPE_RELOAD = 2; // Navigation is through the browser's history traversal operation. NAVIGATION_TYPE_BACK_FORWARD = 3; // Navigation is initiated by a prerender hint (deprecated). See // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/prerender. NAVIGATION_TYPE_PRERENDER = 4; } // The type of browser navigation that led to the current page. Unset for // non-web ad requests. optional NavigationType ntype = 6; // Indicates that the request is using semi-transparent branding, // which means only a truncated version of the request URL will // be provided. This decision is made by the publisher, see // https://support.google.com/admanager/answer/4584891#urls for context. optional bool is_semi_transparent_request = 3; // The domain of the partner (of the site owner) with ownership // of some portion of ad inventory on the site. The partner's ads.txt file // will be hosted here. More detail at // http://iabtechlab.com/wp-content/uploads/2021/03/ctv-app-ads-explainer-guide.pdf optional string inventorypartnerdomain = 4; }
AMPHTML 广告要求
// Ad Exchange extensions for the Imp object. message ImpExt { ... // Possible requirement types for AMP ads. enum AmpAdRequirementType { // AMP ad requirements unknown. UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1; // AMP ads are not allowed. AMP_AD_NOT_ALLOWED = 2; // Either AMP ads or non-AMP ads are allowed; // AMP ads are not early rendered. AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3; // Either AMP ads or non-AMP ads are allowed; // AMP ads are early rendered. AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4; // AMP ads are required. // Ads that are non-AMP may be rejected by the publisher. AMP_AD_REQUIRED = 5; // Exchange-specific values above 500. } optional AmpAdRequirementType ampad = 8 [default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE]; }
Authorized Buyers 实时出价
AMP 网页
// Whether this is an AMP page or not. enum AmpPage { // AMP page status unknown. UNKNOWN_AMP_PAGE = 0;
AMPHTML 广告要求
// Possible requirement types for AMP ads. enum AmpAdRequirementType { // AMP ad requirements unknown. UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 0;
实时出价响应
OpenRTB
在<ph type="x-smartling-placeholder"></ph>中 OpenRTB 3.0 以及随附的广告 通用模型: 由 IAB 发布的最新规范草案,其中包括以下内容。
出价 | 字段 | Attr | 类型 | 说明 |
---|---|---|---|---|
请求 | Site.amp |
amp |
integer | Site.amp 字段指示网页是否呈现
在 AMP 中,未知时应将其省略:0 = 网页不是 AMP 网页1 = 网页是使用 AMP HTML 构建的 |
请求 | ampformat |
rend |
integer | AMP 格式规范指明了相关要求和呈现方式。
AMPHTML 广告的行为:1 = AMP 广告要求未知2 = 不允许使用 AMP 广告3 = 可以是 AMP 广告,也可以是非 AMP 广告;AMP 广告未提前呈现4 = 可以是 AMP 广告,也可以是非 AMP 广告,且 AMP 广告会提前呈现5 = 必须选择 AMP 广告。非 AMP 广告可能会被发布商拒绝500+ = 广告交易平台特定的值;应事先通知出价方 |
响应 | display |
curl |
字符串 | 在出价响应中,已添加 display.curl ,以便能够提交
广告素材,包括对 AMPHTML 广告的支持。广告素材标记所在的网址。适用于以下广告素材类型: AMP 广告、VAST 以及 DAAST 和原生。通常, adm 或 curl 中的一个在给定广告中有效。 |
Authorized Buyers 实时出价
Authorized Buyers 出价中的 BidResponse.Ad.amp_ad_url
字段
响应接受指向 AMPHTML 广告内容的网址。存在相同的字段
作为扩展,在 Google 的 OpenRTB 的 Bid
对象中
实施。
// The URL to fetch an AMPHTML ad. Only one of the following should be set: // html_snippet, video_url, amp_ad_url, native_ad. optional string amp_ad_url = 23;
验证 AMPHTML 是否有效
为了让 AMPHTML 广告提前呈现,广告交易平台必须验证并
签名,表示该广告采用 amp4ads <html
amp4ads>
广告素材格式编写。
有效的 AMPHTML 的广告将能被 AMP 网页提前呈现。广告 与 AMPHTML 广告相同的 非 AMPHTML 广告。
在 amp_ad_url
中,只能返回 AMPHTML 广告。
日后,如果发布商仅要求使用 AMPHTML 广告,未以 AMPHTML 将不会呈现。
使用 Authorized Buyers 时,如果出价方返回 非 AMPHTML 广告映射到需要 AMPHTML 广告的广告位。
服务器端提取
若要提前呈现 AMPHTML 广告,必须呈现 AMPHTML 广告内容 而无需从客户端进行其他跃点这旨在避免 广告延迟和额外的客户端调用导致用户体验不佳。
出价工具在竞价中胜出后
服务器到服务器请求,检索位于相应网址上的 AMPHTML 广告内容
在 amp_ad_url
中提供。广告素材服务器必须响应并返回
在 300 毫秒以内。
从广告素材服务器返回的 AMPHTML 广告将被注入到
然后再呈现请注意,有效的 AMPHTML 广告不能包含
iframe 或其他 <amp-ad>
代码。请参阅 AMPHTML
广告规范。
仅限 Beta 版的功能:如果您需要此功能,请与您的客户支持团队联系
在服务器到服务器检索 AMPHTML 广告期间(
amp_ad_url
),Authorized Buyers 可以传递 HTTP 标头和 IP
从用户浏览器传送到广告素材服务器这样可确保广告素材
服务器会接收与标准客户端
提取。在某些情况下,IP 地址可能会被截断为仅前 3 个字节
(IPv4) 或前 6 个字节 (IPv6)。如果您需要,请与您的客户支持团队联系
功能。以下是 HTTP 标头示例:
展示跟踪网址和 Click 宏
实时出价买方通常会将展示跟踪代码作为结构化字段添加到
出价响应(即 Bid.burl
,
OpenRTB 2.5)。
使用 Authorized Buyers 时,这些代码将在客户端触发;amp-pixel 在广告素材呈现时触发跟踪网址。amp-analytics 可以处理渲染之外的更高级跟踪用例。
AMPHTML 广告必须包含有效的 Click 宏, AMPHTML 广告。代码形式通常为如下形式:
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2my.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> <a href=”https://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%”></a>
Cookie 匹配
广告素材通常包含 Cookie
匹配像素。AMPHTML 广告可以使用
amp-pixel
和 amp-analytics
这个应用场景所需的组件如果您的用例无法通过
amp-analytics
或amp-pixel
,打开
讨论的 GitHub 问题
备选选项我们欢迎各种新扩展程序,
许多不同的公司。请参阅
详细
指南或
技术
指南。
用于测试的 AMP 广告网址示例
您可以使用以下示例 AMPHTML 广告内容进行测试:
资源
AMP 项目和 Google 发布了许多资源,以帮助您顺利上手:
- 在 AMP 中制作广告
- AMPHTML 广告素材格式规范 (GitHub)
- AMPHTML 广告概览 (GitHub)
- AMPHTML 广告 来自 AMP 项目的网站
- 示例 AMPHTML 广告
- 速度 对比 - 了解 AMPHTML 广告与 常规广告。使用 3G 连接时观看效果最佳。
- 向 IAB / OpenRTB Group 提交实时出价 (RTB) 专用提案