AMP

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 格式 这里)。

要更新模板,广告网络只需更新其域上的页面,然后发出另一个缓存预热请求。

在此阶段,需要在 AMP 缓存中手动将域列入白名单,以试验该功能。

广告服务器

广告网络需要提供一个新的服务端点,该端点以 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