Сделать объявление

Когда аукцион защищенной аудитории возвращает кандидата на показ рекламы, он может быть возвращен либо в виде непрозрачного URN, используемого для отображения рекламы в iframe , либо в виде FencedFrameConfig , используемого для отображения рекламы в огороженном фрейме.

В этом руководстве объясняется, что такое рамочное окно и зачем оно нужно, а также как отобразить рекламу, используя любой из этих методов. Более подробную информацию о рамочных окнах вы найдете в этом руководстве или в предложении .

Что такое огражденные каркасы?

Защищенный фрейм ( <fencedframe> ) — это HTML-элемент для встраивания контента, похожий на iframe . В отличие от iframe , защищенный фрейм ограничивает взаимодействие со своим контекстом встраивания, позволяя фрейму получать доступ к данным, хранящимся на разных сайтах, без обмена ими с контекстом встраивания. Аналогично, любые собственные данные в контексте встраивания не могут быть переданы защищенному фрейму.

Например, предположим, что news.example (контекст встраивания) встраивает рекламу от shoes.example в защищенный фрейм. news.example не может извлекать данные из рекламы shoes.example , и shoes.example не может получать собственные данные от news.example .

Как работают ограждения-рамы?

Для навигации в фреймах с ограниченным доступом используется объект FencedFrameConfig . Этот объект может быть возвращен аукционом защищенной аудитории. Затем объект конфигурации устанавливается в качестве атрибута config для элемента фрейма с ограниченным доступом. Это отличается от iframe , где URL-адрес или непрозрачный URN присваивается атрибуту src . Объект FencedFrameConfig имеет свойство url , доступное только для чтения; однако, поскольку в текущих сценариях использования требуется скрыть фактический URL-адрес внутреннего ресурса, это свойство возвращает строку opaque при чтении.

Ограниченный фрейм не может использовать postMessage для связи со своим встраиваемым элементом. Однако ограниченный фрейм может использовать postMessage с iframe элементами внутри ограниченного фрейма.

Защищенные фреймы будут изолированы от издателя другими способами. Издатель не будет иметь доступа к DOM внутри защищенного фрейма, а защищенный фрейм не сможет получить доступ к DOM издателя. Кроме того, такие атрибуты, как name , которому можно присвоить любое значение и который будет отслеживаться издателем, недоступны во защищенных фреймах.

Ограниченные фреймы ведут себя как контекст просмотра верхнего уровня (например, вкладка браузера). Хотя в некоторых случаях использования (например, в opaque-ads ) ограниченный фрейм может содержать данные, относящиеся к нескольким сайтам (например, группу интересов из API защищенной аудитории), он не может получить доступ к неразделенному хранилищу или cookie-файлам. Ограниченный фрейм opaque-ads может получить доступ к уникальному cookie-файлу на основе nonce и разделу хранилища.

Характеристики огражденных каркасов более подробно описаны в пояснительной статье .

Разместить рекламное объявление в рамке, ограниченной рамками.

Объект FencedFrameConfig возвращается из аукциона с защищенной аудиторией при условии, что параметр resolveToConfig в AuctionConfig был установлен в значение true:

const frameConfig = await navigator.runAdAuction({
  // ...auction configuration
  resolveToConfig: true
});

Получив конфигурацию, вы можете присвоить её атрибуту config фрейма, чтобы перенаправить фрейм к ресурсу, представленному конфигурацией. Более ранние версии Chrome не поддерживают свойство resolveToConfig , поэтому перед переходом по ссылке необходимо убедиться, что промис разрешился в FencedFrameConfig .

if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
  const frame = document.createElement('fencedframe');
  frame.config = frameConfig;
}

Отобразить рекламу во фрейме

Если в AuctionConfig явно не указан параметр resolveToConfig или если он установлен в значение false, runAdAuction() возвращает непрозрачный URN. Этот URN можно установить в качестве атрибута src для отображения рекламы iframe .