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.