Anzeigenformat für Käufer-SDK

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. Wie sie gerendert werden, hängt von Ihrer SDK-Implementierung und dem SDKRenderedAd ab, das Sie in der Gebotsantwort senden.

Sie können ein Gebot mit einer vom Käufer-SDK gerenderten Anzeige oder einem anderen Anzeigenformat abgeben, das vom Google Mobile Ads SDK unterstützt wird. Gebote, die beides enthalten, werden jedoch herausgefiltert.

Voraussetzungen

Anzeigen mit Käufer-SDKs sind für genehmigte Käufer verfügbar. Dieses Format erfordert zusätzliche Arbeit von dir und dem Verlag. Wenden Sie sich an Ihren Technical Account Manager, um Ihr Konto für Anzeigen mit Käufer-SDKs zu konfigurieren. Sie können dann einen Gebotsadapter implementieren, mit dem Ihr SDK mit dem Google Mobile Ads SDK kommunizieren kann. Der Publisher muss dein SDK und deinen Adapter in seine mobilen Apps einbinden.

Wir empfehlen Ihnen, 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 der Gebotsabgabe nicht kennen.

Wenn eine Gebotsanfrage dieses Anzeigenformat unterstützt, können Sie eine Anzeige angeben, die mit Ihrem SDK gerendert wird. Legen Sie dazu 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 in den folgenden Feldern für das Rendering verwenden können:

SDK-ID

In der Gebotsanfrage finden Sie die SDK-ID, die Sie in der Gebotsanfrage im Feld BidRequest.app.ext.installed_sdk.id angeben müssen.

Weitere Informationen finden Sie in der InstalledSdk-Referenzdokumentation.

Anzeigenblockzuordnung

Anhand der Gebotsanfrage können Sie die Anzeigenblockzuordnungen ermitteln, die dem Gebotsslot mit dem Feld BidRequest.imp.ext.ad_unit_mapping entsprechen.

Weitere Informationen finden Sie in der AdUnitMapping-Referenzdokumentation.

Sichere Signale

Publisher können sichere Signale für Bieter freigeben. Sie finden sie in BidRequest.imp.ext.buyer_generated_request_data.data.

Weitere Informationen zur Darstellung sicherer Signale finden Sie in der BuyerGeneratedRequestData-Referenzdokumentation.

Testanfragen

Mit dem Feld BidRequest.test können Sie prüfen, ob es sich bei der Gebotsanfrage um einen Test handelt.

Weitere Informationen zu diesem Feld finden Sie in der BidRequest-Referenzdokumentation.

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.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

Außerdem muss Ihre Gebotsantwort BidResponse.seatbid.bid.ext.sdk_rendered_ad folgende Informationen enthalten:

SDK-ID

Geben Sie im Feld id die ID für das SDK an, damit die Anzeige gerendert werden kann.

Sie finden die ID unter BidRequest.app.ext.installed_sdk.

Angekündigte Anzeige

Verwenden Sie BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad, um ein Creative bereitzustellen, das den Anforderungen in BidRequest.imp.ext.creative_enforcement_settings entspricht und repräsentativ für die Rendering-Daten der Anzeige ist. Es sollte nur eines der folgenden Felder ausgefüllt sein: html_snippet, video_url, video_vast_xml oder native_response.

Wenn Sie declared_ad nicht ausfüllen, können wir das Creative nicht überprüfen und alle Gebote mit dem Creative werden aus der Auktion herausgefiltert.

Weitere Informationen zur angegebenen Anzeige finden Sie in der DeclaredAd-Referenzdokumentation.

Daten rendern

Geben Sie im Feld BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data die Daten an, die das Käufer-SDK zum Rendern Ihrer Anzeige verwenden soll.

Bei Geboten für die Auslieferung einer Anzeige mit Käufer-SDK muss im Feld declared_ad ein Creative angegeben werden. Die deklarierte Anzeige muss die rendering_data korrekt darstellen.

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 Beispielgebotsantworten für jedes Anzeigenformat:

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 des Publishers entsprechen.

Es gibt zwei Möglichkeiten, Creatives zur Überprüfung einzureichen:

Real-time Bidding API (empfohlen)

Sie können die Methode buyers.creatives.create der Real-time Bidding API verwenden, um Creatives zur Überprüfung einzureichen.

Die API erfordert nur eine Einreichung pro Creative und Sie können den Status der Überprüfung Ihres Creatives prüfen.

Gebotsantwort

Sie können neue Creatives direkt in der Gebotsantwort einreichen.

Sie müssen das Feld declared_ad des SdkRenderedAd-Objekts verwenden, um eine Gebotsantwort mit einem Käufer-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 wurden, 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 prüfen.

Weitere Informationen finden Sie im Creative-Leitfaden.