Wybierz URL z pamięcią współdzieloną

Wybierz adres URL na podstawie danych zebranych w Shared Storage i renderuj zawartość w odizolowanym ramce.

Za pomocą interfejsu Shared Storage API możesz wybrać adres URL, który ma zostać wyrenderowany w ramce odizolowanej za pomocą danych z wielu witryn. Użyj JavaScriptu do odczytania i zapisania danych w wielu witrynach, a potem wybierz adres URL z podanej listy na podstawie zapisanych danych. Możesz renderować ten adres URL w ramce ograniczonej.

Wybór adresu URL może obejmować dowolne treści: reklamy, artykuły, obrazy, kod HTML, wezwania do działania (np. przyciski) i inne.

Załóżmy, że prowadzisz stronę o podróżach i prowadzisz kampanię reklamową z 3 różnymi kreacjami reklamowymi. Chcesz ustawić sekwencję tych kreacji na podstawie interakcji użytkownika (obejrzenie lub kliknięcie).

3 kreacje reklamy, które wyświetlają się użytkownikom na podstawie ich wcześniejszych interakcji.
Pierwsza kreacja wyświetlana nowemu widzowi zawiera komunikat „Wyrusz w kolejną przygodę”. Po wyświetleniu reklamy, ale bez kliknięcia użytkownik zobaczyłby komunikat „Zwiedzanie miejsc na weekend”. Po obejrzeniu lub kliknięciu trzecia kreacja zachęca użytkowników do kliknięcia „Kliknij, aby uzyskać zniżkę na pobyt w hotelu”. Jeśli użytkownik kliknie pierwszą reklamę, następna reklama, którą zobaczy, będzie trzecią kreacją.

Gdy użytkownik po raz pierwszy zobaczy zwycięski blok reklamowy, możesz zapisać w Shared Storage jego identyfikator i stan kliknięć. Oznacza to, że gdy wygrasz aukcję reklamy na innych stronach, które odwiedza ten użytkownik, możesz wyświetlić inną reklamę na podstawie tych danych.

Prezentacja pamięci współdzielonej z 3 kreacjami reklamowymi i interakcją użytkownika

Twój kod JavaScript jest uruchamiany w worklecie, aby pobierać te informacje, ale nie może wchodzić w interakcje z elementami zewnętrznymi ani komunikować się z nimi poza iframe lub ogrodzoną ramką na stronie nadrzędnej.

Weźmy inny przykład. Załóżmy, że chcesz sprawdzić, który artykuł będzie lepiej się wyświetlał w ramach wbudowanego kontekstu. Gdy użytkownik pojawi się w Twojej witrynie, możesz przypisać go do grupy eksperymentalnej, a potem zapisać identyfikator grupy w Shared Storage, aby można było uzyskać do niej dostęp w różnych witrynach. W innej witrynie Twoja ramka ograniczona może wybrać adres URL na podstawie grupy eksperymentalnej tego użytkownika, która jest przechowywana w Shared Storage.

Udostępniona pamięć pozwala podejmować świadome decyzje na podstawie danych z różnych witryn bez udostępniania informacji o użytkownikach (takich jak historia przeglądarki lub inne dane osobowe) witrynie, w której znajduje się element, ani wyprowadzania danych na własne serwery.

Przypadki użycia

Wybór adresu URL z Shared Storage obsługuje takie zastosowania jak:

  • Rotowanie kreacji reklamowych: możesz przechowywać dane, takie jak identyfikator kreacji i interakcje użytkowników, aby określić, które kreacje wyświetlają użytkownicy w różnych witrynach.
    • Częstotliwość. Liczba wyświetleń w przeglądarce może być przechowywana w miejscu wspólnym i używana do określania, która kreacja ma być wyświetlana użytkownikowi.
  • Przeprowadzanie testów A/B: przypisz użytkownika do grupy eksperymentalnej, a potem zapisz identyfikator tej grupy w usługach pamięci współdzielonej, aby można było uzyskać do niej dostęp w różnych witrynach.
  • Dostosowywanie interfejsu użytkownika: udostępniaj treści i wezwania do działania na podstawie stanu rejestracji użytkownika lub innych stanów weryfikacji.

Budżety

Aby zmniejszyć ryzyko wycieku danych między witrynami, interfejs Select URL API korzysta z systemu budżetowania, który łączy budżety długo- i krótkoterminowe:

  • Budżet długoterminowy: 12 bitów na stronę dzwoniącego na dzień, gdy używasz selectURL(). Ten budżet jest obciążany tylko wtedy, gdy ramka zawierająca wybrany adres URL wykonuje nawigację na najwyższym poziomie, a koszt jest obliczany według wzoru log2(number of URLs). Jeśli więc podasz 8 adresów URL, z których można wybierać, koszt wyniesie 3 bity. Pozostały budżet na dany dzień jest obliczany jako 12 - (sum of bits deducted in the last 24 hours). Jeśli nie ma wystarczającego budżetu, zwracany jest domyślny adres URL (pierwszy na liście), a jeśli użytkownik przechodzi do tego adresu, rejestrowany jest 1 bit.
  • Budżety krótkoterminowe: dodatkowe limity na podstawie wczytania strony. Istnieje limit 6 bitów na stronę wywołania na wczytanie strony, który ogranicza ilość informacji, które może wyciec z pojedynczej strony wywołania za pomocą selectURL(). Dostępny jest też budżet 12 bitów na wczytanie strony, który jest łącznym limitem dla wszystkich wywołujących witryn na stronie.

    Zapisane zapytania umożliwiają ponowne wykorzystanie poprzedniego wyniku selectURL() na tej samej stronie, co pozwala ograniczyć krótkoterminowe wykorzystanie budżetu. Gdy funkcja selectURL() zostanie wywołana po raz pierwszy z zapisaną nazwą zapytania, uzyskany indeks będzie przechowywany przez cały czas istnienia strony. Gdy wywołasz funkcję selectURL() z tym samym zapisanym zapytaniem w przypadku kolejnych wywołań, zwracany jest zapisany indeks, a zarejestrowana operacja nie jest wykonywana. W takim przypadku budżet zostanie obciążony tylko podczas pierwszego użycia, ale nie podczas ponownego użycia w ramach tego samego wczytania strony, ponieważ nie ujawnia on żadnych nowych informacji.

    Zapisane zapytania można zaimplementować, dodając do obiektu options właściwość savedQuery z wybraną nazwą zapytania, jak 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;
    
    .

Wypróbuj wybór adresu URL

Wybór adresu URL za pomocą interfejsu API Shared Storage jest dostępny do testowania w Chrome Canary/Dev/Beta M105 i nowszych wersjach. Aby przetestować wybór adresu URL, włącz wszystkie interfejsy API dotyczące prywatności reklam w sekcji chrome://settings/adPrivacy.

Eksperymentowanie z wersją demonstracyjną

Demo jest dostępne, a kod możesz sprawdzić na GitHub.

Ten pokaz został przygotowany z perspektywy reklamodawcy, firmy technologicznej, dystrybutora treści lub innej usługi zewnętrznej, która chce przechowywać informacje w różnych witrynach wydawców. W tym pokazie w przypadku każdego przypadku użycia ten sam kod zewnętrzny jest uruchamiany w witrynach zarówno wydawcy A, jak i wydawcy B. Otwórz stronę każdego wydawcy, aby sprawdzić, jak dane są udostępniane w różnych witrynach.

Angażuj odbiorców i dziel się opiniami

Propozycja wspólnego miejsca na dane jest w trakcie dyskusji i może ulec zmianie w przyszłości. Jeśli wypróbujesz ten interfejs API i chcesz przekazać nam swoją opinię, chętnie poznamy jego opinię.