Renderowanie reklamy

Gdy aukcja w ramach Protected Audience API zwraca propozycję reklamy, może ona zostać zwrócona jako nieprzezroczysty identyfikator URN, który służy do renderowania reklamy w elemencie iframe, lub FencedFrameConfig, który służy do renderowania reklamy w ramce otoczonej ramką.

Dowiesz się z niego, czym jest chroniona ramka i do czego jest potrzebna. Dowiesz się też, jak renderować reklamę, korzystając z dowolnej z tych metod. Bardziej szczegółowe informacje o chronionych ramkach znajdziesz w tym przewodniku lub w ofercie pakietowej.

Czym są ramki ogrodzone?

Ogrodzona ramka (<fencedframe>) to element HTML dla umieszczonej treści, podobny do elementu iframe. W przeciwieństwie do elementów iframe ramka chroniona ogranicza komunikację z kontekstem umieszczania, aby umożliwić jej dostęp do danych z innych witryn bez ich udostępniania w kontekście umieszczania. Analogicznie żadne dane własne pochodzące z umieszczania nie mogą być udostępniane ramce chronionej.

Załóżmy na przykład, że atrybut news.example (kontekst umieszczania) pozwala umieścić reklamę z witryny shoes.example w ogrodzonej ramce. news.example nie może wydobywać danych z reklamy shoes.example, a shoes.example nie może uczyć się z news.example danych własnych.

Jak działają ramki ogrodzone?

Chronione ramki używają obiektu FencedFrameConfig do nawigacji. Ten obiekt można zwrócić z aukcji Protected Audience. Następnie obiekt konfiguracji jest ustawiany jako atrybut config w ogrodzonym elemencie ramki. Różni się to od identyfikatora iframe, w którym adres URL lub nieprzezroczysty identyfikator URN jest przypisany do atrybutu src. Obiekt FencedFrameConfig ma właściwość url tylko do odczytu. Jednak obecne przypadki użycia wymagają ukrytego rzeczywistego adresu URL zasobu wewnętrznego, dlatego podczas odczytu ten ciąg zwraca ciąg znaków nieprzezroczysty.

Chroniona ramka nie może używać elementu postMessage do komunikowania się z umieszczonym elementem. Jednak ramka chroniona może używać elementów postMessage z elementami iframe wewnątrz ramki.

Chronione klatki są odizolowane od wydawcy w inny sposób. Wydawca nie będzie miał dostępu do DOM wewnątrz chronionej ramki, a ramka chroniona nie będzie miała dostępu do DOM wydawcy. Poza tym atrybuty takie jak name, które wydawca może ustawić na dowolną wartość i zaobserwowane przez wydawcę, nie są dostępne w ramkach chronionych.

Chronione ramki działają jak kontekst przeglądania najwyższego poziomu (np. karta przeglądarki). Chociaż w niektórych przypadkach użycia (np. opaque-ads) ramka chroniona może zawierać dane z różnych witryn (np. grupę zainteresowań interfejsu Protected Audience API), nie ma ona dostępu do niepartycjonowanych pamięci ani plików cookie. Ramka chroniona przez opaque-ads może uzyskać dostęp do unikalnego pliku cookie i partycji pamięci opartej na liczbie jednorazowej.

Bardziej szczegółowe informacje o charakterze ramek ogrodzonych znajdują się w objaśnieniu.

Renderowanie reklamy w otoczonej ramce

Z aukcji Protected Audience zwracany jest parametr FencedFrameConfig, o ile parametr resolveToConfig AuctionConfig ma wartość „true” (prawda):

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

Po uzyskaniu konfiguracji możesz ją przypisać do atrybutu config ramki ogrodzonej, aby poruszać się po ramce do zasobu reprezentowanego przez konfigurację. Wcześniejsze wersje Chrome nie obsługują właściwości resolveToConfig, więc przed przejściem nadal musisz potwierdzić, że obietnica sprowadza się do elementu FencedFrameConfig:

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

Renderowanie reklamy w elemencie iframe

Jeśli AuctionConfig nie ma ustawionej wartości resolveToConfig lub ma wartość fałsz, runAdAuction() zwraca nieprzejrzysty identyfikator URN. Ten identyfikator URN można ustawić jako src obiektu iframe na potrzeby renderowania reklamy.