Konfigurowanie aukcji reklam na stronie wydawcy

Dowiedz się, jak skonfigurować aukcję z użyciem Protected Audience API.

Aukcje na urządzeniu prowadzone przez sprzedawców

Aukcja Protected Audience na urządzeniu jest przeprowadzana w witrynie sprzedającej miejsca na reklamy, a podmiot przeprowadzający aukcję nazywamy sprzedawcą. Wielu podmiotów może pełnić rolę sprzedawców: witryna może przeprowadzać własną aukcję reklamową lub może uwzględniać skrypt firmy zewnętrznej, który przeprowadzi aukcję w jej imieniu, albo może korzystać z platformy SSP, która łączy przeprowadzanie aukcji na urządzeniu z innymi działaniami związanymi z aukcjami reklamowymi po stronie serwera. Sprzedawcy mają 3 podstawowe zadania w aukcji reklam na urządzeniu:

  1. Sprzedawcy decydują, (a) którzy kupujący mogą brać udział w aukcji, oraz (b) które stawki z grup zainteresowań tych kupujących mogą wziąć udział w aukcji. Dzięki temu sprzedawca może egzekwować zasady witryny dotyczące reklam, które mogą się wyświetlać na stronie.
  2. Sprzedawcy są odpowiedzialni za logikę biznesową aukcji: kod JavaScript, który uwzględnia cenę i metadane każdej oferty oraz oblicza wynik „atrakcyjności”. Aukcję wygrywa stawka z najwyższym wynikiem atrakcyjności.
  3. Sprzedawcy generują raporty o wynikach aukcji, w tym informacje o cenie rozliczeniowej i innych wypłatach. Kupujący, którzy wygrali i przegrali, również mogą tworzyć własne raporty.

Z tego dokumentu dowiesz się, jak skonfigurować i rozpocząć aukcję na urządzeniu.

Konfigurowanie aukcji reklamowej z użyciem Protected Audience API

Aby przeprowadzić aukcję reklam za pomocą interfejsu Protected Audience API, musisz najpierw skonfigurować aukcję. W tym celu utwórz obiekt auctionConfig. Oto przykład takiej konfiguracji:

const auctionConfig = {
  seller: 'https://seller.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://buyer-1.example': {...},
    'https://buyer-2.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://buyer-1.example': 50,
    'https://buyer-2.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://component-seller.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ],
  resolveToConfig: [true|false],
};

AuctionConfig miejsca zakwaterowania

Właściwości wymagane

Jedyne wymagane właściwości dla auctionConfigs to seller, decisionLogicUrlinterestGroupBuyers.

Właściwość Przykład Rola
seller https://seller.example Kraj pochodzenia sprzedawcy.
decisionLogicUrl https://seller.example/decision-logic.js Adres URL workletu z logiką decyzji JavaScript w aukcji. To pole musi mieć takie samo pochodzenie jak pole sprzedawcy.
interestGroupBuyers [https://buyer-1.example,
https://buyer-2.example,
...]
Pochodzenie wszystkich właścicieli grup zainteresowań, którzy zostali poproszeni o złożenie oferty na aukcji

Właściwości opcjonalne

Pozostałe właściwości auctionConfigs są opcjonalne.

Właściwość Przykład Rola
trustedScoringSignalsUrl https://seller.example/scoring-signals Adres URL serwera klucz/wartość sprzedawcy. Będzie on używany podczas procesu oceniania reklam, a kluczem będzie URL renderowania kreacji. To pole musi mieć takie samo pochodzenie jak pole sprzedawcy.
auctionSignals {"category":"news"} Obiekt serializowany w formacie JSON reprezentujący sygnały dostępne dla wszystkich kupujących i sprzedawców biorących udział w aukcji.
sellerSignals {…} Obiekt serializowany w formacie JSON reprezentujący sygnały dostępne tylko dla sprzedawców.
perBuyerSignals {https://dsp.example: {...},
https://another-buyer.example: {...},
... }
Sygnały dostępne dla konkretnego kupującego. Sygnały mogą pochodzić od sprzedawców, ale też od samych kupujących.
perBuyerTimeouts {https://www.example-dsp.com: 50,
https://www.another-buyer.com: 200,
*: 150,
...},
Maksymalny czas działania w milisekundach skryptu generateBid() konkretnego kupującego. Symbol wieloznaczny zostanie zastosowany do każdego kupującego, dla którego nie określono konkretnego limitu czasu.
sellerTimeout 100 Maksymalny czas działania w milisekundach skryptu sprzedawcy scoreAd().
componentAuctions [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] Dodatkowe konfiguracje aukcji komponentów.
resolveToConfig true|false Wartość logiczna określająca, czy obietnica zwrócona przez funkcję runAdAuction() ma być rozwiązywana jako FencedFrameConfig (w przypadku użycia w elemencie <fencedframe>) w przypadku wartości „true”, czy jako nieprzezroczysty adres URL urn:uuid (w przypadku użycia w elemencie <iframe>) w przypadku wartości „false”. Domyślnie ma wartość „false”.

Asynchroniczne dostarczanie sygnałów

Wartości niektórych sygnałów (skonfigurowanych przez pola auctionSignals, sellerSignals, perBuyerSignalsperBuyerTimeouts) można opcjonalnie podawać nie jako konkretne wartości, ale jako obietnice. Umożliwia to nakładanie się niektórych części aukcji, takich jak wczytywanie skryptów i zaufanych sygnałów oraz uruchamianie odizolowanych procesów worklet, na obliczanie (lub pobieranie z sieci) tych wartości. Skrypty workletu będą widzieć tylko rozwiązane wartości. Jeśli którykolwiek z tych obiektów Promise zostanie odrzucony, aukcja zostanie przerwana, chyba że już wcześniej się nie powiodła lub została przerwana w inny sposób.

Konfigurowanie aukcji z wieloma sprzedawcami

W niektórych przypadkach w aukcji może chcieć wziąć udział wielu sprzedawców, a zwycięzcy poszczególnych aukcji są przekazywani do innej aukcji prowadzonej przez innego sprzedawcę. Te oddzielne aukcje, które są przekazywane dalej, nazywamy aukcjami komponentów. Aby ułatwić przeprowadzanie tych aukcji komponentów, obiekt componentAuctions może zawierać dodatkowe konfiguracje aukcji dla aukcji komponentów każdego sprzedawcy. Zwycięska stawka z każdej z tych aukcji komponentów zostanie przekazana do aukcji „najwyższego poziomu”, która ostatecznie rozstrzygnie aukcję. Aukcje komponentów auctionConfig mogą nie mieć własnych componentAuctions. Jeśli pole componentAuctions nie jest puste, pole interestGroupBuyers musi być puste. Oznacza to, że w przypadku każdej aukcji Protected Audience albo jest jeden sprzedawca i nie ma aukcji komponentów, albo wszystkie stawki pochodzą z aukcji komponentów, a aukcja najwyższego poziomu może wybierać tylko spośród zwycięzców aukcji komponentów.

Przeprowadź aukcję

Sprzedawca wysyła do przeglądarki użytkownika żądanie rozpoczęcia aukcji reklamowej, wywołując funkcję navigator.runAdAuction().

try {
  const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
  // Handle error.
}

Wywołanie runAdAuction() zwraca obiekt Promise, który jest rozpoznawany jako reklama. Żaden kod na stronie wydawcy nie może sprawdzić zwycięskiej reklamy ani w inny sposób poznać jej zawartości na podstawie wyniku runAdAuction(). Jeśli w obiekcie AuctionConfig flaga resolveToConfig miała wartość „true”, zwracany jest obiekt FencedFrameConfig, który można renderować tylko w ramce ograniczonej. Jeśli flaga ma wartość false, zwracany jest nieprzezroczysty URN, który można renderować w ramce iframe. Funkcja runAdAuction może zwrócić wartość null, co oznacza, że nie wybrano żadnej reklamy. W takim przypadku sprzedawca może wyświetlić reklamę kierowaną kontekstowo.