Nachdem Ihre Anwendung die Gebotsanfrage von Google verarbeitet hat, muss sie eine Antwort erstellen und 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 application/octet-stream
und einem Nachrichtentext senden, der aus einem serialisierten Protokoll-Zwischenspeicher besteht. Der Protokollpuffer ist eine BidResponse
-Nachricht gemäß der Definition in openrtb.proto
. Ihre Anwendung muss für jede BidRequest
eine analysierbare BidResponse
zurückgeben. Zeitüberschreitungen und Antworten, die nicht geparst werden können, gelten als Fehler. Google drosselt Bieter mit hoher Fehlerrate.
Wenn Sie kein Gebot für eine Impression abgeben möchten, müssen Sie eine leere HTTP-204-Antwort zurückgeben. 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). Selbst ähnliche Creatives müssen eindeutige Werte für dieses Feld haben, wenn sie sich in wichtigen Merkmalen unterscheiden, z. B. Größe, deklarierte URL, Creative-Attribute und Anbietertypen. Das bedeutet, dass Sie zwei Anzeigen, die
- anders aussehen oder sich anders verhalten.
- Rendern Sie das Bild in verschiedenen Bildern.
- Sie werden auf unterschiedliche Weise gerendert (z. B. besteht eine Anzeige aus einem Bild, die andere aus einem Video).
Beim Entwerfen Ihrer Anwendung sollten Sie sich für eine systematische Methode zur Generierung von IDs entscheiden, die für die Art der Creatives sinnvoll ist, die Sie einreichen möchten.
Anzeigenattribute
Google empfiehlt, Creative-Attribute zu deklarieren, um die Eigenschaften und das Targeting Ihrer Anzeige zu beschreiben. Verwenden Sie dazu entweder eine Kombination aus BidResponse.seatbid.bid.apis
und BidResponse.seatbid.bid.attr
oder die Erweiterung BidResponse.seatbid.bid.ext.attribute
. Im Folgenden wird beschrieben, wie Sie Attribute deklarieren:
VPAID
Legen SieBidResponse.seatbid.bid.apis
aufVPAID_1
oderVPAID_2
fest. Für das JSON-Format kann dies auf1
oder2
festgelegt werden.MRAID
Legen Sie fürBidResponse.seatbid.bid.apis
den WertMRAID_1
oder3
für das JSON-Format fest.SIZELESS
Legen Sie fürBidResponse.seatbid.bid.attr
den WertRESPONSIVE
oder18
für das JSON-Format fest.PLAYABLE
Legen Sie dazu fürBidResponse.seatbid.bid.attr
den WertUSER_INTERACTIVE
oder13
für das JSON-Format fest.
In der Creative-Ressource erfahren Sie, wie Sie Feedback zu den erkannten Eigenschaften Ihrer Creatives erhalten.
Open Bidding-Felder
Gebotsanfragen, die von Anzeigenplattformen und Netzwerken gesendet werden, die Open Bidding nutzen, ähneln denen von Authorized Buyers, die standardmäßige Echtzeitgebote verwenden. Open Bidding-Kunden können eine kleine Anzahl zusätzlicher Felder angeben. Einige vorhandene Felder können auch anders verwendet werden. 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 |
Der Dealtyp, der Publishern gemeldet wird und sich darauf auswirkt, wie der Deal in der Auktion behandelt wird. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Token, das verwendet wird, um Informationen zu Endkäufern von Drittanbietern zu identifizieren, wenn die Anzeigenplattform als Open Bidding-Nutzer ein Vermittler ist. Dieser Wert wird vom Drittanbieter-Käufer abgerufen und muss in der Gebotsantwort unverändert an Google übergeben werden. |
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 prüft dies bei den ersten Latenztests Ihrer Anwendung, da Authorized Buyers Anfragen mit hoher Geschwindigkeit sendet und den Latenzoverhead beim Herstellen einer separaten TCP-Verbindung für jede Anfrage vermeiden muss.
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 ergeben sich so genauere Tracking-Statistiken.
- 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
undBidResponse.seatbid.bid.h
in IhreBidResponse
ein. EinBidResponse
für eine Anfrage mit mehreren Anzeigengrößen muss diese Felder enthalten, da es sonst aus der Auktion ausgeschlossen wird. - Begrenzen Sie die Antwortgröße auf unter 8 KB. Sehr große Antworten können die Netzwerklatenz erhöhen und zu Zeitüberschreitungen führen.
- Beachten Sie die Richtlinien für Gebote für iOS-Inventar, für das eine SKAdNetwork-Attribution erforderlich ist.
Beispiel für eine Gebotsantwort
Die folgenden Beispiele sind lesbare Beispiele für Protobuf- und JSON-Anfragen.
Beispiel anzeigen
Serialisierte Antwortid: "9u09jhHJXT2fbaDZ9V1x66" seatbid { bid { id: "37Td8Gbw1Lr8161bA4B" impid: "1" price: 0.075 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" adomain: "google.com" crid: "test_creative_id_156129" cat: "IAB22" w: 320 h: 50 language: "es" slotinpod: SLOT_POSITION_POD_ANY cattax: IAB_CONTENT_1_0 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" exchange_deal_type: OPEN_AUCTION event_notification_token { payload: "token" } billing_id: 61560909063 } } seat: "4778:9251:780612" } cur: "USD"
Beispiel anzeigen
{ "id": "9u09jhHJXT2fbaDZ9V1x66", "seatbid": [ { "bid": [ { "id": "37Td8Gbw1Lr8161bA4B", "impid": "1", "price": 0.075, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com", "google.com" ], "crid": "test_creative_id_156129", "cat": [ "IAB22" ], "w": 320, "h": 50, "language": "es", "slotinpod": 0, "cattax": 1, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "exchange_deal_type": 0, "event_notification_token": { "payload": "token" }, "billing_id": "61560909063" } } ], "seat": "4778:9251:780612" } ], "cur": "USD" }
Beispiel anzeigen
Serialisierte Antwortad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 226722 billing_id: 78614473201 currency: "USD" } click_through_url: "google.com" attribute: 105 buyer_creative_id: "test_creative_id_827359" width: 336 height: 280 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" }
Wichtig:Die in den Beispielen dargestellten Protobuf-Nachrichten sind hier als visuell lesbarer Text dargestellt. So werden die Nachrichten jedoch nicht über das Netzwerk gesendet. Wenn Sie das Google- oder OpenRTB-Protobuf-Format verwenden, werden nur serialisierte BidResponse-Nachrichten akzeptiert.
Mit dem folgenden C++-Code können Sie eine BidResponse
-Nachricht erstellen und serialisieren:
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
In Ihrer Gebotsantwort wird das Creative angegeben, das ausgeliefert werden soll, wenn Ihr Gebot den Zuschlag erhält. Ihr Gebot muss eines der unterstützten Anzeigenformate (AMP, Video, nativ) enthalten. In diesem Beispiel geben wir das Creative über das Feld html_snippet
an.
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
BidResponse.seatbid.bid.amp_ad_url
- Video
BidResponse.seatbid.bid.adm
- Native App
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 enthalten, der in die Webseite eingefügt wird. Dadurch wird die Anzeige beim Laden der Seite abgerufen und gerendert. Das HTML-Snippet muss so erstellt werden, dass die Anzeige (Banner oder Interstitial) in einem iFrame korrekt gerendert wird und die richtige Größe für den Anzeigenblock hat, auf den Sie bieten.
Außerdem muss die in der Gebotsantwort angegebene Anzeigengröße genau mit einer der Größenkombinationen in der Gebotsanfrage übereinstimmen, wenn Folgendes zutrifft:
- Eine Anzeige ist ein normales Banner (kein Video-, natives oder Interstitial-Anzeigenformat).
- Der Bieter hat die Größe in der Gebotsantwort angegeben. Eine Größendeklaration ist immer dann 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 beliebigem gültigen HTML-Code angeben, der richtig gerendert wird. Beachten Sie jedoch die Einschränkungen bei der Angabe des Felds crid
im Abschnitt Create BidResponse-Nachricht.
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 beliebige Daten zur Impression an Ihre eigenen Server zurückgeben.
Die meisten Richtlinien für HTML-Snippets, die in Gebotsantworten zurückgegeben werden, gelten auch für Drittanbieteranzeigen. Weitere Informationen finden Sie in den Richtlinien für das Authorized Buyers-Programm, den Anforderungen für die Anzeigenbereitstellung durch Drittanbieter und unter Anzeigen mit Klick-URLs deklarieren.
Makros angeben
Makros sind formatierter Text, der in einige Felder für Gebotsanfragen eingebettet ist und URLs enthält, die bei der Anzeigenauslieferung 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
Für AMP-Creatives werden nur die Google-spezifischen Makros
WINNING_PRICE
undWINNING_PRICE_ESC
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 beispielsweise ein Makro als Teil eines HTML-Snippets einfügen, indem Sie ${MACRO}
in die URL einbetten, über die das Creative abgerufen wird. MACRO
ist eines der in der OpenRTB-Spezifikation beschriebenen unterstützten Makros.
Google RTB-Makros
Google unterstützt neben den in der OpenRTB-Spezifikation aufgeführten Makros auch zusätzliche Makros. Diese sind anders formatiert und werden in eine URL eingebettet als %%MACRO%%
angezeigt. In der folgenden Tabelle werden diese Makros beschrieben:
Makro | Beschreibung |
---|---|
ADVERTISING_IDENTIFIER |
Käufer können beim Rendern von Impressionen die iOS-IDFA oder die Android-Werbe-ID erhalten. Weitere Informationen finden Sie unter Werbetreibenden-IDs entschlüsseln. |
CACHEBUSTER |
Eine Stringdarstellung einer zufälligen, vorzeichenlosen, vier Byte großen Ganzzahl. |
CLICK_URL_UNESC |
Die nicht maskierte Klick-URL für die Anzeige. Im Snippet sollte direkt nach dem Makro eine entschlüsselte Version der Drittanbieter-Klick-URL folgen. Wenn die Klick-URL des Drittanbieters beispielsweise <a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Bei der Anzeigenbereitstellung wird der Creative-Code folgendermaßen 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 URL für Klicks auf die Anzeige, die mit einem Escape-Zeichen versehen ist. Verwenden Sie dieses Makro anstelle von 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 der Creative-Code folgendermaßen erweitert: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> Dadurch wird der Klick bei Sie können nach |
CLICK_URL_ESC_ESC |
Die doppelt maskierte URL für die Anzeige. Verwenden Sie dieses Makro anstelle von 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 für die Gebotsanfrage kein SSL erforderlich ist, oder auf 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. Wurde durch das SITE-Makro ersetzt, das dieselbe Funktionalität 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 lautet:
Wenn ein Creative beispielsweise |
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 Um dieses Makro zu parsen, müssen Sie eine Anwendung implementieren, die Preisbestätigungen entschlüsselt. Weitere Informationen finden Sie auf der Seite Preisbestätigungen entschlüsseln. |
WINNING_PRICE_ESC |
WINNING_PRICE mit URL-Escaping |
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-Funktion in Makros wird das folgende 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, wobeiXX
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.
- Sie können die in diesem Feld angegebenen blockierten Kategorien mit denjenigen vergleichen, die für Ihre eingereichten Creatives im Feld
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
- In der Praxis wird diese Einstellung immer auf
true
festgelegt, da Google SSL-Unterstützung für alle Creatives erfordert.
- In der Praxis wird diese Einstellung immer auf
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. Bei zulässigen Funktionen wie dem Anbietertyp darf eine Anzeige nur zurückgegeben werden, wenn der Anbietertyp in der Liste allowed_vendor_type
in BidRequest
enthalten ist. 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 die Felder BidResponse.seatbid.bid.attr
, BidResponse.seatbid.bid.cat
und entweder BidResponse.seatbid.bid.adomain
oder BidResponse.seatbid.bid.adm_native.link.url
in BidResponse
korrekt festlegen. Wenn für eine Anzeige mehrere Werte für diese Felder gelten, müssen Sie alle angeben. Weitere Informationen finden Sie in den Kommentaren zu diesen Feldern in der BidResponse
-Protokollpufferdefinition.
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 in mobilen App-Umgebungen anbieten.
Zu den unterstützten Anzeigenformaten gehören 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
Beispiel anzeigen
Serialisierte Antwortid: "8L85Di7e9374c3jriwo2W0" seatbid { bid { id: "0L7hx7783rjD1hT81FH" impid: "1" price: 0.4000000059604645 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_192654" w: 300 h: 50 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" billing_id: 70614819650 skadn { version: "3.0" network: "Y8HK1z22" campaign: "72382716" itunesitem: "953637916" sourceapp: "com.google.testapp" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } skadn_opts { always_open_appstore: true } } app_promotion_type: INSTALLS } } seat: "4095:5416:758587" } cur: "USD" [com.google.doubleclick.bid_response] { processing_time_ms: 16 }
Beispiel anzeigen
{ "id": "8L85Di7e9374c3jriwo2W0", "seatbid": [ { "bid": [ { "id": "0L7hx7783rjD1hT81FH", "impid": "1", "price": 0.4000000059604645, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_192654", "w": 300, "h": 50, "burl": "https://test.com/imp?id=123456", "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "billing_id": "70614819650", "skadn": { "version": "3.0", "network": "Y8HK1z22", "campaign": "72382716", "itunesitem": "953637916", "sourceapp": "com.google.testapp", "fidelities": [ { "fidelity": 0, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" }, { "fidelity": 1, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } ], "skadn_opts": { "always_open_appstore": 1 } }, "app_promotion_type": 1 } } ], "seat": "4095:5416:758587" } ], "cur": "USD", "ext": { "processing_time_ms": 16 } }
Beispiel anzeigen
Serialisierte Antwortad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 44095 billing_id: 99718422589 } click_through_url: "google.com" attribute: 47 attribute: 50 category: 7 buyer_creative_id: "test_creative_id_997551" advertiser_name: "Google" width: 300 height: 250 impression_tracking_url: "https://test.com/imp?id=123456" skadn { version: "4.0" network: "DofiF4X5" itunesitem: "448730563" sourceapp: "195751234" fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "0KXE97ri9xnW9M10NDg64r014MsN7SO5R11N29oe8h8Cuao3K477i9dFH61bKny28iA6337A6EK6T3fgR9p9EJK12qvaY96E" } fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "EF1Vj82st371O79029Q9067AL00972U3NqNG9u295r8B4681c12Se2jk34XSR8404681c9WGa9a69779CQ87o9T81Y85198C" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 13
App-Interstitial
Beispiel anzeigen
Serialisierte Antwortid: "6700Z3L2o0zSw9g8IqmiQ5" seatbid { bid { id: "0UBHDN63xQ8hj1F8184" impid: "1" price: 0.016728 adid: "test_creative_id_179418" adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_179418" cat: "IAB13-7" w: 300 h: 600 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { billing_id: 14443955188 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "2054:4176:757161" group: false } bidid: "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q" cur: "USD"
Beispiel anzeigen
{ "id": "6700Z3L2o0zSw9g8IqmiQ5", "seatbid": [ { "bid": [ { "id": "0UBHDN63xQ8hj1F8184", "impid": "1", "price": 0.016728, "adid": "test_creative_id_179418", "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_179418", "cat": [ "IAB13-7" ], "w": 300, "h": 600, "burl": "https://test.com/imp?id=123456", "ext": { "billing_id": "14443955188", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } } } ], "seat": "2054:4176:757161", "group": 0 } ], "bidid": "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q", "cur": "USD" }
Beispiel anzeigen
Serialisierte Antwortad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 80117 min_cpm_micros: 0 billing_id: 12608068331 deal_id: 0 } click_through_url: "google.com" attribute: 47 buyer_creative_id: "test_creative_id_266407" advertiser_name: "Google" width: 756 height: 384 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 11
Video-Interstitial in Apps
Beispiel anzeigen
Serialisierte Antwortid: "79N7F1708654i75q3k69j1" seatbid { bid { id: "1gR655162hOsH9q3X6R" impid: "1" price: 2.3833 adid: "test_creative_id_648299" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_648299" attr: VIDEO_IN_BANNER_AUTO_PLAY w: 1920 h: 1080 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 11004606416 skadn { version: "4.0" network: "O5O88B57" itunesitem: "509167749" nonce: "" sourceapp: "com.google.testapp" timestamp: "OMITTED" signature: "OMITTED" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } sourceidentifier: "1" } app_promotion_type: INSTALLS } } seat: "1061:9160:833989" } bidid: "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp" cur: "USD"
Beispiel anzeigen
{ "id": "79N7F1708654i75q3k69j1", "seatbid": [ { "bid": [ { "id": "1gR655162hOsH9q3X6R", "impid": "1", "price": 2.3833, "adid": "test_creative_id_648299", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_648299", "attr": [ 6 ], "w": 1920, "h": 1080, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "11004606416", "skadn": { "version": "4.0", "network": "O5O88B57", "itunesitem": "509167749", "nonce": "", "sourceapp": "com.google.testapp", "timestamp": "OMITTED", "signature": "OMITTED", "fidelities": [ { "fidelity": 0, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" }, { "fidelity": 1, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } ], "sourceidentifier": "1" }, "app_promotion_type": 1 } } ], "seat": "1061:9160:833989" } ], "bidid": "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp", "cur": "USD" }
Beispiel anzeigen
Serialisierte Antwortad { adslot { id: 1 max_cpm_micros: 2454000 billing_id: 95400492935 deal_id: 1 } click_through_url: "google.com" attribute: 22 attribute: 105 buyer_creative_id: "test_creative_id_716344" width: 0 height: 0 video_vast_xml: "OMITTED_VAST_XML" event_notification_token: "token" skadn { version: "4.0" network: "113tdmXM" itunesitem: "460184775" sourceapp: "751592940" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "7m3PDLV778PZ741T2I3561kkCW3UjIp5p63989cP311iiZ2445v20HP5ymfD8ThYO7437h22075h4h9O21S8A08U1kw3qis2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "28X90AX01Z762a3W92186a40Eb4J8ekACsYFo55J8vD445f5pcA80MH45753Iy887596gK8ax0s55ndC23eg0V7P862yS240" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 51
Native App
Beispiel anzeigen
Serialisierte Antwortid: "96Z599PGNvp7Mr99138Fm0" seatbid { bid { id: "NQb32Ge7Rtt84wFn2p8" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB13-7" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" billing_id: 29846056590 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } bid { id: "4vwb23qm6iqU6w6G978" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB21" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "4528:1161:591635" group: false } bidid: "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC" cur: "USD"
Beispiel anzeigen
{ "id": "96Z599PGNvp7Mr99138Fm0", "seatbid": [ { "bid": [ { "id": "NQb32Ge7Rtt84wFn2p8", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB13-7" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "billing_id": "29846056590", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" }, { "id": "4vwb23qm6iqU6w6G978", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB21" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" } ], "seat": "4528:1161:591635", "group": 0 } ], "bidid": "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC", "cur": "USD" }
Beispiel anzeigen
Serialisierte Antwortad { adslot { id: 1 max_cpm_micros: 158000 billing_id: 41106584355 deal_id: 1 } click_through_url: "google.com" attribute: 70 buyer_creative_id: "test_creative_id_251451" advertiser_name: "Google" native_ad { headline: "Luxury Mars Cruises" body: "Visit the planet in a luxury spaceship." call_to_action: "Book today" advertiser: "Galactic Luxury Cruises" image { url: "https://native.test.com/image?id=123456" width: 1200 height: 222 } app_icon { url: "https://native.test.com/icon?id=123456" width: 512 height: 512 } star_rating: 4.300000190734863 click_link_url: "https://www.google.com" } impression_tracking_url: "https://test.com/imp?id=123456" impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" skadn { version: "4.0" network: "l6x39K4z" itunesitem: "731305960" sourceapp: "627009739" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "b0USXkmg02Q3v6p301kYOHG36CCOWWdEo52RHRttB9t8PTNi79qL17E4D6h7UeUSuq479oTK13G2Ev34MJlU86C5vY1SMVw2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "4Cf4NH6239z9f3wa8j6420Z7H0UISYxyxN5720444dkq6457I5FY0Jg8bk1xge2P8YgiDp74l2738136v2g1A8D50331IRm0" } source_identifier: 1 } click_tracking_urls: "https://google.com/rtb/click?imp_id=55d2112c-4947-4da5-bc37-b79ebf4577dd" advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 63
Webvideo
Beispiel anzeigen
Serialisierte Antwortid: "b2F6m05a9d83V7I35iw415" seatbid { bid { id: "Ob7259K5679O36pMt00" impid: "1" price: 1.52 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 47460168025 } } bid { id: "0890di791A75n9R13jM" impid: "1" price: 1.2 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } } } seat: "2121:7826:598388" } cur: "USD"
Beispiel anzeigen
{ "id": "b2F6m05a9d83V7I35iw415", "seatbid": [ { "bid": [ { "id": "Ob7259K5679O36pMt00", "impid": "1", "price": 1.52, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "47460168025" } }, { "id": "0890di791A75n9R13jM", "impid": "1", "price": 1.2, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" } } } ], "seat": "2121:7826:598388" } ], "cur": "USD" }
Beispiel anzeigen
Serialisierte Antwortfad { adslot { id: 1 max_cpm_micros: 68340760 min_cpm_micros: 0 billing_id: 75752641104 deal_id: 0 } click_through_url: "google.com" vendor_type: 145 attribute: 47 attribute: 8 video_url: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" buyer_creative_id: "test_creative_id_877383" advertiser_name: "Google" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 17
Mobiles Webbanner für Bieter auf Anzeigenplattform
Beispiel anzeigen
Serialisierte Antwortid: "l30Zu42070Man1Z5u751yG" seatbid { bid { id: "4X6uu65F9J3m467C571" impid: "1" price: 0.17 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_941528" w: 320 h: 50 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" impression_tracking_url: "https://test.com/impression?id=123456" event_notification_token { payload: "token" } billing_id: 50962964480 } } seat: "7632:7504:809671" } bidid: "II638Xkf-6432F06d-VGu8-27B4407D136w" [com.google.doubleclick.bid_response] { processing_time_ms: 70 }
Beispiel anzeigen
{ "id": "l30Zu42070Man1Z5u751yG", "seatbid": [ { "bid": [ { "id": "4X6uu65F9J3m467C571", "impid": "1", "price": 0.17, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_941528", "w": 320, "h": 50, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456", "https://test.com/impression?id=123456" ], "event_notification_token": { "payload": "token" }, "billing_id": "50962964480" } } ], "seat": "7632:7504:809671" } ], "bidid": "II638Xkf-6432F06d-VGu8-27B4407D136w", "ext": { "processing_time_ms": 70 } }