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

通用属性

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

验证

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

需要更多帮助?

您已经阅读这份文档很多遍了,但它仍然没有涵盖您所有的问题?也许其他人也有同样的感觉:请在 Stack Overflow 上联系他们。

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

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

前往 GitHub