Antwort erstellen

Nachdem Ihre Anwendung die Gebotsanfrage von Google verarbeitet hat, muss sie und eine Antwort senden. In diesem Leitfaden wird beschrieben, wie Sie Ihre Anwendung so programmieren, dass die Antwort erstellt wird.

Protobuf-BidResponse-Nachricht erstellen

Authorized Buyers sendet die BidRequest als Nachrichtentext einer HTTP-POST. Wenn Ihr Gebotsendepunkt für das Protobuf-Format konfiguriert ist, muss Ihre Anwendung eine Antwort mit dem Content-Type-Header senden, der auf application/octet-stream festgelegt ist, und einen Nachrichtentext mit einem serialisierten Protokoll-Zwischenspeicher. Das Protokoll Der Zwischenspeicher ist eine BidResponse-Nachricht gemäß Definition in openrtb.proto. Ihre Anwendung muss einen analysierbaren BidResponse als Antwort auf alle BidRequest. Zeitüberschreitungen Antworten, die nicht geparst werden können, werden als Fehler betrachtet und von Google gedrosselt. von Bietern mit hohen Fehlerraten unterstützt.

Wenn Sie nicht auf eine Impression bieten möchten, können Sie BidResponse.ext.processing_time_ms-Feld unverändert lassen und alle andere Felder leer. openrtb.proto finden Sie auf der Seite Referenzdaten.

Creative-ID

In Ihrem BidResponse wird ein Creative über das Feld BidResponse.seatbid.bid.crid angegeben (64 Byte). Ähnlich Creatives müssen eindeutige Werte für dieses Feld haben, wenn sie sich in Bezug auf Alle nennenswerten Merkmale, einschließlich, aber nicht beschränkt auf: Größe, deklarierte URL, Creative-Attribute und Anbietertypen. Mit anderen Worten: Sie müssen unterschiedlichen Creative-IDs zu zwei Anzeigen hinzufügen, die:

  • anders aussehen oder sich anders verhalten.
  • In verschiedenen Bildern rendern.
  • Wird auf unterschiedliche Weise gerendert, z. B. wenn eine Anzeige aus einem Bild, während das andere ein Video ist).

Bei der Entwicklung Ihrer Anwendung sollten Sie sich für eine systematische Kennungen generieren, die für die Art der Creatives, die Sie planen, sinnvoll sind die Sie einreichen möchten.

Anzeigenattribute

Google empfiehlt, Creative-Attribute zu deklarieren, um die Merkmale und Ausrichtung mithilfe einer Kombination aus BidResponse.seatbid.bid.apis und BidResponse.seatbid.bid.attr oder der BidResponse.seatbid.bid.ext.attribute. Die folgenden wird beschrieben, wie Sie Attribute deklarieren:

  • VPAID
    Legen Sie BidResponse.seatbid.bid.apis auf VPAID_1 oder VPAID_2 fest. Für das JSON-Format kann dies auf 1 oder 2 festgelegt werden.
  • MRAID
    BidResponse.seatbid.bid.apis festlegen auf MRAID_1 oder 3 für das JSON-Format.
  • SIZELESS
    BidResponse.seatbid.bid.attr festlegen auf RESPONSIVE oder 18 für JSON Format.
  • PLAYABLE
    Legen Sie dazu für BidResponse.seatbid.bid.attr den Wert USER_INTERACTIVE oder 13 für das JSON-Format fest.

Weitere Informationen finden Sie in der Ressource vom Typ „Creatives“ finden Sie eine Erläuterung, wie Sie Feedback zu den erkannten Eigenschaften eines für Ihre Creatives.

Open Bidding-Felder

Gebotsantworten, die von Anzeigenplattform- und Netzwerkbietenden gesendet werden, die an Open Bidding teilnehmen Die Gebote ähneln denen von Authorized Buyers, Echtzeitgebote nutzen. Open Bidding-Kunden können eine geringe Anzahl von zusätzliche Felder. Für einige vorhandene Felder gibt es möglicherweise alternative Verwendungsmöglichkeiten. Dazu gehören:

OpenRTB Authorized Buyers Details
BidResponse.imp[].pmp.deals[].id BidResponse.ad[].adslot[].exchange_deal_id

Die Deal-ID aus dem Namespace der Anzeigenplattform, die mit diesem Gebot verknüpft und an Publisher gesendet wird.

BidResponse.seatbid[].bid[].ext.exchange_deal_type BidResponse.ad[].adslot[].exchange_deal_type

Die Art des Deals, der den Publishern gemeldet wird und der sich auf den Deal auswirkt die in der Auktion behandelt werden.

BidResponse.seatbid[].bid[].ext.third_party_buyer_token BidResponse.ad[].adslot[].third_party_buyer_token Token zur Identifizierung von Drittanbieterkäuferinformationen, falls das der Open Bidding-Plattform als Vermittler fungiert. Diese ergibt sich aus dem und muss unverändert im Gebot an Google übergeben werden. Antwort.

Empfehlungen

  • Aktivieren Sie persistente HTTPS-Verbindungen (auch als „Keep-Alive“ oder „Verbindungswiederverwendung“ bezeichnet) auf Ihren Servern. Legen Sie das Zeitlimit auf mindestens 10 Sekunden fest. Höhere Werte sind in vielen Fällen von Vorteil. Google überprüft während der anfänglichen Latenztests Ihrer Anwendung, Über Authorized Buyers werden häufig Anfragen gesendet. Latenz-Overhead beim Aufbau einer separaten TCP-Verbindung für jedes
  • Fügen Sie die optionale Impressions-Tracking-URL hinzu, um zu erfassen, wann die Impression gerendert wird, anstatt wann der Bieter den Zuschlag erhält. Aufgrund des Rückgangs zwischen Impressionen und Conversions lassen sich so genauere Tracking-Statistiken erstellen.

  • Der Gebotscode darf keine Abhängigkeiten von veralteten Feldern haben, da dies zu Fehlern bei Geboten führen kann.
  • Fügen Sie BidResponse.seatbid.bid.w und BidResponse.seatbid.bid.h in Ihre BidResponse ein. A BidResponse zu einer Anfrage mit mehreren Anzeigengrößen muss diese Felder enthalten, sonst wird es aus der Auktion entfernt.
  • Begrenzen Sie die Antwortgröße auf unter 8 K. Sehr große Antworten können zunehmen Netzwerklatenz und Zeitüberschreitungen verursachen.
  • Befolgen Sie die Richtlinien für Gebote für iOS-Inventar abgeben, für das eine SKAdNetwork-Attribution erforderlich ist.

Beispiel für eine Gebotsantwort

Die folgenden Beispiele stellen für Menschen lesbare Beispiele des Protobuf- und JSON-Anfragen.

OpenRTB Protobuf

OpenRTB-JSON

Google

Wichtig: Die in den Beispielen dargestellten Protobuf-Nachrichten sind hier als visuell lesbarer Text dargestellt. Das ist jedoch nicht die werden die Nachrichten über das Kabel gesendet. Wenn Sie das Google- oder OpenRTB-Protobuf-Format verwenden, werden nur serialisierte BidResponse-Nachrichten akzeptiert.

Sie können eine BidResponse-Nachricht mithilfe der Methode folgenden C++ Code:

BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
  // respond to the POST with post_response as the content
} else {
  // return an error to the POST
}

Creative angeben

Ihre Gebotsantwort gibt die Anzeige an, die ausgeliefert werden soll, wenn Ihr Gebot den Zuschlag erhält. Ihr Gebot muss eines der unterstützten Anzeigenformate (AMP, Video, nativ) enthalten. In dieser das Creative mithilfe des Felds html_snippet angeben.

Alternativ können Sie Ihr Creative mit einem der folgenden Felder angeben, je nach Anzeigenformat:

  • SDK-gerenderte Anzeige
    • BidResponse.seatbid.bid.ext.sdk_rendered_ad
  • AMP-Seiten
    • BidResponse.seatbid.bid.amp_ad_url
  • Video
    • BidResponse.seatbid.bid.adm
  • Nativ
    • BidResponse.seatbid.bid.adm_native

Geben Sie im Feld BidResponse.seatbid.bid.adm eine Anzeige an, die auf Ihren eigenen Servern gehostet wird. Verwenden Sie dazu ein HTML-Snippet. Das Snippet ist in einem iFrame eingeschlossen, der in die Webseite eingefügt wird. Dadurch wird die Anzeige beim Laden der Seite abgerufen und gerendert. Das HTML-Snippet muss so gestaltet werden, dass der Eine Anzeige (Banner oder Interstitial) wird innerhalb eines iFrames korrekt und bei einer die für die Anzeigenfläche geeignet ist, auf die Sie bieten.

Außerdem muss die in der Gebotsantwort angegebene Anzeigengröße genau einem der Größenkombinationen in der Gebotsanfrage, wenn

  • Eine Anzeige ist ein normales Banner (kein Video-, natives oder Interstitial-Anzeigenformat).
  • Der Bieter hat die Größe in der Gebotsantwort angegeben. Angeben der Größe ist erforderlich, wenn die Anfrage mehr als eine Größe enthält.
  • Eine Ausnahme gilt für Interstitial-Anzeigen. Bei Interstitials muss die Breite mindestens 50 % der Bildschirmbreite und die Höhe mindestens 40 % der Bildschirmhöhe betragen.

Sie können ein HTML-Snippet-Creative mit jedem gültigen HTML-Code angeben, der korrekt gerendert wird. Beachten Sie jedoch die Einschränkungen beim Angeben des Feld crid im Bereich Create BidResponse message (Gebotsantwort-Nachricht erstellen): So können Sie beispielsweise zusätzliche Informationen in Argumente der URLs einfügen, die beim Rendern der Anzeige von Ihren Servern abgerufen werden. So können Sie zur Impression zurück an Ihre eigenen Server senden.

Die meisten Richtlinien für HTML-Snippets, die in Gebotsantworten zurückgegeben werden, entsprechen den für Drittanbieteranzeigen. Weitere Informationen finden Sie unter Authorized Buyers Programmrichtlinien, Anforderungen für Drittanbieter Anzeigenbereitstellung und Deklarieren Klick-URLs in Anzeigen.

Makros angeben

Makros sind formatierter Text, der in einige Felder für Gebotsanfragen eingebettet ist und URLs enthält, die bei der Anzeigenbereitstellung durch einen relevanten Wert ersetzt werden. Wenn Ihr erfolgreiches Gebot beispielsweise das Makro AUCTION_PRICE im HTML-Snippet-Creative enthielt, das mit Ihrem Gebot gesendet wurde, wird das Makro durch einen Wert ersetzt, den Sie entschlüsseln können, um den Betrag zu ermitteln, den Sie für die Impression in der Auktion bezahlt haben.

Sie können Makros in die folgenden Felder einfügen:

  • BidResponse.seatbid.bid.adm

    Makros werden für HTML-Snippets, native Formate, Video-URLs und VAST-XML-Videoformate unterstützt.

  • BidResponse.seatbid.bid.adm_native.eventtrackers.url

  • BidResponse.seatbid.bid.adm_native.imptrackers

  • BidResponse.seatbid.bid.ext.amp_ad_url

    Nur die Google-spezifischen WINNING_PRICE und WINNING_PRICE_ESC-Makros werden für AMP-Creatives unterstützt.

  • BidResponse.seatbid.bid.burl

  • BidResponse.seatbid.bid.ext.impression_tracking_url

    Verwenden Sie diese URL anstelle von BidResponse.seatbid.bid.burl, wenn Sie mehr als eine Abrechnungs-URL benötigen.

Sie können ein Makro zum Beispiel in ein HTML-Snippet einfügen, indem Sie Einbetten von ${MACRO} in die zum Abrufen des Creatives verwendete URL Dabei ist MACRO eines der unterstützten Makros, die im OpenRTB-Spezifikation

Google RTB-Makros

Neben den im OpenRTB enthaltenen Makros unterstützt Google weitere Makros. Spezifikation. Sie sind unterschiedlich formatiert und erscheinen %%MACRO%%, wenn in einer URL eingebettet. In der folgenden Tabelle wird beschrieben, diese Makros:

Makro Beschreibung
ADVERTISING_IDENTIFIER Ermöglicht Käufern, die iOS-IDFA oder die Werbe-ID von Android über Impressions-Rendering. Siehe Werbetreibenden-IDs entschlüsseln .
CACHEBUSTER Stringdarstellung einer zufälligen 4-Byte-Ganzzahl ohne Vorzeichen.
CLICK_URL_UNESC

Die nicht maskierte Klick-URL für die Anzeige. Im Snippet wird ein mit Escape-Zeichen Version der Drittanbieter-Klick-URL direkt auf den .

Wenn die Klick-URL des Drittanbieters beispielsweise http://my.adserver.com/some/path/handleclick?click=clk lautet, könnte der folgende Code mit der einmal ent escapeten Version der Klick-URL des Drittanbieters nach der Makroaufruf verwendet werden:

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

Bei der Anzeigenbereitstellung wird dies wie folgt erweitert:

<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

Über die URL wird der Klick zuerst bei Google registriert und dann an die Klick-URL des Drittanbieters weitergeleitet.

CLICK_URL_ESC

Die entkommentierte Klick-URL für die Anzeige. Verwenden Sie dieses anstelle von CLICK_URL_UNESC, wenn der Wert zuerst übergeben werden muss der eine Weiterleitung zurückgibt.

Der folgende Code könnte beispielsweise in einem HTML-Snippet verwendet werden:

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>

Bei der Anzeigenbereitstellung wird dies wie folgt erweitert:

<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>

Dadurch wird der Klick mit my.adserver.com registriert, ist dann für die Weiterleitung an die im google_click_url-Parameter. Dabei wird davon ausgegangen, dass my.adserver.com den Parameter google_click_url entwirft.

Sie können nach %%CLICK_URL_ESC%% eine doppelte URL-Escaping-Zeichenfolge anhängen. Nach der Entschlüsselung my.adserver.com, das eine einfache maskierte Version von Die an google_click_url angehängte URL. Wenn die google_click_url abgerufen wird, wird sie noch einmal entescaped und dann weitergeleitet.

CLICK_URL_ESC_ESC

Die doppelt maskierte URL für die Anzeige. Verwenden Sie dieses Makro anstelle von CLICK_URL_UNESC, wenn der Wert zuerst an einen anderen Server übergeben werden muss, der dann eine Weiterleitung zurückgibt.

Der folgende Code könnte beispielsweise in einem HTML-Snippet verwendet werden:

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>

Bei der Anzeigenbereitstellung wird der Creative-Code folgendermaßen erweitert:

<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME Wird auf http: erweitert, wenn die Gebotsanfrage kein SSL erfordert oder https:, wenn für die Gebotsanfrage SSL erforderlich ist.
SITE Die Domain mit maskierter URL der Content-URL oder bei anonymem Inventar die anonyme ID.
SITE_URL Verworfen. Dieses Makro wurde durch das Makro SITE ersetzt, das identische Funktionen bietet.
TZ_OFFSET Die Zeitzonenverschiebung.
VERIFICATION

Die verschiedenen Werte für die Produktion und für das Scannen des Creatives in der Bestätigungspipeline. Das Format ist: %%?VERIFICATION:true-val:false-val%%, wobei beliebige Werte außer Makros können für true-val und false-val, einschließlich leerer Strings. Für Open Bidding empfehlen Anzeigenplattformen, dieses Makro zu verwenden. ist die Nachfrageseite müssen keine Änderungen vorgenommen werden.

Wenn ein Creative beispielsweise %%?VERIFICATION:-1:5000%% enthält, ist der Textersatz beim Ausliefern 5000 und in der Überprüfungspipeline -1. So können Sie diese beiden Pings unterscheiden.

WINNING_PRICE

Die codierten Kosten für die Impression (das heißt CPI statt CPM) in millionstel Einheiten der Kontowährung. Ein erfolgreiches CPM-Gebot von 5 US-Dollar entspricht 5.000.000 Millionstel CPM oder 5.000 Millionstel CPI. Der decodierte Wert von WINNING_PRICE wäre in diesem Fall 5.000. Der Preis für das erfolgreiche Gebot wird in CPI angegeben.

Zum Parsen dieses Makros müssen Sie eine Anwendung implementieren, die entschlüsselt Preisbestätigungen. Weitere Informationen finden Sie im Preisbestätigungen entschlüsseln finden Sie weitere Informationen.

WINNING_PRICE_ESC URL-entfernte WINNING_PRICE.

Google verlangt, dass Sie im Creative der vom Drittanbieter ausgelieferten Anzeige entweder das CLICK_URL_UNESC- oder das CLICK_URL_ESC-Makro verwenden. Google verwendet die CLICK_URL-Makros für das Klick-Tracking.

Für die URL-Escaping in Makros wird folgendes Schema verwendet:

  • Das Leerzeichen wird durch ein Pluszeichen (+) ersetzt.
  • Alphanumerische Zeichen (0–9, a–z, A–Z) und Zeichen aus dem Satz !()*,-./:_~ bleiben unverändert.
  • Alle anderen Zeichen werden durch %XX ersetzt, wobei XX die Hexadezimalzahl ist, die für das Zeichen steht.

Einschränkungen und Anforderungen für Publisher

Die Gebotsanfrage enthält Informationen zu den Einschränkungen und Anforderungen, die Publisher an Creatives in der Auktion stellen.

  • BidRequest.bcat
    • Sie können die in diesem Feld angegebenen blockierten Kategorien mit denjenigen vergleichen, die für Ihre eingereichten Creatives im Feld detectedCategories der Real-time Bidding API erkannt wurden.
  • BidRequest.imp.ext.allowed_vendor_type
  • BidRequest.imp.secure
    • In der Praxis ist dies immer auf true gesetzt, Google benötigt SSL-Unterstützung für alle Creatives.
  • BidRequest.imp.{audio/banner/native/video}
  • BidRequest.imp.{audio/banner/native/video}.api
  • BidRequest.imp.{audio/banner/native/video}.battr
  • BidRequest.imp.{audio/banner/video}.mimes

Geben Sie niemals Gebote für Anzeigen ab, die eine eingeschränkte Funktion enthalten. Für zulässige Funktionen wie Anbietertyp, geben Sie eine Anzeige nur zurück, wenn der entsprechende Anbietertyp in der Liste allowed_vendor_type in BidRequest. Nur Anzeigenformate, die in der Gebotsanfrage durch Ausfüllen von Feldern wie BidRequest.imp.banner angegeben sind, sollten in Ihr Gebot aufgenommen werden. Weitere Informationen finden Sie in den Kommentaren zu diesen Feldern in der BidRequest-Protokoll-Bufferdefinition.

Wenn eine Anzeige in BidResponse zurückgegeben wird, müssen Sie BidResponse.seatbid.bid.attr genau festlegen, BidResponse.seatbid.bid.cat und entweder BidResponse.seatbid.bid.adomain oder BidResponse.seatbid.bid.adm_native.link.url-Felder im BidResponse Wenn eine Anzeige über mehrere anwendbare Werte für diese müssen Sie jeden Wert angeben. Kommentare zu diesen Feldern finden Sie unter Weitere Informationen finden Sie in der Protokollpufferdefinition BidResponse. Antworten, für die diese Felder nicht festgelegt sind, werden verworfen.

Open Measurement

Mit Open Measurement können Sie Drittanbieter angeben, die unabhängige Analyse- und Überprüfungsdienste für Anzeigen, die in mobilen Apps ausgeliefert werden Umgebungen.

Unterstützte Anzeigenformate sind Video-, Banner- und Interstitial-Anzeigen. Weitere Informationen zur Verwendung von Open Measurement in einer Gebotsantwort, die diese Formate enthält, finden Sie im Hilfeartikel Open Measurement SDK.

Beispiel für Gebotsantworten

In den folgenden Abschnitten finden Sie Beispielgebotsantworten für verschiedene Anzeigentypen.

App-Banner

OpenRTB-Protokollzwischenspeicher

OpenRTB-JSON

Google

App-Interstitial

OpenRTB Protobuf

OpenRTB-JSON

Google

Video-Interstitial in Apps

OpenRTB Protobuf

Google

Native App

OpenRTB-Protokollzwischenspeicher

OpenRTB-JSON

Google

Webvideo

Google

Mobiles Webbanner für Bieter auf Anzeigenplattformen

OpenRTB Protobuf