amp-auto-ads
Description
Динамически размещает объявления на AMP-странице с помощью файла конфигурации с удаленного сервера.
Required Scripts
<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
Динамически размещает объявления на AMP-странице с помощью файла конфигурации со стороннего сервера.
Где можно пользоваться функцией | Экспериментальная функция |
Скрипт | <script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script> |
Поддерживаемые макеты | – |
Принципы работы
При достаточном количестве действительных мест размещения, заданных в конфигурации, компонент amp-auto-ads
стремится добавить дополнительные объявления, соблюдая ограничения в рекламной сети. Ограничения касаются:
- общего числа объявления, которые можно разместить;
- минимально допустимое расстояние между находящимися рядом объявлениями.
Кроме того, объявления добавляются только в области на странице, которые не приводят с недопустимым исправлениям, определенным в attemptChangeSize.
Тег <amp-auto-ads>
необходимо разместить в качестве первого дочернего элемента тега <body>
.
Тип рекламной сети и дополнительные сведения, необходимые для этой сети, указываются в теге.
<amp-auto-ads type="adsense" data-ad-client="ca-pub-5439573510495356"> </amp-auto-ads>
Поддерживаемые рекламные сети
Атрибуты
type (обязательно) | Идентификатор рекламной сети. |
data-foo-bar | Для большинства рекламных сетей требуются дополнительные параметры конфигурации, которые можно передать в сеть с помощью HTML-атрибутов data- . При этом дефисы из имен параметров удаляются и используется "верблюжья" нотация. Например, параметр data-foo-bar передается как fooBar. Подробнее… |
common attributes | Этот элемент содержит распространенные атрибуты, которые поддерживаются компонентами AMP. |
Сведения о конфигурации
В конфигурации определено, в каких областях страницы при помощи компонента <amp-auto-ads>
можно размещать рекламу. Конфигурация извлекается из сторонней рекламной сети по адресу, заданному в элементе ad-network-config.js
, и представляет собой сериализованный объект JSON, который соответствует описанному ниже определению ConfigObj
.
Пример конфигурации
В приведенном ниже примере объявление должно быть размещено сразу после всех элементов <P class='paragraph'>
, находящихся в третьем элементе <DIV id='domId'>
на странице. В этих областях можно размещать только объявления типа "баннер" верхнее и нижнее поля которого составляют 4 и 10 пикселей соответственно.
{ "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 | Массив <!PlacementObj> | Обязательное поле, показывающее, в каких местах на странице можно размещать рекламу. |
attributes | Объект <string, string> | Необязательное поле для сопоставления названия и значений атрибута, которые будут применяться ко всем элементам <amp-ad> , добавленным с помощью этой конфигурации. Допускаются только следующие названия атрибутов:
|
adConstraints | AdConstraintsObj | Необязательное поле, в котором приведены ограничения, действующие при размещении рекламы на странице. Если поле не заполнено, компонент amp-auto-ads попробует использовать ограничения по умолчанию, заданные в элементе ad-network-config.js. |
PlacementObj
Ниже перечислены поля, которые следует заполнить в объекте конфигурации placements
.
Название поля | Тип | Описание |
---|---|---|
anchor | AnchorObj | Обязательное поле that provides information used to look up the element(s) on the page that the placement position is anchored to. |
pos | RelativePositionEnum | Обязательное поле, в котором указана позиция места размещения по отношению к его элементу привязки. |
type | PlacementTypeEnum | Обязательное поле, в котором указан тип места размещения. |
style | PlacementStyleObj | Необязательное поле со стилями, которые следует применить к объявлению, размещенному в этой области места размещения. |
attributes | Объект <string, string> | Необязательное поле для сопоставления названия и значения атрибутов, которые будут применяться ко всем элементам <amp-ad> , добавленным с помощью этого места размещения. Указанный здесь атрибут переопределяет любые другие варианты, которые имеют такое же название и также указаны в родительском элементе ConfigObj . Допускаются только следующие названия атрибутов:
|
AnchorObj
Ниже перечислены поля, которые следует заполнить в объекте конфигурации anchor
.
Название поля | Тип | Описание |
---|---|---|
selector | строка | Обязательное поле, в котором определен селектор CSS для выбора элементов на этом уровне определения привязки. |
index | число | Необязательное поле для указания индекса элементов, выбранных в селекторе, которым должен быть ограничен этот уровень определения привязки. По умолчанию здесь задается значение 0 (если в поле all установлено значение false). |
all | логическое значение | Игнорируется, если заполнено поле index . Если включить нужно все элементы, выбранные в селекторе, здесь задается значение true , в противном случае указывается значение false . |
min_c | число | Необязательное поле, где указывается минимальная длина ресурса элемента textContent, при котором этот ресурс будет включен. Значение по умолчанию – 0. |
sub | AnchorObj | Необязательное поле, где указывается повторяющийся объект AnchorObj , которые выбирает элементы в рамках любых элементов, заданных на этом уровне определения привязки. |
PlacementStyleObj
Ниже перечислены поля, которые следует заполнить в объекте конфигурации style
.
Название поля | Тип | Описание |
---|---|---|
top_m | число | Необязательное поле, где указывается верхнее поле (в пикселях), которое необходимо для объявления, размещенного в этой позиции. Значение по умолчанию – 0. |
bot_m | число | Необязательное поле, где указывается нижнее поле (в пикселях), которое необходимо для объявления, размещенного в этой позиции. Значение по умолчанию – 0. |
RelativePositionEnum
Значения ENUM для поля pos
в объекте конфигурации placements
:
Название | Значение | Описание |
---|---|---|
BEFORE | 1 | Объявление должно быть размещено как элемент того же уровня непосредственно перед привязкой. |
FIRST_CHILD | 2 | Объявление должно быть размещено как первый дочерний элемент привязки. |
LAST_CHILD | 3 | Объявление должно быть размещено как последний дочерний элемент привязки. |
AFTER | 4 | Объявление должно быть размещено как элемент того же уровня сразу после привязки. |
PlacementTypeEnum
Значения ENUM для поля type
в объекте конфигурации placements
:
Название | Значение | Описание |
---|---|---|
BANNER | 1 | Место размещения, характеризующее позицию баннера. |
AdConstraintsObj
Ниже перечислены поля, которые следует заполнить в объекте конфигурации adConstraints
.
Название поля | Тип | Описание |
---|---|---|
initialMinSpacing | строка | Обязательное поле, где указано минимальное расстояние между объявлением, добавленным вручную или с помощью компонента, и другими рекламными материалами на странице на момент размещения. Значения представляют собой число и префикс, обозначающий единицы измерения, например вариант 10px означает 10 пикселей, а 0.5vp – половину высоты области просмотра. Отрицательные значения не допускаются. Поддерживаются следующие единицы:
adCount , заданном в поле subsequentMinSpacing. |
subsequentMinSpacing | Массив <!SubsequentMinSpacingObj> | Необязательное поле, где указаны сведения по интервалам между объявлениями, которые могут применяться в зависимости от количества объявлений на странице не момент размещения новых. |
maxAdCount | число | Обязательное поле, где указано максимальное количество объявлений, которое может быть размещено на странице с помощью компонента 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 объявления, поэтому сопоставление не выполняется.
Значение интервала по умолчанию соответствует варианту initialMinSpacing из объекта AdConstraints
.
Компонент amp-auto-ads
будет пробовать размещать объявления, пока не будут израсходованы все места размещения, которые можно использовать, не нарушая условия adContraints
.
После того как с помощью компонента amp-auto-ads
размещено первое объявление, количество объявлений на странице достигает трех. Поскольку
в поле subsequentMinSpacing
задано сопоставление по меньшей мере трех объявлений, в качестве минимального интервала устанавливается значение 500px.
Оно применяется, пока на странице не будут размещены 5 объявлений, так как имеется правило для такого числа объявлений. При добавлении дополнительных объявлений для них будет необходимо соблюдать интервал, составляющий по меньшей мере 1000px.
Название поля | Тип | Описание |
---|---|---|
adCount | число | Обязательное поле. Минимальное количество объявления, уже размещенных на странице, при котором может применяться определенное правило (при условии отсутствия более подходящего правила). Дополнительные сведения доступны в описании выше. |
spacing | строка | Обязательное поле, где указывается минимальный интервал между объявлениями, который действует, когда выполняется сопоставление с правилом в инструменте adCount . Значения представляют собой число и префикс, обозначающий единицы измерения, например вариант 10px означает 10 пикселей, а 0.5vp – половину высоты области просмотра. Отрицательные значения не допускаются. Поддерживаются следующие единицы:
|
Валидация
С правилами для компонента amp-auto-ads можно ознакомиться в спецификации валидатора AMP.
Вы читали этот документ десятки раз, но так и не нашли ответов на все свои вопросы? Возможно, другие люди столкнулись с такой же проблемой — обратитесь к ним на Stack Overflow.
Перейти на Stack Overflow Нашли ошибку или недостающую функцию?Проект AMP активно поощряет ваше участие и сотрудничество! Мы надеемся, что вы станете постоянным участником нашего открытого сообщества, но разовые вклады в работу над задачами, которые вам особенно интересны, также приветствуются.
Перейти на GitHub