Bei Anzeigen mit Käufer-SDK werden Creatives verwendet, die von Ihrem eigenen SDK gerendert werden.
Für Inventar in mobilen Apps von Publishern, die Ihren Gebotsadapter in ihre App einbinden, können Gebote mit dem vom Käufer-SDK gerenderten Anzeigenformat akzeptiert werden. Die Darstellung hängt von Ihrer SDK-Implementierung und dem SDKRenderedAd ab, das Sie in der Gebotsantwort einreichen.
Sie können ein Gebot abgeben, das entweder eine vom Käufer-SDK gerenderte Anzeige oder ein anderes vom Google Mobile Ads SDK unterstütztes Anzeigenformat enthält. Gebote, die beides enthalten, werden herausgefiltert.
Voraussetzungen
Anzeigen mit Käufer-SDK sind für genehmigte Käufer verfügbar. Dieses Format erfordert zusätzlichen Aufwand von Ihnen und dem Publisher. Wenden Sie sich an Ihren Technical Account Manager, um Ihr Konto für Anzeigen mit dem Käufer-SDK zu konfigurieren. Anschließend können Sie einen Gebotsadapter implementieren, damit Ihr SDK mit dem Google Mobile Ads SDK kommunizieren kann. Der Publisher muss Ihr SDK und Ihren Adapter in seine mobilen Apps einbinden.
Wir empfehlen, Creatives zur Überprüfung einzureichen, bevor Sie sie in eine Gebotsantwort aufnehmen. Wenden Sie sich an Ihren Technical Account Manager, wenn Sie den Creative-Typ zum Zeitpunkt des Gebots nicht kennen.
Wenn eine Gebotsanfrage dieses Anzeigenformat unterstützt, können Sie eine Anzeige angeben, die mit Ihrem SDK gerendert wird. Dazu legen Sie das Feld sdk_rendered_ad in der Gebotsantwort fest.
Gebotsanfrage
Gebotsanfragen für Inventar in mobilen Apps enthalten Details zu den SDKs und Adaptern in der App des Publishers, die Sie zum Rendern verwenden können. Diese sind in den folgenden Feldern enthalten:
- SDK-ID
Anhand der Gebotsanfrage können Sie die SDK-ID ermitteln, die Sie in der Gebotsantwort mit dem Feld
BidRequest.app.ext.installed_sdk.idangeben müssen.Weitere Informationen dazu finden Sie in der Referenzdokumentation zu
InstalledSdk.- Anzeigenblockzuordnung
Mit der Gebotsanfrage können Sie die Anzeigenblockzuordnungen finden, die mit dem Gebots-Slot übereinstimmen. Verwenden Sie dazu das Feld
BidRequest.imp.ext.ad_unit_mapping.Weitere Informationen dazu finden Sie in der Referenzdokumentation zu
AdUnitMapping.- Sichere Signale
Publisher können sichere Signale für Bieter freigeben. Sie finden sie unter
BidRequest.imp.ext.buyer_generated_request_data.data.Weitere Informationen dazu, wie sichere Signale in der
BuyerGeneratedRequestData-Referenzdokumentation dargestellt werden, finden Sie dort.- Testanfragen
Mit dem Feld
BidRequest.testkönnen Sie prüfen, ob die Gebotsanfrage ein Test ist.Weitere Informationen zu diesem Feld finden Sie in der Referenzdokumentation zu
BidRequest.
Beispiel für eine Gebotsanfrage
id: "<bid_request_id>"
imp {
id: "1"
banner {
w: 320
h: 50
...
}
...
adx_ext {
...
ad_unit_mapping {
keyvals {
key: "key_1"
value: "value_1"
}
keyvals {
key: "key_2"
value: "value_2"
}
...
format: FORMAT_BANNER
}
}
}
app {
...
adx_ext {
installed_sdk {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
sdk_version {
major: 1
minor: 2
micro: 30
}
adapter_version {
major: 1
minor: 2
micro: 3000
}
}
installed_sdk {
...
}
...
}
}
device {
...
}
user {
...
}
adx_ext {
eids {
source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
uids {
id: "<partner_signal_string>"
}
}
}
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
google_query_id: "<query_string>"
...
}
Gebotsantwort
Die folgenden Felder sind in der Gebotsantwort erforderlich:
BidResponse.seatbid.bid.adomainBidResponse.seatbid.bid.ext.billing_idBidResponse.seatbid.bid.cridBidResponse.seatbid.bid.wBidResponse.seatbid.bid.h
Außerdem muss in Ihrer Gebotsantwort BidResponse.seatbid.bid.ext.sdk_rendered_ad mit Folgendem ausgefüllt werden:
- SDK-ID
Verwenden Sie das Feld
id, um die ID für das SDK anzugeben, mit dem die Anzeige gerendert werden soll.Sie finden die ID in
BidRequest.app.ext.installed_sdk.- Angegebene Anzeige
Verwenden Sie
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad, um ein Creative bereitzustellen, das den Anforderungen inBidRequest.imp.ext.creative_enforcement_settingsentspricht und die Rendering-Daten der Anzeige repräsentiert. Es sollte nur eines der Felderhtml_snippet,video_url,video_vast_xmlodernative_responseausgefüllt werden.Wenn Sie
declared_adnicht ausfüllen, können wir das Creative nicht überprüfen und alle Gebote mit dem Creative werden aus der Auktion herausgefiltert.Weitere Informationen zur deklarierten Anzeige finden Sie in der
DeclaredAd-Referenzdokumentation.- Daten rendern
Verwenden Sie das Feld
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data, um die Daten für das Käufer-SDK bereitzustellen, mit denen Ihre Anzeige gerendert werden soll.Bei Geboten zum Platzieren einer Anzeige mit Käufer-SDK muss ein Creative im Feld
declared_adangegeben werden. Die deklarierte Anzeige muss dierendering_datakorrekt repräsentieren.Hier ein Beispiel für ein
SdkRenderedAd-Objekt:{ "id": "1234567", "rendering_data": "\xd58...,\xd4\x89\xd\xf9", "declared_ad": { "html_snippet": "<iframe src=\"https://example.com/ads?id=123& curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", } }
Wir empfehlen, die Real-time Bidding API zu verwenden, um Creatives zur Überprüfung einzureichen, bevor Sie sie in eine Gebotsantwort aufnehmen.
Weitere Informationen zu den SdkRenderedAd-Feldern finden Sie im OpenRTB-Leitfaden.
Beispiel für eine Gebotsantwort
Hier sind Beispielantworten für Gebote für die einzelnen Anzeigenformate:
Banner
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 99
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 320
h: 50
burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
html_snippet: "<!doctype html> <html> ... </html>"
}
}
event_notification_token {
payload: "<payload_string>"
}
billing_id: 141763360450
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
Interstitial
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
Video mit Prämie
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 412
h: 775
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
Nativ
id: "<bid_request_id>"
seatbid {
bid {
id: "<bidder_generated_response_id>"
impid: "1"
price: 400
adomain: "https://play.google.com/store/apps/details?id=com.test.app"
cid: "<billing_id>"
crid: "<creative_id>"
w: 1200
h: 627
adx_ext {
sdk_rendered_ad {
id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
rendering_data: "<rendering_data_string>"
declared_ad {
click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
native_response {
...
assets {
id: 1
title {
text: ""
}
}
assets {
id: 2
data {
value: "<some_string>"
}
}
assets {
id: 3
data {
value: "View now"
}
}
assets {
id: 4
img {
url: "<valid_image_url>"
w: 1200
h: 627
type: 3
}
}
assets {
id: 5
img {
url: "<valid_image_url>"
w: 100
h: 100
type: 1
}
}
assets {
id: 6
data {
value: ""
}
}
assets {
id: 7
data {
value: "<some_string>"
}
}
link {
url: "<destination_link>"
}
}
}
}
event_notification_token {
payload: "<payload_string>"
}
}
}
}
bidid: "<bidder_generated_response_id>"
cur: "USD"
Creative-Überprüfung
Creatives werden vor der Auslieferung überprüft, um sicherzustellen, dass sie unseren Richtlinien und den Einstellungen der Publisher entsprechen.
Es gibt zwei Möglichkeiten, Creatives zur Überprüfung einzureichen:
- Real-time Bidding API (empfohlen)
Mit der Methode
buyers.creatives.createder Real-time Bidding API können Sie Creatives zur Überprüfung einreichen.Für die API ist nur eine Einreichung pro Creative erforderlich und Sie können den Status der Creative-Überprüfung abrufen.
- Gebotsantwort
Sie können neue Creatives direkt in der Gebotsantwort einreichen.
Sie müssen das Feld
declared_addesSdkRenderedAd-Objekts verwenden, um eine Gebotsantwort mit einem Buyer-SDK-Creative zur Überprüfung einzureichen.In der Gebotsantwort eingereichte Creatives werden erst nach vielen Geboten überprüft. Alle Gebote, die vor Abschluss der Überprüfung abgegeben werden, werden aus der Auktion herausgefiltert. Sie können den Status eines Creatives nach Beginn der Überprüfung über die Real-time Bidding-Benutzeroberfläche oder die Real-time Bidding API abrufen.
Weitere Informationen finden Sie im Leitfaden zu Creatives.