Przewodnik i materiały referencyjne dotyczące interfejsu Seller API w przypadku aukcji reklam z użyciem Protected Audience API.
W tym artykule znajdziesz informacje techniczne o aukcji reklam, która jest używana w obecnej wersji eksperymentalnego interfejsu Protected Audience API.
Pełny cykl życia interfejsu Protected Audience API znajdziesz w przewodniku dla programistów. Szczegółowe omówienie tego, jak sprzedawcy przeprowadzają aukcje na urządzeniu, znajdziesz w wyjaśnieniu dotyczącym interfejsu Protected Audience API.
Nie jesteś deweloperem? Zapoznaj się z omówieniem interfejsu Protected Audience API.
Czym jest aukcja reklamowa z użyciem interfejsu Protected Audience API?
Aukcja reklam w interfejsie Protected Audience API to zbiór małych programów w JavaScript, które przeglądarka uruchamia na urządzeniu użytkownika, aby wybrać reklamę. Aby chronić prywatność, cały kod aukcji reklamowej od sprzedawcy i kupujących jest uruchamiany w izolowanych workletach JavaScript, które nie mogą komunikować się ze światem zewnętrznym.
- Użytkownik odwiedza witrynę, w której wyświetlają się reklamy.
- Kod sprzedawcy jest wykonywany
navigator.runAdAuction(). Określa, która przestrzeń reklamowa jest na sprzedaż i kto może składać oferty. Sprzedawcy muszą też dodać skrypt, który ocenia każdą stawkę,scoreAd(). - Kod zaproszonego kupującego jest wykonywany w celu wygenerowania stawki, adresu URL odpowiedniego kreacji reklamy i innych danych. Skrypt określania stawek może wysyłać zapytania o dane w czasie rzeczywistym, takie jak pozostały budżet kampanii reklamowej, do usługi klucz/wartość kupującego.
- Kod sprzedawcy ocenia każdą stawkę i wybiera zwycięzcę. Ta logika wykorzystuje wartość stawki i inne dane, aby określić, jak pożądana jest stawka. Reklamy, które nie mogą pokonać zwycięzcy kontekstowego, są odrzucane. Sprzedawca może używać własnej usługi klucz/wartość do przesyłania danych w czasie rzeczywistym.
- Zwycięska reklama jest zwracana jako nieprzezroczysta wartość, która wyświetla się w ramce ograniczonej. Ani sprzedawca, ani wydawca nie będą mogli wyświetlić tej wartości.
- Informacja o aukcji jest przekazywana sprzedawcy i kupującym, którzy wygrali.
Kiedy odbędzie się aukcja?
Interfejs Protected Audience API może działać samodzielnie lub w połączeniu z aukcjami automatyzowanymi. Na aukcji automatycznej z udziałem wielu sprzedawców:
- Użytkownik odwiedza witrynę uczestniczącą w programie.
- Inny sprzedawca przeprowadza aukcję automatyzowaną, aby znaleźć reklamę kontekstową do dostępnego miejsca na reklamę.
- Przeprowadzana jest aukcja z użyciem interfejsu Protected Audience API.
scoreAd()porównuje stawki kupującego z wynikami pierwszej aukcji.
Stawki, które nie mogą pokonać zwycięzcy kontekstowego, są odrzucane.
Kto przeprowadza aukcję reklam w interfejsie Protected Audience API?
Aukcję sprzedaży miejsca na reklamę może przeprowadzić wiele podmiotów.
Na przykład:
- Wydawca treści: działa we własnym imieniu, aby hostować treści reklamowe w swojej witrynie.
- Platforma dostawców reklam (SSP): współpracuje z wydawcą i świadczy inne usługi.
- Skrypt firmy zewnętrznej: działa w imieniu wydawcy, aby umożliwić mu udział w aukcjach reklam.
W przypadku interfejsu Protected Audience API sprzedawca ma 3 zadania:
- Wymuszanie reguł wydawcy: którzy kupujący i które stawki są kwalifikowane.
- Uruchomienie logiki aukcji: JavaScript uruchamiany w workletach w celu obliczenia wyniku atrakcyjności każdej stawki.
- Raportowanie wyniku aukcji.
Te zadania są wykonywane automatycznie w kodzie dostarczonym przez sprzedawcę, gdy rozpoczyna on aukcję reklamową, wywołując funkcję JavaScript navigator.runAdAuction().
Funkcje interfejsu API
runAdAuction()
Sprzedawca wysyła do przeglądarki użytkownika żądanie rozpoczęcia aukcji reklamowej, wywołując funkcję navigator.runAdAuction().
Na przykład:
const auctionConfig = {
seller: 'https://ssp.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://dsp.example': {...},
'https://another-buyer.example': {...},
...
},
perBuyerTimeouts: {
'https://dsp.example': 50,
'https://another-buyer.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://some-other-ssp.example',
'decisionLogicUrl': ...,
...
},
...
]
};
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction() zwraca obietnicę, która jest rozwiązywana jako URN (urn:uuid:<something>) reprezentujący wynik aukcji reklam. Może być ona dekodowana tylko przez przeglądarkę po przekazaniu do ramki ograniczonej
w celu renderowania: strona wydawcy nie może sprawdzić zwycięskiej reklamy.
Skrypt decisionLogicUrl rozpatruje każdą reklamę z osobna, wraz z powiązaną z nią stawką i metadanymi, a następnie przypisuje jej liczbową ocenę atrakcyjności.
auctionConfig miejsca zakwaterowania
seller- Wymagany
- Przykład:
'https://ssp.example' - Rola: pochodzenie sprzedawcy.
decisionLogicUrl- Wymagany
- Przykład:
'https://ssp.example/auction-decision-logic.js' - Rola: URL JavaScriptu roboczego elementu aukcji.
trustedScoringSignalsUrl- Opcjonalnie
- Przykład:
'https://ssp.example/scoring-signals' - Rola: adres URL zaufanego serwera sprzedawcy.
interestGroupBuyers- Wymagane
- Przykład:
['https://dsp.example', 'https://buyer2.example', ...] - Rola: pochodzenie wszystkich właścicieli grup zainteresowań, którzy zostali poproszeni o licytowanie w aukcji.
- Uwagi: sprzedawca może określić
interestGroupBuyers:, aby zezwolić wszystkim grupom zainteresowań na licytowanie. Reklamy są następnie akceptowane lub odrzucane na podstawie kryteriów innych niż uwzględnienie właściciela grupy zainteresowań. Sprzedawca może na przykład sprawdzać kreacje reklamowe, aby potwierdzić ich zgodność z zasadami. auctionSignals- Opcjonalnie
- Przykład:
{...} - Rola: informacje o sprzedawcy dotyczące kontekstu strony, typu aukcji itp.
sellerSignals- Opcjonalne
- Przykład:
{...} - Rola: informacje na podstawie ustawień wydawcy, wysyłanie kontekstowego żądania reklamy itp.
sellerTimeout- Opcjonalny
- Przykład:
100 - Rola: maksymalny czas działania (ms) skryptu
scoreAd()sprzedawcy. perBuyerSignals- Opcjonalny
- Przykład:
{'https://dsp.example': {...}, 'https://another-buyer.example': {...}, ... } - Rola: sygnały kontekstowe dotyczące strony dla każdego konkretnego kupującego, pochodzące z jego serwera.
perBuyerTimeouts- Opcjonalny
- Przykład:
50 - Rola: maksymalny czas działania (ms) skryptów danego kupującego.
generateBid() componentAuctions- Opcjonalny
- Przykład:
[{'seller': 'https://www.some-other-ssp.com', 'decisionLogicUrl': ..., ...}, ...] - Rola: dodatkowe konfiguracje aukcji komponentów.
decisionLogicUrl
decisionLogicUrl jest właściwością obiektu konfiguracji aukcji przekazywaną do funkcji runAdAuction(). Ten adres URL musi zawierać skrypt funkcji scoreAd(). Ta logika jest uruchamiana raz dla każdej reklamy, aby określić jej atrakcyjność.
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
browserSignals
browserSignals to obiekt utworzony przez przeglądarkę, który zawiera informacje znane przeglądarce i które skrypt aukcji sprzedawcy może chcieć zweryfikować:
{
topWindowHostname: 'publisher.example',
interestGroupOwner: 'https://dsp.example',
renderUrl: 'https://cdn.example/render',
adComponents: ['https://cdn.com/ad-component-1', ...],
biddingDurationMsec: 12,
dataVersion: 1 /* DValue from the seller's Key/Value service response. */
}
Zanim rozpocznie się aukcja, sprzedawca znajduje najlepszą reklamę kontekstową dla dostępnego boksu reklamowego. Część logiki scoreAd() odrzuca każdą reklamę, która nie może pokonać zwycięzcy w kontekście.
scoreAd()
scoreAd() przyjmuje te argumenty:
| Argument | Rola |
|---|---|
adMetadata |
Dowolne metadane podane przez kupującego. |
auctionConfig |
Obiekt konfiguracji aukcji przekazany do funkcji navigator.runAdAuction(). |
bid |
Wartość stawki w postaci liczbowej. |
trustedScoringSignals |
Wartości pobierane w momencie aukcji z zaufanego serwera sprzedawcy, które odzwierciedlają opinię sprzedawcy o reklamie. |
Najczęstsze pytania
Jak wybierany jest zwycięzca aukcji i kto go wybiera?
Sprzedawca udostępnia logikę punktacji, aby określić wynik atrakcyjności każdej reklamy, a przeglądarka wybiera reklamę o najwyższym wyniku.
Sprzedawca umieszcza logikę w funkcji scoreAd(), a przeglądarka wykonuje tę funkcję w worklecie, który ma ograniczoną komunikację z kodem poza nim. Przeglądarka nie ocenia reklam. Za wykonanie logiki oceny i wybranie stawki o najwyższym wyniku odpowiada wyłącznie przeglądarka.
Wszystkie odwołania do interfejsu Protected Audience API
Dostępne są przewodniki po interfejsach API:
- Przewodnik dla programistów dotyczący interfejsu Protected Audience API.
- Przewodnik dla kupujących reklamę po grupach zainteresowań i generowaniu stawek w ramach Protected Audience API.
- Przewodnik po aukcjach reklam w ramach Protected Audience API
- Przewodnik po raportowaniu wyników aukcji.
- Sprawdzone metody dotyczące opóźnienia aukcji reklam w ramach Protected Audience API
- Rozwiązywanie problemów z chronioną grupą odbiorców
Wyjaśnienie interfejsu Protected Audience API zawiera też szczegółowe informacje o obsłudze i ograniczeniach funkcji.