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. 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.id angeben 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.test kö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.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.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 in BidRequest.imp.ext.creative_enforcement_settings entspricht und die Rendering-Daten der Anzeige repräsentiert. Es sollte nur eines der Felder html_snippet, video_url, video_vast_xml oder native_response ausgefüllt werden.

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 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_ad angegeben werden. Die deklarierte Anzeige muss die rendering_data korrekt 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:

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.create der 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_ad des SdkRenderedAd-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.