Rendering di un annuncio

Quando un'asta Protected Audience restituisce un candidato di annuncio, può essere restituito come URN opaco, utilizzato per eseguire il rendering di un annuncio in un iframe, oppure FencedFrameConfig utilizzato per eseguire il rendering dell'annuncio in un frame recintato.

Questa guida spiega che cos'è un frame recintato e perché è necessario. come eseguire il rendering di un annuncio con uno dei due metodi. Per un'analisi più approfondita della recinzione, puoi trovare ulteriori informazioni in questa guida o nella proposta.

Cosa sono i frame recintati?

Un frame recintato (<fencedframe>) è un elemento HTML per contenuti incorporati, simile a iframe. A differenza degli elementi iframe, un frame recintato limita la comunicazione con il suo contesto di incorporamento per consentire al frame di accedere ai dati cross-site senza condividendolo con il contesto di incorporamento. Allo stesso modo, tutti i dati proprietari presenti il contesto di incorporamento non può essere condiviso con il frame recintato.

Ad esempio, supponiamo che news.example (il contesto di incorporamento) incorpora un annuncio da shoes.example in un frame recintato. news.example non può esfiltrare i dati da l'annuncio shoes.example e shoes.example non può apprendere i dati proprietari news.example.

Come funzionano i frame recintati?

I frame bloccati utilizzano l'oggetto FencedFrameConfig per la navigazione. Questo oggetto può da un'asta Protected Audience. Quindi, l'oggetto config viene impostato Attributo config sull'elemento frame recintato. È diverso da un iframe dove un URL o un URN opaco è assegnato all'attributo src. La L'oggetto FencedFrameConfig ha una proprietà url di sola lettura; tuttavia, poiché casi d'uso attuali richiedono che l'URL effettivo della risorsa interna sia nascosto, questa proprietà restituisce la stringa opaca quando viene letta.

Un frame recintato non può utilizzare postMessage per comunicare con l'incorporatore. Tuttavia, un frame recintato può usare postMessage con iframe all'interno dell'elemento un frame recintato.

I frame protetti verranno isolati dal publisher in altri modi. Il publisher non avranno accesso al DOM all'interno di un frame recintato, non possono accedere al DOM del publisher. Inoltre, attributi come name, che possono essere impostati su qualsiasi valore e osservato dal publisher, non sono disponibili in recinzioni i frame.

I frame recintati si comportano come un contesto di navigazione di primo livello (come un browser ). Sebbene sia un frame recintato in alcuni casi d'uso (ad esempio opaque-ads) possono contenere dati cross-site (ad esempio un gruppo basato sugli interessi dell'API Protected Audience), il frame non può accedere allo spazio di archiviazione non partizionato o ai cookie. opaque-ads recintato un frame può accedere a una partizione di archiviazione e cookie univoci nonce.

Le caratteristiche dei frame recintati sono descritte in dettaglio nella spiegazione.

Visualizzare un annuncio in un frame protetto

Viene restituito un FencedFrameConfig da un'asta Protected Audience, a condizione che il parametro resolveToConfig di AuctionConfig sia stato impostato su true:

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

Una volta ottenuta la configurazione, puoi assegnarla all'elemento config di un frame recintato per indirizzare il frame alla risorsa rappresentata dalla configurazione. Le versioni precedenti di Chrome non supportano la proprietà resolveToConfig, quindi puoi deve comunque confermare che la promessa è stata risolta a FencedFrameConfig prima navigazione:

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

Visualizzare un annuncio in un iframe

Se AuctionConfig non imposta esplicitamente resolveToConfig o se è impostato a false, runAdAuction() restituisce un URN opaco. Questo URN può essere impostato come src di iframe per eseguire il rendering dell'annuncio.