Rendering di un annuncio

Quando un'asta Protected Audience restituisce un candidato per l'annuncio, questo può essere restituito come un URN opaco, utilizzato per visualizzare un annuncio in un iframe, oppure un FencedFrameConfig, che viene utilizzato per eseguire il rendering dell'annuncio in un frame isolato.

Questa guida spiega che cos'è un frame recintato e perché è necessario, nonché come eseguire il rendering di un annuncio utilizzando entrambi i metodi. Per un'analisi più approfondita dei frame protetti, consulta ulteriori informazioni in questa guida o nella proposta.

Cosa sono i frame protetti?

Un frame recintato (<fencedframe>) è un elemento HTML per i contenuti incorporati, simile a un iframe. A differenza di iframe, un frame recintato limita la comunicazione con il contesto di incorporamento per consentire al frame di accedere ai dati tra siti senza condividerli con il contesto di incorporamento. Allo stesso modo, tutti i dati proprietari nel contesto di incorporamento non possono essere condivisi con il frame isolato.

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

Come funzionano i frame protetti?

I frame protetti utilizzano l'oggetto FencedFrameConfig per la navigazione. Questo oggetto può essere restituito da un'asta Protected Audience. L'oggetto di configurazione viene quindi impostato come attributo config nell'elemento frame isolato. È diverso da un iframe in cui un URL o un URN opaco è assegnato all'attributo src. L'oggetto FencedFrameConfig ha una proprietà url di sola lettura. Tuttavia, poiché i casi d'uso attuali richiedono che l'URL effettivo della risorsa interna sia nascosto, questa proprietà restituisce la stringa opaca alla lettura.

Un frame isolato non può utilizzare postMessage per comunicare con il relativo incorporamento. Tuttavia, un frame recintato può utilizzare postMessage con iframe all'interno del frame recintato.

I frame protetti verranno isolati dal publisher in altri modi. L'editore non avrà accesso al DOM all'interno di un frame isolato e il frame isolato non potrà accedere al DOM dell'editore. Inoltre, gli attributi come name, che possono essere impostati su qualsiasi valore e osservato dal publisher, non sono disponibili nei frame protetti.

I frame fecondati si comportano come un contesto di navigazione di primo livello (ad esempio una scheda del browser). Sebbene un frame isolato in determinati casi d'uso (ad esempio opaque-ads) possa contenere dati cross-site (ad esempio un gruppo di interesse dell'API Protected Audience), il frame non può accedere allo spazio di archiviazione o ai cookie non partizionati. Un frame recintato opaque-ads può accedere a una partizione di cookie e spazio di archiviazione univoca basata su nonce.

Le caratteristiche dei frame recintati sono dettagliate nell'spiegazione.

Rendering di un annuncio in un frame recintato

Da un'asta Protected Audience viene restituito un valore FencedFrameConfig, a condizione che il parametro resolveToConfig di AuctionConfig sia impostato su true:

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

Dopo aver ottenuto la configurazione, puoi assegnarla all'attributo config di un frame isolato per passare dal frame alla risorsa rappresentata dal file di configurazione. Le versioni precedenti di Chrome non supportano la proprietà resolveToConfig, quindi devi comunque confermare che la promessa si è risolta in FencedFrameConfig prima di proseguire:

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

Rendering di un annuncio in un iframe

Se AuctionConfig non imposta esplicitamente resolveToConfig o se è impostato su false, runAdAuction() restituisce un URN opaco. Questo URN può essere impostato come src di iframe per visualizzare l'annuncio.