AMP

amp-auto-ads

描述

通过使用远程提供的配置文件,将广告动态注入 AMP 页面。

 

必需脚本

<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>

用法

通过使用远程提供的配置文件,将广告动态注入 AMP 页面。

在给定足够数量的有效位置(在配置中提供)的情况下,amp-auto-ads 会尝试插入其他广告,同时遵守广告网络指定的一组约束。这些约束将限制

  • 可以插入的广告总数
  • 任何相邻广告之间应有的最小距离

除此之外,只会将广告插入到页面上不会导致不可接受的重排(由 attemptChangeSize 确定)的位置。

<amp-auto-ads> 标记应放置为 <body> 的第一个子级。

广告网络类型和任何其他信息(广告网络要求)应在标记上指定。

<amp-auto-ads type="adsense" data-ad-client="ca-pub-5439573510495356">
</amp-auto-ads>

支持的广告网络

配置规范

该配置定义了 <amp-auto-ads> 可以在页面上的何处放置广告。该配置是从第三方广告网络在 ad-network-config.js 中定义的 URL 中获取的。该配置应该是一个与下面描述的 ConfigObj 定义匹配的序列化 JSON 对象。

配置示例

以下示例指定广告应立即放置在页面上第三个 <DIV id='domId'> 内的所有 <P class='paragraph'> 元素之后。放置在这些位置的任何广告应为 BANNER 类型,并具有 4px 的上边距和 10px 的下边距。

{
  "placements": [
    {
      "anchor": {
        "selector": "DIV#domId",
        "index": 2,
        "sub": {
          "selector": "P.paragraph",
          "all": true
        }
      },
      "pos": 4,
      "type": 1,
      "style": {
        "top_m": 5,
        "bot_m": 10
      }
    }
  ]
}

对象定义

ConfigObj

在配置对象中指定的字段

字段名 类型 描述
placements Array<!PlacementObj> 一个必填字段,指示可以在页面上插入广告的潜在位置。
attributes Object<string, string> 一个可选字段,指定从属性名称到属性值的映射,以应用于使用此配置注入的所有 <amp-ad> 元素。只允许以下属性名称
  • type
  • layout
  • data-* (即任何数据属性)
adConstraints AdConstraintsObj 一个可选字段,指定在页面上放置广告时应使用的约束。如果未指定,则 amp-auto-ads 将尝试使用 [ad-network-config.js](https://github.com/ampproject/amphtml/blob/main/extensions/amp-auto-ads/0.1/ad-network-config.js) 中指定的默认约束。
PlacementObj

placements 配置对象中指定的字段

字段名 类型 描述
anchor AnchorObj 一个必填字段,提供用于查找页面上放置位置所锚定的元素的信息。
pos RelativePositionEnum 一个必填字段,指示放置位置相对于其锚点元素的位置。
type PlacementTypeEnum 一个必填字段,指示放置类型。
style PlacementStyleObj 一个可选字段,指示应应用于此放置位置中插入的广告的任何样式。
attributes Object<string, string> 一个可选字段,用于从属性名称到值的映射,以应用于使用此放置注入的所有 <amp-ad> 元素的属性。此处指定的属性将覆盖父级 ConfigObj 上也指定的任何同名属性。只允许以下属性名称
  • type
  • layout
  • data-* (即任何数据属性)
stickyAdAttributes Object<string, string> 一个可选字段,用于从属性名称到值的映射,以应用于使用此放置注入的所有 <amp-sticky-ad> 元素的属性。只允许以下属性名称
  • data-* (即任何数据属性)
AnchorObj

anchor 配置对象中指定的字段

字段名 类型 描述
selector string 一个必填字段,定义 CSS 选择器以选择此级别锚点定义处的元素。
index number 一个可选字段,用于指定此级别锚点定义应限制为由选择器选择的元素的索引。默认情况下,该值设置为 0(如果 all 字段为 false)。
all boolean 如果指定了 index 字段,则忽略此字段。如果设置为 true,则表示应包括选择器选择的所有元素;否则设置为 false
min_c number 一个可选字段,指定元素的 textContent 属性的最小长度,以便将其包含在内。默认值为 0。
sub AnchorObj 一个可选字段,指定一个递归 AnchorObj,它将选择在此级别锚点定义选择的任何元素内的元素。
PlacementStyleObj

style 配置对象中指定的字段

字段名 类型 描述
top_m number 一个可选字段,指示在此位置插入的广告应具有的顶部边距(以像素为单位)。默认值:0。
bot_m number 一个可选字段,指示在此位置插入的广告应具有的底部边距(以像素为单位)。默认值:0。
RelativePositionEnum

placements 配置对象中 pos 字段的 ENUM 值

名称 描述
BEFORE 1 广告应作为兄弟元素插入,紧挨在锚点之前。
FIRST_CHILD 2 广告应作为锚点的第一个子元素插入。
LAST_CHILD 3 广告应作为锚点的最后一个子元素插入。
AFTER 4 广告应作为兄弟元素插入,紧挨在锚点之后。
AttributesEnum

ENUM 值指示不同广告格式的配置对象中的属性

名称 描述
BASE_ATTRIBUTES attributes 指示配置对象中的 `attributes` 字段。
STICKY_AD_ATTRIBUTES stickyAdAttributes 指示配置对象中的 `stickyAdAttributes` 字段。
PlacementTypeEnum

placements 配置对象中 type 字段的 ENUM 值

名称 描述
BANNER 1 放置位置描述横幅广告位置。
AdConstraintsObj

adConstraints 配置对象中指定的字段

字段名 类型 描述
initialMinSpacing string 一个必填字段,指示在插入时,广告与页面上已有的任何广告(无论是手动放置还是以前由 amp-auto-ads 放置的广告)之间的最小距离。值表示为带有单位前缀的数字。例如,“10px”表示 10 像素,或者“0.5vp”表示一半视口高度。负值无效。支持的单位是
  • px - 像素
  • vp - 视口高度的倍数
仅当页面上已有的广告数量少于 subsequentMinSpacing 字段中指定的任何 adCount 匹配器时,此值才适用。
subsequentMinSpacing Array<!SubsequentMinSpacingObj> 一个可选字段,指定应基于插入时页面上已有的广告数量应用的广告间距。
maxAdCount number 一个必填字段,指定 amp-auto-ads 可以导致页面上存在的最大广告数量。手动放置的广告以及 amp-auto-ads 放置的广告都计入此总数。例如,如果此字段设置为 5,并且页面上有 3 个手动放置的广告,则 amp-auto-ads 最多会放置 2 个额外的广告。
SubsequentMinSpacingObj

subsequentMinSpacing 配置对象中指定的字段。可以使用 subsequentMinSpacing 条目来根据页面上已有的广告数量更改任何其他广告之间所需的间距。例如,考虑以下场景

  • 页面上有 2 个现有广告
  • subsequentMinSpacing 字段为: [ {adCount: 3, spacing: "500px"}, {adCount: 5, spacing: "1000px"}, ]

最初页面上有 2 个现有广告,因此没有匹配的映射。因此,最小间距默认为 AdConstraints 对象中的 initialMinSpacing。amp-auto-ads 将递归尝试放置广告,直到它用完所有可以在不违反 adContraints 的情况下使用的位置。在 amp-auto-ads 放置第一个广告后,页面上现在有 3 个广告,因为 subsequentMinSpacing 中有 3 个(或更多)广告的映射,所以最小间距现在变为 500px。这适用于直到页面上有 5 个广告为止,因为有 5 个广告的规则。然后,插入第 6 个或更多广告将需要它与其他广告至少保持 1000px 的间距。

字段名 类型 描述
adCount number 一个必填字段。导致此规则应用(假设没有其他规则更匹配)的页面上已有的最小广告数量。有关更详细的说明,请参见上面的描述。
spacing string 一个必填字段,指定在基于 adCount 匹配此规则时应用的最小广告间距。值表示为带有单位前缀的数字。例如,“10px”表示 10 像素,或者“0.5vp”表示一半视口高度。负值无效。支持的单位是
  • px - 像素
  • vp - 视口高度的倍数

属性

type (必填)

广告网络的标识符。

data-foo-bar

大多数广告网络需要进一步配置,可以使用 HTML data- 属性将配置传递给网络。参数名称会按照标准的 data 属性短横线转驼峰命名法进行转换。例如,“data-foo-bar” 将作为 “fooBar” 发送给广告进行配置。请参阅广告网络的文档,了解可以使用哪些属性。

通用属性

此元素包含扩展到 AMP 组件的通用属性

验证

请参阅 AMP 验证器规范中的 amp-auto-ads 规则

需要更多帮助?

您已经阅读本文档十几次了,但它并没有真正涵盖您所有的问题?也许其他人也有同样的感受:请在 Stack Overflow 上联系他们。

前往 Stack Overflow
发现错误或缺少功能?

AMP 项目非常鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但也欢迎您为自己特别关注的问题做出一次性贡献。

前往 GitHub