Renderizar um anúncio

Quando um leilão da API Protected Audience retorna um candidato a anúncio, ele pode ser retornado como um URN opaco, que é usado para renderizar um anúncio em uma iframe, ou uma FencedFrameConfig, que é usado para renderizar o anúncio em um frame isolado.

Este guia explica o que é um frame isolado e por que ele é necessário. como renderizar um anúncio usando qualquer um dos métodos. Para conferir mais detalhes sobre modelos de veja mais informações neste guia ou na proposta.

O que são frames isolados?

Um frame isolado (<fencedframe>) é um elemento HTML para conteúdo incorporado. semelhante a um iframe. Ao contrário das iframes, um frame isolado restringe a comunicação. com o contexto de embedding para permitir que o frame acesse dados entre sites sem compartilhando com o contexto de embedding. Da mesma forma, todos os dados próprios o contexto de embedding não pode ser compartilhado com o frame isolado.

Por exemplo, digamos que news.example (o contexto de embedding) incorpore um anúncio da shoes.example em um frame isolado. news.example não pode exfiltrar dados de o anúncio shoes.example, e o shoes.example não pode aprender dados próprios news.example:

Como funcionam os frames isolados?

Os frames delimitados usam o objeto FencedFrameConfig para navegação. Este objeto pode retornados de um leilão da API Protected Audience. Em seguida, o objeto de configuração é definido o atributo config no elemento de frame isolado. Ele é diferente de iframe. em que um URL ou URN opaco é atribuído ao atributo src. A O objeto FencedFrameConfig tem uma propriedade url somente leitura. No entanto, uma vez que casos de uso atuais exigem que o URL real do recurso interno seja ocultado, Essa propriedade retorna a string opaca quando lida.

Um frame isolado não pode usar postMessage para se comunicar com o embedder. No entanto, um frame isolado pode usar postMessage com iframes dentro da um quadro isolado.

Os frames delimitados são isolados do editor de outras maneiras. O editor não terá acesso ao DOM dentro de um frame isolado não pode acessar o DOM do editor. Além disso, atributos como name, que podem ser definido com qualquer valor e observados pelo editor, não estarão disponíveis em frames.

Os frames delimitados se comportam como um contexto de navegação de nível superior (como um navegador ). Um frame isolado em determinados casos de uso (como opaque-ads) podem conter dados entre sites (como um grupo de interesse da API Protected Audience); o frame não consegue acessar cookies ou armazenamento não particionado. Uma cerca de opaque-ads podem acessar um cookie e uma partição de armazenamento exclusivos com base no valor de uso único.

As características dos frames delimitados são detalhadas na explicação.

Renderizar um anúncio em um frame isolado

Um FencedFrameConfig é retornado de um leilão da API Protected Audience, fornecido que o parâmetro resolveToConfig de AuctionConfigs foi definido como verdadeiro:

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

Depois de receber a configuração, ela pode ser atribuída à classe config de um frame isolado. para navegar o frame até o recurso representado pela configuração. As versões anteriores do Chrome não são compatíveis com a propriedade resolveToConfig. Portanto, ainda precisa confirmar que a promessa foi resolvida como FencedFrameConfig antes de navegação:

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

Renderizar um anúncio em um iframe

Se o AuctionConfig não definir resolveToConfig explicitamente ou se estiver definido como falso, runAdAuction() retorna um URN opaco. Esse URN pode ser definido como um O src de iframe para renderizar o anúncio.