Когда аукцион защищенной аудитории возвращает кандидата на показ рекламы, он может быть возвращен либо в виде непрозрачного 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 .