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