">文档:<amp-auto-ads> - amp.dev - AMP 框架
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

在配置对象中指定的字段

字段名称 类型 说明
展示位 Array<!PlacementObj> 必需字段,表示可以在页面上插入广告的潜在位置。
属性 Object<string, string> 可选字段,指定从属性名称到属性值的映射,以应用于使用此配置注入的所有 <amp-ad> 元素。仅允许以下属性名称
  • 类型
  • 布局
  • data-*(即任何数据属性)
广告约束 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

展示位 配置对象中指定的字段

字段名称 类型 说明
锚点 AnchorObj 必需字段,提供用于查找展示位位置锚定的页面上元素的信息。
位置 RelativePositionEnum 表明相对于其锚元素的放置位置的必需字段。
类型 PlacementTypeEnum 表明放置类型的必需字段。
style PlacementStyleObj 一个可选字段,表明应应用于插入到此放置位置的广告的任何样式。
属性 Object<string, string> 一个可选字段,用于将属性名称映射到值,以应用于使用此放置注入的所有 <amp-ad> 元素。此处指定的属性将覆盖在父 ConfigObj 中也指定的具有相同名称的任何属性。仅允许以下属性名称
  • 类型
  • 布局
  • 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,该 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` 字段。
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-foo-bar”作为“fooBar”发送到广告进行配置。请参阅广告网络的文档,了解可以使用哪些属性。

通用属性

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

验证

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

需要更多帮助?

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

转到 Stack Overflow
发现了一个错误或缺少一个功能?

AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的持续参与者,但我们也欢迎针对您特别热衷的问题进行一次性贡献。

转到 GitHub