Przewodnik po interfejsie API sprzedawcy i dokumenty referencyjne dotyczące aukcji reklam w Protected Audience API.
W tym artykule znajdziesz informacje techniczne dotyczące aukcji reklam, które są używane w bieżącej wersji eksperymentalnej interfejsu Protected Audience API.
Aby poznać pełny cykl życia interfejsu Protected Audience API, przeczytaj przewodnik dla programistów. Informacje o tym, jak sprzedawcy prowadzą aukcje na urządzeniu, znajdziesz w artykule wyjaśniającym Protected Audience API.
Nie jesteś deweloperem? Zapoznaj się z omówieniem Protected Audience API.
Czym jest aukcja reklam z interfejsu Protected Audience API?
Aukcja reklam Protected Audience API to zbiór małych programów JavaScript, które przeglądarka uruchamia na urządzeniu użytkownika, aby wybrać reklamę. Aby chronić prywatność, cały kod aukcji reklam od sprzedawców i kupujących jest uruchamiany w odizolowanych elementach roboczych JavaScriptu, które nie mogą komunikować się ze światem zewnętrznym.

- Użytkownik odwiedza witrynę, która wyświetla reklamy.
- Kod sprzedawcy jest wykonywany (
navigator.runAdAuction()
). Określa, która przestrzeń reklamowa jest na sprzedaż i kto może licytować. Sprzedawcy muszą też dołączyć skrypt, który ocenia każdą stawkę (scoreAd()
). - Kod zaproszonego kupującego jest wykonywany w celu wygenerowania stawki, adresu URL odpowiedniej kreacji reklamy i innych danych. Skrypt ustalania stawek może wysyłać zapytania o dane w czasie rzeczywistym, np. o pozostały budżet kampanii reklamowej, do usługi par 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ć atrakcyjność stawki. Reklamy, które nie mogą pokonać zwycięzcy kontekstowego, są odrzucane. Sprzedawca może używać własnej usługi klucz-wartość do danych w czasie rzeczywistym.
- Zwycięska reklama jest zwracana jako nieprzezroczysta wartość, która wyświetla się w ramce ograniczonej. Zarówno sprzedawca, jak i wydawca nie będą mogli wyświetlić tej wartości.
- Aukcja jest raportowana sprzedawcy i kupującym, którzy wygrali aukcję.
Kiedy odbywa się aukcja?
Interfejs Protected Audience API może działać samodzielnie lub w ramach aukcji programmaticznych. W aukcji automatycznej z udziałem wielu sprzedawców:
- Użytkownik odwiedza witrynę uczestniczącą w programie.
- Aukcja programowa jest prowadzona przez innego sprzedawcę w celu znalezienia reklamy kontekstowej dla dostępnego miejsca na reklamę.
- Przeprowadzana jest aukcja interfejsu Protected Audience API.
scoreAd()
porównuje stawki kupującego z wynikami pierwszej aukcji.
Stawki, które nie mogą pokonać zwycięzcy w ramach kontekstu, są odrzucane.
Kto przeprowadza aukcję reklam w interfejsie Protected Audience API?
Wiele stron może prowadzić aukcję, aby sprzedać miejsce reklamowe.
Na przykład:
- Wydawca treści: podmiot, który w swojej witrynie hostuje treści reklamowe.
- Platforma dostawców reklam (SSP): współpraca z wydawcą i świadczenie innych usług.
- Skrypt firmy zewnętrznej: działa w imieniu wydawcy, aby umożliwić udział w aukcjach reklam.
W ramach interfejsu Protected Audience API sprzedawca musi wykonać 3 działania:
- egzekwowanie zasad wydawcy: którzy kupujący i które stawki kwalifikują się do wyświetlania reklam;
- Wykonywanie logiki aukcji: kod JavaScript jest uruchamiany w elementach roboczych w celu obliczenia wyniku atrakcyjności dla każdej stawki.
- Wyświetl wynik aukcji.
Te zadania są wykonywane automatycznie w kodzie dostarczonym przez sprzedawcę, gdy rozpoczyna aukcję reklamy przez wywołanie funkcji JavaScriptnavigator.runAdAuction()
.
Funkcje interfejsu API
runAdAuction()
Sprzedawca wysyła do przeglądarki użytkownika żądanie navigator.runAdAuction()
, aby rozpocząć aukcję reklamy.
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 przekształca się w URN (urn:uuid:<something>
) reprezentujący wynik aukcji reklamy. Dane te mogą być dekodowane przez przeglądarkę tylko wtedy, gdy zostaną przekazane do ramki odizolowanej na potrzeby renderowania: strona wydawcy nie może sprawdzić reklamy zwycięskiej.
Skrypt decisionLogicUrl
rozpatruje po kolei każdą reklamę wraz z powiązaną stawką i metadanymi, a następnie przypisuje jej liczbową ocenę atrakcyjności.
auctionConfig
miejsca zakwaterowania
seller
- Wymagany
- Przykład:
'https://ssp.example'
- Rola: kraj pochodzenia sprzedawcy.
decisionLogicUrl
- Wymagany
- Przykład:
'https://ssp.example/auction-decision-logic.js'
- Rola: URL JavaScriptu workletu aukcji.
trustedScoringSignalsUrl
- Opcjonalnie
- Przykład:
'https://ssp.example/scoring-signals'
- Rola: adres URL zaufanego serwera sprzedawcy.
interestGroupBuyers
- Wymagany
- Przykład:
['https://dsp.example', 'https://buyer2.example', ...]
- Rola: źródła wszystkich właścicieli grup zainteresowań, których poproszono o ustawienie stawki w aukcji.
- Uwagi: sprzedawca może określić wartość
interestGroupBuyers:
, aby zezwolić na licytowanie wszystkim grupom zainteresowań. 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 sprawdzić kreacje reklamy, aby potwierdzić zgodność z jego zasadami. auctionSignals
- Opcjonalnie
- Przykład:
{...}
- Rola: informacje sprzedawcy o kontekście strony, typie aukcji itp.
sellerSignals
- Opcjonalnie
- Przykład:
{...}
- Rola: informacje na podstawie ustawień wydawcy, wysyłanie żądania reklamy kontekstowej itp.
sellerTimeout
- Opcjonalnie
- Przykład:
100
- Rola: maksymalny czas wykonywania (ms) skryptu
scoreAd()
sprzedawcy. perBuyerSignals
- Opcjonalnie
- Przykład:
{'https://dsp.example': {...}, 'https://another-buyer.example': {...}, ... }
- Rola: sygnały kontekstowe dotyczące strony każdego konkretnego kupującego z jego serwera.
perBuyerTimeouts
- Opcjonalnie
- Przykład:
50
- Rola: maksymalny czas działania (ms)
generateBid()
skryptów konkretnego kupującego. componentAuctions
- Opcjonalnie
- Przykład:
[{'seller': 'https://www.some-other-ssp.com', 'decisionLogicUrl': ..., ...}, ...]
- Rola: dodatkowe konfiguracje dla aukcji komponentów.
decisionLogicUrl
decisionLogicUrl
to właściwość obiektu konfiguracji aukcji przekazana do runAdAuction()
. Adres URL musi zawierać skrypt do funkcji scoreAd()
. Ta logika jest stosowana raz w przypadku każdej reklamy w celu określenia jej atrakcyjności.
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
browserSignals
browserSignals
to obiekt utworzony przez przeglądarkę, zawierający informacje, które zna przeglądarka 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. */
}
Przed rozpoczęciem aukcji 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 kontekstowego.
scoreAd()
Funkcja scoreAd()
przyjmuje te argumenty:
Argument | Rola |
---|---|
adMetadata |
dowolne metadane podane przez kupującego; |
auctionConfig |
Obiekt konfiguracji aukcji przekazany do navigator.runAdAuction() . |
bid |
Wartość liczbowa stawki. |
trustedScoringSignals |
Wartości pobierane w momencie aukcji z zaufanego serwera sprzedawcy, które odzwierciedlają jego opinię na temat reklamy. |
Najczęstsze pytania
Jak określany jest zwycięzca aukcji i kto go wybiera?
Sprzedawca udostępnia logikę punktacji, która określa wynik atrakcyjności każdej reklamy, a przeglądarka wybiera reklamę z najwyższym wynikiem jako reklamę zwycięską.
Sprzedawca umieszcza logikę w funkcji scoreAd()
, a przeglądarka wykonuje ją w ramach elementu worklet, który ma ograniczoną komunikację z kodem znajdującym się poza nim. Samą ocenę reklam nie wykonuje przeglądarka. Przeglądarka jest odpowiedzialna za wykonanie logiki punktacji i wybranie stawki z najwyższym wynikiem.
Wszystkie odwołania do 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.