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 错误。 这也将预热缓存,从而加快第一次广告加载速度。 可以按照上述规则从规范的 AMP URL 转换缓存 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