Format reklamy SDK kupującego

Reklamy z pakietu SDK kupującego używają kreacji renderowanych przez Twój własny pakiet SDK.

Zasoby reklamowe w aplikacjach mobilnych wydawców, którzy zintegrowali określanie stawek może przyjmować stawki. z formatem reklamy renderowanej przez pakiet SDK kupującego. Sposób renderowania zależy od Implementacja pakietu SDK oraz SDKRenderedAd przesyłane do odpowiedź na pytanie o stawkę.

Stawkę możesz ustalać, uwzględniając reklamę renderowaną przez pakiet SDK kupującego lub dowolną inną reklamę. format obsługiwane przez pakiet SDK do reklam mobilnych Google, ale wszystkie stawki zawierające oba te elementy zostaną odfiltrowane.

Wymagania

Reklamy z pakietem SDK kupującego są dostępne dla zatwierdzonych kupujących. Ten format wymaga dodatkowych wysiłek wydawcy i wydawcy. Skontaktuj się z technicznym menedżerem konta, aby skonfigurować swoje konto pod kątem reklam SDK kupującego. Następnie możesz zaimplementować funkcję Określanie stawek za pomocą którego pakiet SDK może komunikują się z pakietem SDK do reklam mobilnych Google. Wydawca musi zintegrować pakietu SDK i adaptera do swoich aplikacji mobilnych.

Zalecamy przesłanie kreacji do opinia . Skontaktuj się z technicznym menedżerem konta jeśli w danym momencie nie znasz typu kreacji.

Jeśli pytanie o stawkę obsługuje ten format reklamy, możesz określić reklamę, która będzie się renderowała za pomocą pakietu SDK, ustawiając pole sdk_rendered_ad w stawce. odpowiedź.

Pytanie o stawkę

Pytania o stawkę dotyczące zasobów reklamowych aplikacji mobilnych zawierają szczegółowe informacje o pakietach SDK oraz w aplikacji wydawcy, których można używać do renderowania: pola:

Identyfikator pakietu SDK

Na podstawie pytania o stawkę możesz znaleźć wartość id, którą trzeba podać w stawce. odpowiedź na reklamę renderowaną przez pakiet SDK kupującego.

Zobacz te pola:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protokół Google RTB (wycofany): BidRequest.mobile.installed_sdk

Więcej informacji o wiadomości InstalledSdk znajdziesz w OpenRTB i Google przewodnikami po protokołach Google Cloud.

Mapowanie jednostki reklamowej

Pytań o stawkę możesz używać, aby odczytywać mapowania jednostek reklamowych pasujące do boksu stawki.

Zobacz te pola:

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • Protokół Google RTB (wycofany): BidRequest.AdSlot.ad_unit_mapping

Więcej informacji o obiekcie AdUnitMapping znajdziesz w OpenRTB i Google przewodnikami po protokołach Google Cloud.

Bezpieczne sygnały

Wydawcy mogą udostępniać licytującym bezpieczne sygnały. Możesz je czytać tutaj: Obiekt BuyerGeneratedRequestData OpenRTB lub z wycofanej usługi Google Obiekt SecureSignal protokołu RTB.

Zobacz te pola:

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • Protokół Google RTB (wycofany): BidRequest.AdSlot.SecureSignal.data

Więcej informacji o sposobie przedstawiania bezpiecznych sygnałów znajdziesz w OpenRTB i Google przewodnikami po protokołach Google Cloud.

Żądania testowe

Informacje w polu „Żądanie testowania” pozwalają sprawdzić, czy pytanie o stawkę test.

Zobacz te pola:

  • OpenRTB: BidRequest.test
  • Protokół Google RTB (wycofany): BidRequest.is_test

Więcej informacji o polu Test znajdziesz w OpenRTB i Google przewodnikami po protokołach Google Cloud.

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ę

W odpowiedzi na stawkę musisz wypełnić te pola:

  • OpenRTB:
    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.ext.billing_id
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h
  • Protokół Google RTB (wycofany):
    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height

Odpowiedź na stawkę musi też zawierać element SdkRenderedAd z parametrem :

Identyfikator pakietu SDK

W polu id podaj identyfikator pakietu SDK do renderowania reklamy.

Identyfikator znajdziesz w pytaniu o stawkę w tych polach:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protokół Google RTB (wycofany): BidRequest.mobile.installed_sdk

Więcej informacji o wiadomości InstalledSdk znajdziesz w OpenRTB i Google przewodnikami po protokołach Google Cloud.

Zgłoszona reklama

Użyj pola declared_ad, by wyświetlić kreację, która spełnia kryteria pytania o stawkę CreativeEnforcementSettings – wartość, którą określa reklama dane o renderowaniu. Tylko jedna z tych list: html_snippet, video_url, video_vast_xml lub Pole native_response powinno być wypełnione.

Jeśli nie wypełnisz pola declared_ad, nie będziemy mogli sprawdzić kreacji i wszystkie stawki za kreację zostaną odfiltrowane z aukcji.

Dane renderowania

W polu rendering_data podaj dane, które ma pakiet SDK kupującego wykorzystane do renderowania reklamy.

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • Protokół Google RTB (wycofany): BidResponse.ad.sdk_rendered_ad.rendering_data

Stawki umożliwiające wyświetlenie reklamy SDK kupującego muszą określać kreację w elemencie declared_ad . Zadeklarowana reklama musi dokładnie przedstawiać rendering_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>",
  }
}

Do przesyłania kreacji na potrzeby określania stawek w czasie rzeczywistym zalecamy używanie interfejsu Real-time Reporting API opinia .

Zobacz Google Przewodniki po protokole OpenRTB aby dowiedzieć się więcej o polach SdkRenderedAd.

Przykładowa odpowiedź na pytanie o stawkę

Oto przykładowe odpowiedzi na pytania o stawkę w przypadku poszczególnych formatów reklam:

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

Przed wyświetleniem kreacje są sprawdzane, abyśmy mieli pewność, że są zgodne z naszymi zasady i wydawca ustawieniach.

Kreacje możesz przesłać do sprawdzenia na 2 sposoby:

Interfejs API określania stawek w czasie rzeczywistym (zalecane)

Za pomocą buyers.creatives.create za pomocą interfejsu Real-timeReporting API w celu przesłać kreacje do sprawdzenia.

Interfejs API wymaga tylko jednego przesłania każdej kreacji i umożliwia sprawdzenie stan sprawdzania kreacji.

Odpowiedź na stawkę

Nowe kreacje możesz przesyłać bezpośrednio w odpowiedzi na stawkę.

Aby przesłać, musisz użyć pola declared_ad obiektu SdkRenderedAd odpowiedź na stawkę z kreacją pakietu SDK kupującego do sprawdzenia.

Kreacje przesłane w odpowiedzi na stawkę są sprawdzane dopiero po uzyskaniu większej liczby stawek. Wszystkie stawki złożone przed zakończeniem sprawdzania zostaną odfiltrowane z aukcji. Możesz skorzystać z interfejsu Określanie stawek w czasie rzeczywistym. lub Określanie stawek w czasie rzeczywistym API , aby sprawdzić stan kreacji po rozpoczęciu sprawdzania.

Zobacz przewodnik po kreacjach: .