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 iframe
s, 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 iframe
s 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 AuctionConfig
s 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.