重要提示:此文档不适用于您当前选择的格式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> 元素。仅允许使用以下属性名称
|
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 上也指定的任何同名属性。仅允许使用以下属性名称
|
stickyAdAttributes | Object<string, string> | 一个可选字段,用于从属性名称到值的映射,以应用于使用此展示位置注入的所有 <amp-sticky-ad> 元素的属性。仅允许使用以下属性名称
|
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”表示一半视口高度。负值无效。支持的单位是
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”表示一半的视口高度。负值无效。支持的单位是
|
属性
type
(必需)
广告网络的标识符。
data-foo-bar
大多数广告网络需要进一步配置,可以使用 HTML data-
属性将配置传递给网络。参数名称遵循标准的数据属性短划线转驼峰命名转换。例如,“data-foo-bar”将作为“fooBar”发送到广告进行配置。请参阅广告网络的文档,了解可以使用哪些属性。
常用属性
此元素包含扩展到 AMP 组件的通用属性。
验证
请参阅 AMP 验证器规范中的 amp-auto-ads 规则。
您已经阅读过本文档十几次,但它并没有真正涵盖您的所有问题?也许其他人也有同感:在 Stack Overflow 上联系他们。
前往 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的长期参与者,但也欢迎您针对您特别热衷的问题做出一次性贡献。
前往 GitHub