Gdy aukcja Protected Audience zwróci kandydata na reklamę, może to zrobić w postaci nieprzejrzystego URN, który służy do renderowania reklamy w iframe, lub FencedFrameConfig, który służy do renderowania reklamy w ramce ograniczonej.
Z tego przewodnika dowiesz się, czym jest ramka z ograniczeniami i dlaczego jest potrzebna, a także jak renderować reklamę za pomocą każdej z tych metod. Więcej informacji o ramkach z ograniczeniami znajdziesz w tym przewodniku lub w propozycji.
Czym są ramki chronione?
Ogrodzona ramka (<fencedframe>) to element HTML do umieszczania treści, podobny do elementu iframe. W przeciwieństwie do iframe ograniczona ramka ogranicza komunikację z kontekstem umieszczania, aby umożliwić ramce dostęp do danych z różnych witryn bez udostępniania ich kontekstowi umieszczania. Podobnie żadne dane własne w kontekście osadzania nie mogą być udostępniane ramce ograniczonej.
Załóżmy na przykład, że strona news.example (kontekst umieszczania) umieszcza w ramce ograniczonej reklamę z domeny shoes.example. news.example nie może wykradać danych z shoes.example reklamy ani shoes.example pozyskiwać danych własnych z news.example.
Jak działają ramki z ograniczonym dostępem?
Ogrodzone ramki używają do nawigacji obiektu FencedFrameConfig. Ten obiekt może być zwracany z aukcji Protected Audience API. Następnie obiekt konfiguracji jest ustawiany jako atrybut config elementu ramki ograniczonej. Różni się to od iframe, gdzie do atrybutu src przypisany jest adres URL lub nieprzezroczysty URN. Obiekt FencedFrameConfig ma właściwość url tylko do odczytu. Jednak w obecnych przypadkach użycia wymagane jest ukrycie rzeczywistego adresu URL zasobu wewnętrznego, więc ta właściwość zwraca ciąg „opaque” podczas odczytu.
Ogrodzona ramka nie może używać postMessage do komunikacji z osadzającym ją elementem.
Ogrodzona ramka może jednak używać postMessage z iframe wewnątrz ogrodzonej ramki.
Ogrodzone ramki będą odizolowane od wydawcy w inny sposób. Wydawca nie będzie mieć dostępu do DOM w ramce ograniczonej, a ramka ograniczona nie będzie mieć dostępu do DOM wydawcy. Ponadto atrybuty takie jak name, które wydawca może ustawić na dowolną wartość i obserwować, nie są dostępne w ramkach ograniczonych.
Ogrodzone ramki działają jak kontekst przeglądania najwyższego poziomu (np. karta przeglądarki). Chociaż w określonych przypadkach (np. opaque-ads) ogrodzona ramka może zawierać dane z wielu witryn (np. grupę zainteresowań Protected Audience API), nie ma dostępu do niepodzielonej pamięci ani plików cookie. opaque-adsOgrodzona ramka może uzyskać dostęp do unikalnego pliku cookie opartego na wartości nonce i do partycji pamięci.
Więcej informacji o ogrodzonych ramkach znajdziesz w wyjaśnieniu.
Wyświetlanie reklamy w ramce z ograniczeniami
Z aukcji z użyciem Protected Audience API zwracana jest wartość FencedFrameConfig, pod warunkiem że parametr resolveToConfig funkcji AuctionConfig został ustawiony na wartość true:
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true
});
Po uzyskaniu konfiguracji możesz przypisać ją do atrybutu config
elementu fenced frame, aby przejść do zasobu reprezentowanego przez tę konfigurację.
Starsze wersje Chrome nie obsługują właściwości resolveToConfig, więc przed przejściem do innej strony musisz potwierdzić, że obietnica została spełniona:FencedFrameConfig
if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
const frame = document.createElement('fencedframe');
frame.config = frameConfig;
}
Renderowanie reklamy w elemencie iframe
Jeśli AuctionConfig nie ustawia wyraźnie resolveToConfig lub jeśli ma wartość false, runAdAuction() zwraca nieprzezroczysty URN. Ten URN można ustawić jako iframesrc, aby wyświetlać reklamę.