重要提示:此文档不适用于您当前选择的格式 电子邮件!
amp-ad-custom
描述
提供有效 AMPHTML 广告的替代方法。
必需的脚本
<script async custom-element="amp-ad-custom" src="https://cdn.ampproject.org/v0/amp-ad-custom-0.1.js"></script>
概述
AMP 模板广告是一种提供有效 AMPHTML 广告的替代方法,无需进行复杂的投放时间验证和签名。其主要思路是加载一个以 AMP 编写并从授权 AMP 代理服务器提供的广告模板,并在客户端使用从广告服务器获取的 JSON 格式广告数据渲染广告。
为了使任何广告网络都能投放 AMPHTML 模板广告,集成包括 3 个部分
- AMPHTML 广告模板创建
- 广告服务器更改:广告投放端点
- AMP 中的广告标签
AMPHTML 广告模板创建
广告网络以 AMP 格式创建广告模板,并将其托管在与规范 AMP 页面类似的自有域中。
例如,adnetwork.com 可以在以下 URL 托管一个模板:https://adnetwork.com/amp_template_1.html
。对应的 AMP 代理 URL 为:https://adnetwork-com.cdn.ampproject.org/ad/s/adnetwork.com/amp_template_1.html.
广告网络的域名(来源)用作命名空间,URL 路径用作其 ID。
代理服务器会在第一次请求时缓存模板。它遵循与普通 AMP 页面相同的过时后重新验证缓存策略,这意味着每次缓存命中后都会在后台发出同步请求。
为了确保模板是有效的 AMPHTML,广告网络必须向缓存 URL 发出 HTTP 请求,如果无效,该请求将返回 4XX 错误。这也将预热缓存,从而加快第一次广告加载的速度。缓存 URL 可以按照上述规则从规范 AMP URL 转换而来(请参阅此处的详细 URL 格式)。
要更新模板,广告网络只需要更新其域上的页面,然后发出另一个缓存预热请求。
广告服务器
广告网络需要提供一个新的服务端点,该端点以 JSON 格式返回 CORS 响应
{ templateUrl: "https://adexample.com/amp_template_1.html", data: { clickUrl: "https://buy.com/buy-1", buttonText: "Buy now" }, analytics: { type: "googleanalytics", config: { ... } } }
响应需要几个自定义标头
- CORS 的自定义标头
- AMP-Ad-Template-Extension: amp-mustache
- Amp-Ad-Response-Type: template
广告标签
可以使用 amp-ad-custom
扩展快速声明广告位,使用数据属性上设置的键值对来形成广告请求。示例广告位可能如下所示
<amp-ad-custom width="320" height="50" src="http://www.my-ad-network.com" data-request-param-{param_1}="{val_1}" data-request-param-{param_2}="{val_2}" . . . data-request-param-{param_N}="{val_N}" > </amp-ad-custom>
生成的广告请求 URL 将为:http://www.my-ad-network.com?{param_1}={val_1}&{param_2}={val_2}&...&{param_N}={val_N}
。
您已经阅读本文档十几次,但它并没有真正涵盖您所有的问题?也许其他人也有同样的感觉:请在 Stack Overflow 上联系他们。
转到 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但我们也欢迎您对您特别感兴趣的问题进行一次性贡献。
转到 GitHub