Gebot in einer Auktion abgeben, um einen Anzeigenblock zu kaufen

Als Werbetreibender oder DSP möchten Sie möglicherweise an einer Protected Audience-Anzeigenauktion auf der Publisher-Website teilnehmen, um eine Anzeige auf die Interessengruppe auszurichten, die Sie auf der Website des Werbetreibenden definiert haben. Wenn Sie an einer Protected Audience-Auktion teilnehmen, können Sie Ihre identifizierten Kunden auf anderen Websites datenschutzfreundlich erreichen.

Bei einer Protected Audience-Auktion stellen Sie die Logik zum Generieren des Gebots bereit und der Browser berechnet das Gebot anhand dieser Logik. Das unterscheidet sich von anderen Auktionsarchitekturen, bei denen Sie das Gebot direkt einreichen, anstatt die Logik anzugeben.

Sie stellen die Logik für die Gebotsgenerierung in der JavaScript-Funktion generateBid() bereit. Die Datei wird auf Ihrem Server gehostet. Wenn Sie einer Interessengruppe einen Nutzer hinzufügen, wird der Speicherort dieser Datei als biddingLogicUrl in die Konfiguration der Interessengruppe übergeben.

Während der Auktion ruft der Browser die in biddingLogicUrl angegebene Gebotslogik ab und führt die Funktion generateBid() für jede Interessengruppe in einer sicheren, isolierten Umgebung aus, deren Kommunikation mit dem externen Kontext eingeschränkt ist. Wenn generateBid() ausgeführt wird, übergibt der Browser Signale als Argumente an die Funktion. Diese Signale enthalten verschiedene Informationen aus unterschiedlichen Quellen, z. B. die eigenen Daten des Publishers, die Daten des Verkäufers und Echtzeitdaten. Sie können diese Signale verwenden, um das Gebot zu berechnen. Der Wert wird vom generateBid()-Aufruf zurückgegeben. Nachdem die Gebote eingereicht wurden, führt der Browser die Scoring-Logik des Verkäufers für jedes Gebot aus, um die Attraktivitätsbewertung des Verkäufers zu berechnen.

generateBid()

Im Folgenden werden die Argumente der Funktion generateBid() und die Struktur des von der Funktion zurückgegebenen Gebots beschrieben:


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)
  };
}

Argumente

generateBid() verwendet die folgenden Argumente:

Argument Rolle

interestGroup

Ein Objekt, das vom Anzeigenkäufer übergeben wird. Die Interessengruppe wird möglicherweise mit dailyUpdateUrl aktualisiert.

auctionSignals

Ein Attribut des Arguments auction config, das vom Verkäufer an navigator.runAdAuction() übergeben wird. Diese Informationen enthalten den Seitenkontext (z. B. Anzeigengröße und Publisher-ID), den Auktionstyp (Erst- oder Zweitpreis) und andere Metadaten.

perBuyerSignals

Eine Eigenschaft des Arguments auction config, das vom Verkäufer übergeben wird. So können Kontextsignale vom Server des Käufers zur Seite bereitgestellt werden, wenn der Verkäufer eine SSP ist, die einen Echtzeitgebotsaufruf an die Server des Käufers sendet und die Antwort zurückleitet, oder wenn die Publisher-Seite den Server des Käufers direkt kontaktiert. In diesem Fall sollte der Käufer möglicherweise eine kryptografische Signatur dieser Signale in generateBid() prüfen, um sich vor Manipulationen zu schützen.

trustedBiddingSignals

Ein Objekt, dessen Schlüssel die trustedBiddingSignalsKeys für die Interessengruppe sind und dessen Werte in der trustedBiddingSignals-Anfrage zurückgegeben werden.

browserSignals

Ein vom Browser erstelltes Objekt, das Informationen zum Seitenkontext (z. B. die hostname der aktuellen Seite, die der Verkäufer sonst fälschen könnte) und Daten für die Interessengruppe selbst (z. B. ein Datensatz, wann die Gruppe zuvor eine Auktion gewonnen hat, um eine geräteinterne Häufigkeitsbegrenzung zu ermöglichen) enthalten kann.

directFromSellerSignals

Signale, die von einem bestimmten Verkäufer stammen, im Gegensatz zu auctionSignals und sellerSignals, die von jedem Teilnehmer stammen können, der im Kontext vorhanden ist, in dem runAdAuction ausgeführt wird.

Browsersignale

Das browserSignals-Objekt hat die folgenden Eigenschaften:

{
  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
}
Attribut Beschreibung

topWindowHostname

Der Hostname, von dem der runAdAuction()-Aufruf stammt.

seller

Der Verkäufer, an den das Gebot gesendet wird. Bei einer Komponentenauktion ist dieser Wert der Komponentenverkäufer.

topLevelSeller

Der Verkäufer auf oberster Ebene in einer Komponentenauktion. Er ist nur in einer Komponentenauktion vorhanden.

requestedSize

Mit der Eigenschaft requestedSize wird eine Framegröße für die Auktion empfohlen. Der Verkäufer legt die angeforderte Größe in der Auktionskonfiguration fest und der Wert ist für Bieter in generateBid() verfügbar. Bieter in der Auktion können eine andere Inhaltsgröße für die Anzeige auswählen. Die resultierende Größe wird dann visuell skaliert, damit sie in den Container des Elements passt.

joinCount

Das Feld joinCount gibt an, wie oft dieses Gerät in den letzten 30 Tagen dieser Interessengruppe beigetreten ist, während die Interessengruppe kontinuierlich gespeichert wurde. Das bedeutet, dass es keine Lücken bei der Speicherung der Interessengruppe auf dem Gerät gab, weil der Nutzer die Gruppe verlassen hat oder die Mitgliedschaft abgelaufen ist.

recency

Das Feld recency gibt die Zeitdauer (in Minuten) seit dem Beitritt dieses Geräts zur Interessengruppe an.

bidCount

Die Anzahl der Gebote, die für diese Interessengruppe abgegeben wurden.

prevWinsMs

Das Feld prevWinMs enthält die Anzeigen der Gewinner-Interessengruppe sowie die Zeit seit den vorherigen Gewinnen in Millisekunden. Das Anzeigenobjekt enthält hier nur die Felder renderURL und „metadata“.

wasmHelper

Ein WebAssembly.Module-Objekt, das auf dem biddingWasmHelperURL der Interessengruppe basiert.

dataVersion

Der Wert für die Datenversion aus den Antworten des Schlüssel/Wert-Dienstes des Käufers.

adComponentsLimit

Maximale Anzahl der zurückzugebenden Anzeigenkomponenten generateBid()

Gebot berechnen

Um einen Gebotswert zu berechnen, kann Code in generateBid() die Eigenschaften der Parameter der Funktion verwenden.

Beispiel:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
   //  ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    // ...
  }
}

Gebot zurückgeben

generateBid() gibt ein Objekt mit den folgenden Eigenschaften zurück:

Attribut Rolle
ad Beliebige Metadaten zur Anzeige, z. B. Informationen, die der Verkäufer zu diesem Gebot oder Anzeigen-Creative erwartet. Der Verkäufer verwendet diese Informationen in seiner Auktions- und Entscheidungslogik.
adCost Ein numerischer Wert, der verwendet wird, um die Kosten für Anzeigenklicks oder Conversions des Werbetreibenden vom generateBid- zum reportWin-Aufruf zu übergeben. Die Genauigkeit dieser Zahl ist auf eine 8-Bit-Mantisse und einen 8-Bit-Exponenten begrenzt. Rundungen werden stochastisch durchgeführt.
adComponents Eine optionale Liste mit bis zu 20 Komponenten für Anzeigen, die aus mehreren Teilen bestehen, aus der adComponents-Eigenschaft des an navigator.joinAdInterestGroup() übergebenen Zinsgruppearguments.
allowComponentAuction Ein boolescher Wert, der angibt, ob dieses Gebot in einer Komponentenauktion verwendet werden kann. Wenn keine Angabe erfolgt, ist die Standardeinstellung „false“.
bid Ein numerisches Gebot, das in die Auktion eingebracht wird. Der Verkäufer muss Gebote von verschiedenen Käufern vergleichen können. Daher müssen Gebote in einer vom Verkäufer gewählten Einheit angegeben werden, z. B. „USD pro Tausend“. Wenn das Gebot null oder negativ ist, nimmt diese Interessengruppe überhaupt nicht an der Auktion des Verkäufers teil. Mit diesem Mechanismus kann der Käufer Regeln für Werbetreibende implementieren, die festlegen, wo seine Anzeigen ausgeliefert werden dürfen und wo nicht.
bidCurrency Die Währung für das Gebot, die für die Währungsprüfung verwendet wird.
render Ein Dictionary, das das Creative beschreibt, das gerendert werden soll, wenn dieses Gebot die Auktion gewinnt. Dazu gehören:
  • url: Die URL des Creatives.
  • width: Die Breite des Creatives. Diese Größe wird mit der Deklaration in der Interessengruppe abgeglichen und in alle Makros für Anzeigengrößen in der URL des Anzeigen-Creatives eingefügt. Wenn die Anzeige in einem Fenced Frame geladen wird, wird der innere Frame des Fenced Frame (d. h. die für das Anzeige-Creative sichtbare Größe) auf diese Größe festgelegt. Änderungen an der Framegröße, die vom Einbettungsprogramm vorgenommen werden, sind dann nicht mehr sichtbar.
  • height: Die Höhe des Creatives. Weitere Informationen finden Sie unter width.

modelingSignals

Eine Ganzzahl zwischen 0 und 4095 (12 Bit), die an reportWin() übergeben wird, mit Rauschen, wie im Schema für Rauschen und Bucketing beschrieben. Ungültige Werte wie negative, unendliche und NaN-Werte werden ignoriert und nicht übergeben. Es werden nur die niedrigsten 12 Bits übergeben.


Der Käufer kann die in der Funktion generateBid() verfügbaren Signale verwenden, einschließlich der Daten aus selbst erhobenen Käuferdaten, die bei der Erstellung der Interessengruppe in userBiddingSignals erfasst wurden, um einen Wert abzuleiten, der an die Win-Berichtsfunktion des Käufers übergeben wird, um das Training des ML-Modells zu ermöglichen.