Jako kupujący reklamy (platformy DSP i reklamodawcy) możesz być zainteresowany udziałem w aukcji reklam z interfejsem Protected Audience API na stronie wydawcy, aby kierować reklamy na grupę zainteresowań zdefiniowaną na stronie reklamodawcy. Uczestnicząc w aukcji Protected Audience, możesz docierać do zidentyfikowanych klientów w innych witrynach w sposób zapewniający ochronę prywatności.
W aukcji Protected Audience podajesz logikę generowania stawki, a przeglądarka oblicza stawkę na podstawie tej logiki. W przeciwieństwie do innych architektur aukcji, w których przesyłasz stawkę bezpośrednio, a nie logikę.
Logikę generowania stawek podajesz w funkcji JavaScript generateBid()
, a plik jest hostowany na Twoim serwerze. Gdy dodasz użytkownika do grupy zainteresowań, lokalizacja tego pliku zostanie przekazana do konfiguracji grupy zainteresowań jako biddingLogicUrl
.
Podczas aukcji przeglądarka pobiera logikę określania stawek podaną w polu biddingLogicUrl
i wykonuje funkcję generateBid()
dla każdej grupy zainteresowań w bezpiecznym, odizolowanym środowisku, które ma ograniczoną komunikację z kontekstem zewnętrznym. Gdy funkcja generateBid()
jest wykonywana, przeglądarka przekazuje do niej sygnały jako argumenty. Sygnały te zawierają różne informacje z różnych źródeł, np. dane własne wydawcy, dane sprzedawcy, dane w czasie rzeczywistym i inne. Możesz używać tych sygnałów do obliczania stawki, a wartość jest zwracana przez wywołanie generateBid()
. Po przesłaniu stawek przeglądarka wykona logikę oceny sprzedawcy dla każdej stawki, aby obliczyć wynik atrakcyjności sprzedawcy.
generateBid()
Poniżej znajdziesz opis argumentów funkcji generateBid()
i struktury stawki zwracanej przez tę funkcję:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
Argumenty
generateBid()
przyjmuje te argumenty:
Argument | Rola |
---|---|
|
Obiekt przekazywany przez kupującego reklamę. Grupę zainteresowań można zaktualizować za pomocą dailyUpdateUrl . |
|
Właściwość argumentu auction config przekazywanego do funkcji navigator.runAdAuction() przez sprzedawcę. Zawiera on informacje o kontekście strony (np. rozmiar reklamy i identyfikator wydawcy), typie aukcji (pierwszej lub drugiej ceny) i inne metadane. |
|
Właściwość argumentu auction config przekazywanego przez sprzedawcę. Może to dostarczać sygnały kontekstowe z serwera kupującego dotyczące strony, jeśli sprzedawca jest platformą SSP, która wykonuje wywołanie określania stawek w czasie rzeczywistym do serwerów kupującego i przekazuje odpowiedź z powrotem, lub jeśli strona wydawcy kontaktuje się bezpośrednio z serwerem kupującego. W takim przypadku kupujący może chcieć sprawdzić w generateBid() podpis kryptograficzny tych sygnałów, aby chronić się przed manipulacją. |
|
Obiekt, którego klucze to trustedBiddingSignalsKeys dla grupy zainteresowań, a wartości są zwracane w żądaniu trustedBiddingSignals . |
|
Obiekt utworzony przez przeglądarkę, który może zawierać informacje o kontekście strony (np. hostname bieżącej strony, które sprzedawca mógłby sfałszować) i dane dotyczące samej grupy zainteresowań (np. zapis informacji o tym, kiedy grupa wygrała wcześniej aukcję, aby umożliwić ograniczenie częstotliwości na urządzeniu). |
|
Sygnały pochodzące od konkretnego sprzedawcy, w przeciwieństwie do sygnałów auctionSignals i sellerSignals , które mogą pochodzić od dowolnego uczestnika obecnego w kontekście, w którym wykonywana jest funkcja runAdAuction . |
Sygnały przeglądarki
Obiekt browserSignals
ma te właściwości:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
Właściwość | Opis |
---|---|
|
Nazwa hosta, z którego wykonano połączenie runAdAuction() . |
|
Sprzedawca, do którego przesłano stawkę. W przypadku aukcji komponentów ta wartość to sprzedawca komponentów. |
|
Sprzedawca najwyższego poziomu na aukcji komponentów. Występuje tylko na aukcji komponentów. |
|
Właściwość requestedSize zaleca rozmiar ramki na potrzeby aukcji. Sprzedawca ustawia żądany rozmiar w konfiguracji aukcji, a wartość staje się dostępna dla oferentów w parametrze generateBid() . Biorący udział w aukcji reklamodawcy mogą wybrać inny rozmiar treści reklamy, a wynikowy rozmiar zostanie wizualnie przeskalowany, aby zmieścić się w kontenerze elementu. |
|
Pole joinCount to liczba przypadków, w których to urządzenie dołączyło do tej grupy zainteresowań w ciągu ostatnich 30 dni, gdy grupa zainteresowań była przechowywana w sposób ciągły (tzn. nie było przerw w przechowywaniu grupy zainteresowań na urządzeniu z powodu opuszczenia jej lub wygaśnięcia członkostwa). |
|
Pole recency to czas (w minutach) od momentu dołączenia tego urządzenia do tej grupy zainteresowań do chwili obecnej. |
|
Liczba stawek przesłanych przez grupę zainteresowań. |
|
Pole prevWinMs zawiera zwycięskie reklamy grupy zainteresowań i czas od poprzednich zwycięstw w milisekundach. Pamiętaj, że obiekt reklamy zawiera tylko pola renderURL i metadane. |
|
obiekt WebAssembly.Module na podstawie biddingWasmHelperURL grupy zainteresowań. |
|
Wartość Data-Version z odpowiedzi usługi klucz/wartość kupującego. |
|
Maksymalna liczba komponentów reklamy, które mogą zostać zwrócone: generateBid() |
Obliczanie stawki
Aby obliczyć wartość stawki, kod w generateBid()
może używać właściwości parametrów funkcji.
Na przykład:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
Zwracanie stawki
generateBid()
zwraca obiekt z tymi właściwościami:
Właściwość | Rola |
---|---|
ad |
Dowolne metadane dotyczące reklamy, np. informacje, które sprzedawca chce uzyskać na temat tej stawki lub kreacji. Sprzedawca wykorzystuje te informacje w swojej logice aukcji i podejmowania decyzji. |
adCost |
Wartość liczbowa używana do przekazywania kosztu kliknięcia lub konwersji reklamodawcy raportującego z funkcji generateBid do funkcji reportWin. Precyzja tej liczby jest ograniczona do 8-bitowej mantysy i 8-bitowego wykładnika, a zaokrąglanie odbywa się stochastycznie. |
adComponents |
Opcjonalna lista maksymalnie 20 komponentów reklam składających się z wielu elementów, pobranych z właściwości adComponents argumentu interestGroup przekazanego do funkcji navigator.joinAdInterestGroup() . |
allowComponentAuction |
Wartość logiczna wskazująca, czy tej stawki można używać w aukcji komponentów. Jeśli nie zostanie podana, domyślnie przyjmuje się wartość „false”. |
bid |
Stawka w postaci liczby, która weźmie udział w aukcji. Sprzedawca musi mieć możliwość porównania stawek różnych kupujących, dlatego stawki muszą być podane w wybranej przez niego jednostce (np. „USD za tysiąc”). Jeśli stawka wynosi zero lub jest ujemna, ta grupa zainteresowań w ogóle nie weźmie udziału w aukcji sprzedawcy. Dzięki temu mechanizmowi kupujący może wdrożyć dowolne reguły reklamodawcy dotyczące miejsc, w których mogą lub nie mogą się wyświetlać jego reklamy. |
bidCurrency |
Waluta stawki używana do sprawdzania waluty. |
render |
Słownik opisujący kreację, która powinna być wyświetlana, jeśli ta stawka wygra aukcję. Obejmuje to:
|
|
Liczba całkowita z zakresu 0–4095 (12 bitów) przekazywana do funkcji reportWin() z dodaniem szumu zgodnie z opisem w schemacie dodawania szumu i grupowania. Nieprawidłowe wartości, takie jak wartości ujemne, nieskończone i NaN , będą ignorowane i nie będą przekazywane. Przekazywanych będzie tylko 12 najmniej znaczących bitów. Kupujący może używać sygnałów dostępnych w funkcji generateBid() , w tym danych własnych kupującego zebranych w momencie tworzenia grupy zainteresowań w userBiddingSignals , aby uzyskać pewną wartość, która jest przekazywana do funkcji raportowania wygranych kupującego w celu umożliwienia trenowania modelu ML. |