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