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 扩展快速声明广告位,使用在 data 属性上设置的键值对来形成广告请求。一个示例广告位可能如下所示

<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