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

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

Изолированный фрейм не может использовать 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;
}

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

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