Afficher une annonce

Lorsqu'une mise aux enchères Protected Audience renvoie une annonce candidate, elle peut être renvoyée sous la forme d'un URN opaque, utilisé pour afficher une annonce dans un iframe, ou un FencedFrameConfig, qui permet d'afficher l'annonce dans un cadre cloisonné.

Ce guide explique ce qu'est un cadre cloisonné et pourquoi il est nécessaire, ainsi que comment afficher une annonce à l'aide de l'une ou l'autre méthode. Pour en savoir plus sur l'utilisation cadres, vous trouverez plus d'informations dans ce guide ou dans la proposition.

Que sont les cadres cloisonnés ?

Un cadre cloisonné (<fencedframe>) est un élément HTML destiné à du contenu intégré. semblable à iframe. Contrairement aux iframe, une trame cloisonnée restreint la communication. avec son contexte d'intégration pour permettre à la trame d'accéder à des données intersites en le partageant dans le contexte de la représentation vectorielle continue. De même, toutes les données first party le contexte de représentation vectorielle continue ne peut pas être partagé avec le frame cloisonné.

Par exemple, supposons que news.example (le contexte d'intégration) intègre une annonce depuis shoes.example dans un cadre clôturé. news.example ne peut pas exfiltrer de données depuis l'annonce shoes.example, et shoes.example ne peut pas apprendre les données first party à partir des news.example

Comment fonctionnent les cadres cloisonnés ?

Les cadres cloisonnés utilisent l'objet FencedFrameConfig pour la navigation. Cet objet peut être renvoyées par une mise aux enchères Protected Audience. Ensuite, l'objet de configuration est défini L'attribut config sur l'élément de cadre cloisonné. Cela diffère d'un iframe où une URL ou un URN opaque est attribué à l'attribut src. La L'objet FencedFrameConfig possède une propriété url en lecture seule. Toutefois, étant donné que les cas d'utilisation actuels nécessitent que l'URL réelle de la ressource interne soit masquée, cette propriété renvoie la chaîne opaque lorsqu'elle est lue.

Une trame cloisonnée ne peut pas utiliser postMessage pour communiquer avec son intégrateur. Toutefois, un cadre cloisonné peut utiliser postMessage avec des iframe à l'intérieur de cadre cloisonné.

Les cadres cloisonnés seront isolés de l'éditeur d'autres manières. L'éditeur n'aura pas accès au DOM à l'intérieur d'un cadre cloisonné, et au cadre cloisonné ne peut pas accéder au DOM de l'éditeur. De plus, des attributs tels que name, qui peuvent définies sur n'importe quelle valeur et observée par l'éditeur, ne sont pas disponibles dans cadres.

Les cadres cloisonnés se comportent comme un contexte de navigation de premier niveau (comme un navigateur . Bien qu'un frame cloisonné dans certains cas d'utilisation (comme opaque-ads) peut contenir des données intersites (comme un groupe de centres d'intérêt de l'API Protected Audience), la trame ne peut pas accéder au stockage non partitionné ou aux cookies. Un opaque-ads clôturé peut accéder à une partition de stockage et de cookie unique basée sur des nonce.

Les caractéristiques des cadres cloisonnés sont détaillées dans l'explication.

Afficher une annonce dans un cadre cloisonné

Un FencedFrameConfig est renvoyé par une mise aux enchères Protected Audience, à condition que que le paramètre resolveToConfig de AuctionConfig a été défini sur "true" :

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

Une fois la configuration obtenue, vous pouvez l'attribuer au config d'un frame cloisonné. pour naviguer dans le frame jusqu'à la ressource représentée par la configuration. Les versions antérieures de Chrome ne sont pas compatibles avec la propriété resolveToConfig. Vous devez donc doit quand même confirmer que la promesse a été résolue en FencedFrameConfig avant navigation:

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

Afficher une annonce dans un iFrame

Si AuctionConfig ne définit pas explicitement resolveToConfig ou s'il est défini sur "false", runAdAuction() renvoie un URN opaque. Cette URN peut être définie en tant que src de iframe pour afficher l'annonce.