AMP

重要提示:此文档不适用于您当前选择的格式ads

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-foo-bar”将作为“fooBar”发送到广告进行配置。请参阅广告网络的文档,了解可以使用哪些属性。

常用属性

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

验证

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

需要更多帮助?

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

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

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

前往 GitHub