Reklamy korzystające z pakietu SDK kupującego używają kreacji renderowanych przez Twój własny pakiet SDK.
Zasoby reklamowe w aplikacjach mobilnych pochodzące od wydawców, którzy zintegrowali Twój adapter określania stawek z aplikacją, mogą akceptować stawki za pomocą formatu reklam renderowanego przez pakiet SDK kupującego. Sposób renderowania zależy od implementacji pakietu SDK oraz parametru SDKRenderedAd
przesłanego w odpowiedzi na stawkę.
Możesz ustalić stawkę obejmującą reklamę wyrenderowaną przez pakiet SDK kupującego lub dowolny inny format reklamy obsługiwany przez pakiet SDK do reklam mobilnych Google, ale wszystkie stawki zawierające oba te formaty zostaną odfiltrowane.
Wymagania
Reklamy SDK kupujących są dostępne dla zatwierdzonych kupujących. Ten format wymaga dodatkowego wysiłku ze strony Ciebie i wydawcy. Aby skonfigurować konto na potrzeby reklam z pakietu SDK kupujących, skontaktuj się z technicznym menedżerem konta. Następnie możesz zaimplementować adapter określania stawek, który umożliwia komunikację pakietu SDK z pakietem SDK do reklam mobilnych Google. Wydawca musi zintegrować pakiet SDK i adapter ze swoimi aplikacjami mobilnymi.
Zalecamy przesłanie kreacji do sprawdzenia przed uwzględnieniem ich w odpowiedzi na stawkę. Jeśli nie znasz typu kreacji, który należy podać podczas ustalania stawki, skontaktuj się z technicznym menedżerem konta.
Jeśli pytanie o stawkę obsługuje ten format reklamy, możesz określić reklamę, która jest renderowana za pomocą Twojego pakietu SDK, ustawiając pole sdk_rendered_ad
w odpowiedzi na stawkę.
Pytanie o stawkę
Pytania o stawkę dotyczące zasobów reklamowych w aplikacjach mobilnych zawierają szczegółowe informacje o pakietach SDK i adapterach w aplikacji wydawcy, których możesz używać do renderowania. Są one zawarte w tych polach:
- Identyfikator pakietu SDK
Przy użyciu pytania o stawkę możesz znaleźć parametr
id
, który musisz podać w odpowiedzi na stawkę za reklamę wyrenderowaną przez pakiet SDK kupującego.Zobacz te pola:
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
Więcej informacji o komunikacie
InstalledSdk
znajdziesz w przewodnikach po protokołach Google i OpenRTB.- Mapowanie jednostki reklamowej
Możesz użyć pytania o stawkę, aby odczytywać mapowania jednostek reklamowych pasujące do boksu stawki.
Zobacz te pola:
- Authorized Buyers:
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Authorized Buyers:
Więcej informacji o obiekcie
AdUnitMapping
znajdziesz w przewodnikach po protokołów Google i OpenRTB.- Bezpieczne sygnały
Zapoznaj się z obiektem Rozszerzony identyfikator, który jest standardowym rozszerzeniem służącym do przekazywania bezpiecznych sygnałów wybranych przez wydawcę.
Zobacz te pola:
- Authorized Buyers:
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
BidRequest.user.ext.eids.uids.id
- Authorized Buyers:
Więcej informacji o obiekcie
Extended Id
znajdziesz w przewodnikach po protokołów Google i OpenRTB.- Żądania testowe
W polu Pytanie testowe możesz się dowiedzieć, czy pytanie o stawkę jest testem.
Zobacz te pola:
- Authorized Buyers:
BidRequest.is_test
- OpenRTB:
BidRequest.test
- Authorized Buyers:
Więcej informacji o polu
Test
znajdziesz w przewodnikach po protokołach Google i OpenRTB.
Przykładowe pytanie o stawkę
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>"
...
}
Odpowiedź na stawkę
- Stawka miejsca
W obiekcie
BidResponse.seatbid.bid
wymagane są te pola:Authorized Buyers:
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.cid
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
Więcej informacji o komunikacie
SeatBid
znajdziesz w przewodnikach po protokołach Google i OpenRTB.
Odpowiedź na stawkę musi zawierać pole SdkRenderedAd
z tym elementem:
- Identyfikator pakietu SDK
W polu
id
podaj identyfikator pakietu SDK do renderowania reklamy.Znajdziesz go w tych polach w pytaniu o stawkę:
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
Więcej informacji o komunikacie
InstalledSdk
znajdziesz w przewodnikach po protokołach Google i OpenRTB.- Zadeklarowana reklama
Aby podać kreację, która spełnia wymagania
CreativeEnforcementSettings
pytania o stawkę i reprezentuje dane dotyczące renderowania reklamy, użyj poladeclared_ad
. W przypadku innych formatów reklam należy podać tylko jeden z tych formatów:html_snippet
,video_url
lubvideo_vast_xml
. W przypadku formatu reklamy natywnej należy podać tylko wartośćnative_response
.- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.declared_ad
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
Jeśli nie wypełnisz pola
declared_ad
, nie będziemy mogli sprawdzić kreacji i wszystkie stawki za nią zostaną odfiltrowane z aukcji.- Authorized Buyers:
- Renderowanie danych
W polu
rendering_data
podaj dane, które pakiet SDK kupującego może wykorzystać do renderowania reklamy.- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Authorized Buyers:
Stawki za reklamę z pakietu SDK kupującego muszą określać kreację w polu
declared_ad
. Zadeklarowana reklama musi dokładnie odzwierciedlać parametrrendering_data
.Oto przykładowy obiekt
SdkRenderedAd
:{ "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>", } }
Zalecamy, by przed przesłaniem kreacji do sprawdzenia uwzględnić je w odpowiedzi na stawkę za pomocą interfejsu API określania stawek w czasie rzeczywistym.
Więcej informacji o polach SdkRenderedAd
znajdziesz w przewodnikach po protokołach Google i OpenRTB.
Przykładowa odpowiedź na stawkę
Oto przykładowe odpowiedzi na stawkę dla każdego formatu reklamy:
Baner
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"
Pełnoekranowa
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"
Wideo z nagrodą
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"
Natywna
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"
Sprawdzanie kreacji
Kreacje są sprawdzane przed rozpoczęciem wyświetlania, by mieć pewność, że są zgodne z naszymi zasadami i ustawieniami wydawcy.
Kreacje możesz przesłać do sprawdzenia na 2 sposoby:
- Interfejs API określania stawek w czasie rzeczywistym (zalecany)
Aby przesłać kreacje do sprawdzenia, możesz użyć metody
buyers.creatives.create
interfejsu API określania stawek w czasie rzeczywistym.Interfejs API wymaga tylko jednego przesłania każdej kreacji i umożliwia sprawdzanie jej stanu.
- Odpowiedź na stawkę
Nowe kreacje możesz przesyłać bezpośrednio w odpowiedzi na stawkę.
Aby przesłać do sprawdzenia odpowiedź na stawkę z kreacją pakietu SDK kupującego, musisz użyć pola
declared_ad
obiektuSdkRenderedAd
.Kreacje przesłane w odpowiedzi na pytanie o stawkę są sprawdzane dopiero po uzyskaniu wielu stawek. Wszystkie stawki złożone przed zakończeniem sprawdzania są odfiltrowywane z aukcji. Aby sprawdzić stan kreacji po rozpoczęciu jej sprawdzania, możesz użyć interfejsu określania stawek w czasie rzeczywistym lub interfejsu API określania stawek w czasie rzeczywistym.
Więcej informacji znajdziesz w przewodniku po kreacjach.