Renderiza un anuncio

Cuando una subasta de Protected Audience muestra un candidato de anuncio, puede Se muestra como un URN opaco, que se usa para renderizar un anuncio en un iframe. FencedFrameConfig, que se usa para renderizar el anuncio en un marco vallado.

En esta guía, se explicará qué es un marco vallado y por qué es necesario, además de cómo renderizar un anuncio con cualquiera de los dos métodos. Para profundizar en el análisis de datos marcos, encontrará más información en esta guía o en la propuesta.

¿Qué son los marcos vallados?

Un marco vallado (<fencedframe>) es un elemento HTML para contenido incorporado. similar a un iframe. A diferencia de los iframe, un marco vallado restringe la comunicación. con su contexto de incorporación para permitir que la trama acceda a datos entre sitios sin compartirlo con el contexto de incorporación. Del mismo modo, todos los datos de origen de la no se puede compartir con el marco vallado.

Por ejemplo, supongamos que news.example (el contexto de incorporación) incorpora un anuncio de shoes.example en un marco cercado. news.example no puede robar datos de el anuncio shoes.example, y shoes.example no pueden obtener datos de origen de news.example

¿Cómo funcionan los marcos vallados?

Los marcos vallados usan el objeto FencedFrameConfig para la navegación. Este objeto puede de una subasta de Protected Audience. Luego, el objeto config se establece El atributo config en el elemento del marco cercado. Esto es diferente de un iframe en el que se asigna una URL o un URN opaco al atributo src. El El objeto FencedFrameConfig tiene una propiedad url de solo lectura. sin embargo, ya que los casos de uso actuales requieren que se oculte la URL real del recurso interno esta propiedad muestra la cadena opaque cuando se lee.

Un marco vallado no puede usar postMessage para comunicarse con su incorporación. Sin embargo, un marco vallado puede usar postMessage con iframe dentro del marco vallado.

Los marcos vallados se aislarán del editor de otras formas. El publicador no tendrá acceso al DOM dentro de un marco vallado, y el marco vallado no puede acceder al DOM del publicador. Además, atributos como name, que pueden que se pueden establecer en cualquier valor y observado por el publicador, no están disponibles en o los fotogramas.

Los marcos vallados se comportan como un contexto de navegación de nivel superior (por ejemplo, un navegador ). Aunque un marco vallado en ciertos casos de uso (como opaque-ads) Puede contener datos de varios sitios (como un grupo de interés de la API de Protected Audience), el marco no puede acceder al almacenamiento no particionado ni a cookies. Un opaque-ads cercado puede acceder a una cookie única basada en el nonce y a una partición de almacenamiento.

Las características de los marcos vallados se detallan con más detalle en la explicación.

Renderiza un anuncio en un marco vallado

Se muestra un FencedFrameConfig de una subasta de Protected Audience, siempre que que el parámetro resolveToConfig de AuctionConfig se estableció en verdadero:

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

Una vez que obtienes la configuración, puedes asignarla a la config de un marco cercado. para navegar por el marco al recurso representado por la configuración. Las versiones anteriores de Chrome no admiten la propiedad resolveToConfig, por lo que debe confirmar que la promesa se resolvió a un FencedFrameConfig antes navegar:

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

Cómo renderizar un anuncio en un iframe

Si AuctionConfig no establece resolveToConfig de forma explícita o si está configurado como falso, runAdAuction() muestra un URN opaco. Este URN puede configurarse como src de iframe para renderizar el anuncio.