Funkcja Wybierz adres URL umożliwia wybór treści, które mają być wyświetlane użytkownikowi na podstawie danych z pamięci współdzielonej, bez ujawniania przechowywanych danych bazowych.
Jeśli chcesz wyświetlać treści na podstawie danych z wielu witryn w sposób zapewniający ochronę prywatności, możesz użyć interfejsu Select URL API. Interfejs Select URL API sprawdza się w przypadku takich zastosowań jak:
- testowanie A/B treści w celu zapewnienia spójności wrażeń użytkowników w wielu witrynach;
- Wyświetlanie innego przycisku logowania dla użytkowników, którzy mają konto, i dla tych, którzy go nie mają.
- rotowanie kreacji reklamowych, aby ograniczyć liczbę wyświetleń tej samej reklamy użytkownikowi w wielu witrynach;
Czym jest interfejs Select URL API?
Interfejs Select URL API umożliwia wybór spośród zestawu adresów URL na podstawie danych z różnych witryn. Interfejs API jest oparty na pamięci współdzielonej i używa SharedStorageWorklet do odczytywania dostępnych danych z różnych witryn i wybierania jednego z podanych adresów URL. Wybrany adres URL jest zwracany do wywołującego w sposób, który uniemożliwia jego odczytanie poza ramką ograniczoną. Adres URL może być też renderowany w elemencie iframe co najmniej do 2026 roku.

Na powyższym diagramie witryna shoes.example może być umieszczona w innych witrynach wydawców, takich jak news.example, i nadal mieć dostęp do tych samych danych za pomocą funkcji Select URL z Shared Storage, aby wybrać odpowiednie treści do umieszczenia.
Jak działa opcja Wybierz adres URL
Za pomocą interfejsu Select URL API możesz wybrać adres URL, który ma być renderowany w ramce ograniczonej lub ramce iframe przy użyciu danych z różnych witryn. Użyj JavaScriptu, aby odczytywać i zapisywać dane z różnych witryn w Shared Storage, a następnie wybierz adres URL z podanej listy na podstawie przechowywanych danych.

Wyrenderowany adres URL może zawierać dowolne treści: reklamy, artykuły, obrazy, kod HTML, wezwania do działania (np. przyciski) i inne.
W tym przykładzie prowadzisz witrynę o tematyce podróżniczej i prowadzisz kampanię reklamową z 3 różnymi kreacjami reklamowymi. Chcesz wyświetlać te kreacje w sekwencji na podstawie interakcji użytkownika (wyświetlenia lub kliknięcia).
Gdy witryna po raz pierwszy zauważy wygrywającą przestrzeń reklamową, możesz zapisać w pamięci współdzielonej identyfikator i stan kliknięcia tej kreacji.
Na przykład:
await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');
Oznacza to, że gdy wygrasz aukcję reklam w innych witrynach, które odwiedza ten użytkownik, możesz wyświetlić inną reklamę na podstawie tych danych.

JavaScript działa w SharedStorageWorklet, aby pobrać te informacje, ale Twój kod nie może wchodzić w interakcje ani komunikować się poza ramką iframe lub ramką ograniczoną na stronie nadrzędnej.
Możesz też na przykład sprawdzić, który artykuł będzie skuteczniejszy w kontekście osadzonym. Aby to przetestować, możesz przypisać użytkownika do grupy eksperymentalnej, gdy zobaczysz go w swojej witrynie, a następnie zapisać identyfikator tej grupy w Shared Storage, aby można było uzyskać do niego dostęp w kontekście różnych witryn. Na innej stronie możesz użyć interfejsu SelectURL API, aby wybrać najbardziej odpowiedni adres URL do renderowania w ramce ograniczonej na podstawie grupy eksperymentalnej użytkownika zapisanej w pamięci Shared Storage.
Korzystanie z funkcji Wybierz adres URL umożliwia podejmowanie świadomych decyzji na podstawie danych z różnych witryn bez udostępniania informacji o użytkownikach (takich jak historia przeglądania czy inne dane osobowe) witrynie osadzającej ani eksfiltracji danych na własne serwery.
Budżety
Aby zmniejszyć ryzyko wycieku danych z różnych witryn, interfejs Select URL API korzysta z systemu budżetowania, który łączy budżety długoterminowe i krótkoterminowe:
- Budżet długoterminowy: budżet długoterminowy wynosi 12 bitów na witrynę wywołującą dziennie w przypadku korzystania z
selectURL(). Ten budżet jest naliczany tylko wtedy, gdy ramka hostująca wybrany adres URL wykonuje nawigację najwyższego poziomu, a koszt jest obliczany jakolog2(number of URLs). Jeśli więc podasz 8 adresów URL do wyboru, koszt wyniesie 3 bity. Pozostały budżet na dany dzień jest obliczany jako12 - (sum of bits deducted in the last 24 hours). Jeśli nie ma wystarczającego budżetu, zwracany jest domyślny adres URL (pierwszy adres URL na liście) i rejestrowany jest 1 bit, jeśli użytkownik przejdzie do domyślnego adresu URL. Budżety krótkoterminowe: budżety krótkoterminowe to dodatkowe limity na poziomie wczytania strony, które obowiązują do czasu pełnego wdrożenia ramek ograniczonych i dostępności raportowania na poziomie zdarzenia. Obowiązuje budżet 6 bitów na witrynę wywołującą na wczytanie strony, który ogranicza ilość informacji, jakie pojedyncza witryna wywołująca może ujawnić za pomocą interfejsu
selectURL(). Obowiązuje też budżet 12 bitów łącznie na wczytanie strony, który jest łącznym limitem dla wszystkich witryn wywołujących na stronie.Zapisane zapytania umożliwiają ponowne wykorzystanie poprzedniego
selectURL()wyniku na tej samej stronie, co zmniejsza krótkoterminowe wykorzystanie budżetu. Gdy funkcjaselectURL()zostanie wywołana po raz pierwszy z zapisaną nazwą zapytania, wynikowy indeks jest przechowywany przez cały czas istnienia strony. Gdy funkcjaselectURL()jest wywoływana z tą samą nazwą zapisanego zapytania w przypadku kolejnych wywołań, zwracany jest zapisany indeks, a zarejestrowana operacja nie jest wykonywana. W tym przypadku budżet jest obciążany tylko przy pierwszym użyciu, ale nie przy ponownym użyciu w ramach tego samego wczytania strony, ponieważ nie są ujawniane żadne nowe informacje.Zapisane zapytania możesz wdrożyć, dodając do obiektu opcji właściwość savedQuery z wybraną nazwą zapytania, jak pokazano w tym przykładzie.
const topProductUrls = [ { url: 'https://ad.example/default-top-product.html' }, { url: 'https://ad.example/experiment-top-product.html' }]; const relatedProductUrls = [ { url: 'https://ad.example/default-related-product.html' }, { url: 'https://ad.example/experiment-related-product.html' }]; // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'` // on this page, so it will be charged to both per-page budgets. const topProductsConfig = await sharedStorage.selectURL( 'productExperiment', topProductUrls, { savedQuery: 'control_or_experiment', keepAlive: true, resolveToConfig: true }); document.getElementById('topProductsFencedFrame').config = topProductsConfig; // This next call with this savedQuery won't charge either of the per-page budgets. const relatedProductConfig = await sharedStorage.selectURL( 'productExperiment', relatedProductUrls, { savedQuery: 'control_or_experiment', resolveToConfig: true }); document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
Wybierz przypadki użycia interfejsu URL API
Jeśli tworzysz witrynę z funkcjami, które muszą działać w różnych domenach, możesz mieć jeden z tych przypadków użycia:
- Rotowanie kreacji reklamowych: ogranicz liczbę wyświetleń tej samej reklamy użytkownikowi w różnych witrynach, przechowując dane, takie jak identyfikator kreacji, liczba wyświetleń i interakcje użytkownika, aby określać, które kreacje będą wyświetlane użytkownikom w różnych witrynach. Dzięki temu możesz zachować równowagę między wyświetleniami i uniknąć przesycenia określonymi treściami, aby ograniczyć potencjalne negatywne wrażenia użytkowników. Więcej informacji o tym przypadku użycia znajdziesz w artykule Rotacja kreacji reklamowych.
- Wybieranie kreacji reklamowej według częstotliwości: zapisuj liczbę wyświetleń w przeglądarce w pamięci współdzielonej, aby ograniczyć częstotliwość wyświetlania tej samej reklamy użytkownikowi w różnych witrynach. Więcej informacji o tym przypadku użycia znajdziesz w artykule Wybieranie kreacji reklamowej według częstotliwości.
- Dostosowywanie wrażeń użytkownika w przypadku znanych klientów: zapewnij spójne wrażenia użytkownika w różnych domenach. Udostępniaj niestandardowe treści i wezwania do działania na podstawie stanu rejestracji użytkownika lub innych stanów użytkownika oraz zapewniaj spójne wrażenia w różnych domenach. Więcej informacji o tym przypadku użycia znajdziesz w artykule Dostosowywanie środowiska użytkownika do potrzeb znanych klientów.
- Przeprowadzaj testy A/B: test A/B porównuje co najmniej 2 wersje konfiguracji, aby określić, która z nich jest najskuteczniejsza. Możesz przypisać użytkownika do grupy eksperymentalnej, a następnie zapisać tę grupę w pamięci współdzielonej, aby uzyskać do niej dostęp w różnych witrynach. Dzięki temu możesz zbierać statystyki dotyczące zachowań użytkowników w sieci witryn bez śledzenia poszczególnych osób. Więcej informacji o tym przypadku użycia znajdziesz w artykule Przeprowadzanie testów A/B.
Interfejs Select URL API z pamięcią współdzieloną umożliwia tworzenie takich przypadków użycia dzięki dostępowi do tej samej pamięci w różnych witrynach najwyższego poziomu.
Wypróbuj wersję demonstracyjną
Możesz wypróbować interfejs Select URL w wersji demonstracyjnej Shared Storage.
Ta wersja demonstracyjna została opracowana z perspektywy reklamodawcy, technologii reklamowej, dystrybutora treści lub innej usługi zewnętrznej, która chce przechowywać informacje w witrynach różnych wydawców. W wersji demonstracyjnej ten sam kod zewnętrzny jest uruchamiany w witrynach wydawców A i B w przypadku każdego zastosowania. Odwiedź stronę każdego wydawcy, aby dowiedzieć się, jak dane są udostępniane w kontekście różnych witryn.
Kod wersji demonstracyjnej możesz też sprawdzić na GitHub.
Stan interfejsu API
Interfejs Select URL API jest ogólnie dostępny. Aby używać interfejsu Select URL API lub włączyć go na potrzeby lokalnego programowania, postępuj zgodnie z instrukcjami rejestracji w Piaskownicy prywatności.
| Propozycja | Stan |
|---|---|
Raporty na poziomie zdarzenia w przypadku funkcji Selekcji treści (selectURL()) |
Dostępne co najmniej do 2026 r. |
| Budżetowanie na poszczególne witryny Wyjaśnienie |
Dostępne w M119 |
| Debugowanie workletów Shared Storage za pomocą DevTools Sekcja |
Dostępne w M120 |
Angażowanie się i przesyłanie opinii
Pamiętaj, że propozycja interfejsu Select URL API jest obecnie przedmiotem dyskusji i prac rozwojowych, a jej treść może ulec zmianie.
Chętnie poznamy Twoją opinię o interfejsie Select URL API.
- Oferta: sprawdź szczegółową ofertę.
- Dyskusja: dołącz do bieżącej dyskusji, aby zadawać pytania i dzielić się spostrzeżeniami.