Obsługa aukcji dla wielu sprzedawców za pomocą zapośredniczenia w ramach Protected Audience API

Platformy reklamowe po stronie sprzedawcy zwykle korzystają z różnych źródeł popytu na reklamy, aby zoptymalizować przychody z reklam. W przypadku zapośredniczenia reklam sieć reklamowa lub usługa wywołuje wiele sieci reklamowych, aby określić najlepszą reklamę dla danego boksu reklamowego. Ta propozycja opisuje, jak można rozszerzyć interfejs Protected Audience API na Androida, aby stosować w nim funkcję pośrednictwa w ramach kaskady w sposób zapewniający ochronę prywatności. Obecnie sieci reklamowe oferują deweloperom aplikacji różne sposoby pośredniczenia aukcji reklam pochodzących od wielu sprzedawców reklam:

  1. Zapośredniczenie kaskadowe: deweloperzy aplikacji definiują uporządkowaną listę sieci reklamowych, często według historycznych eCPMs dla danej sieci. Ta lista nazywa się łańcuchem pośrednictwa. Platforma zapośredniczenia dewelopera aplikacji korzysta z tej listy, aby wywoływać sieci reklamowe w kolejności, w jakiej są wymienione, i określać odpowiednie źródła popytu na reklamy.
  2. Automatyczne zapośredniczenie: deweloper aplikacji konfiguruje wiele sieci reklamowych, aby uczestniczyły w ustalaniu stawek za wyświetlanie reklam. Te sieci mogą określać stawki w czasie rzeczywistym na podstawie tego, jak oceniają daną możliwość.
  3. Zapośredniczenie hybrydowe: połączenie kaskady i programowego zapośredniczenia.

Zapośredniczenie kaskadowe

W przypadku zapośredniczenia kaskadowego, gdy pojawi się możliwość wyświetlenia reklamy, pakiet SDK reklam wysyła żądanie do swojego serwera zaplecza. Zamiast odpowiedzi na żądanie w postaci zwycięskiego kreacji reklamy serwer zwraca łańcuch zapośredniczenia zawierający listę sieci reklamowych uporządkowaną według historycznych wartości eCPM.

Schemat modelu zapośredniczenia kaskadowego Rysunek 1. Model zapośredniczenia kaskadowego.

W tradycyjnym modelu kaskadowym pakiet SDK reklam wywołuje każdą sieć reklamową (lub własny pakiet SDK aukcji) w kolejności określonej przez łańcuch zapośredniczenia. Jeśli sieć reklamowa może zrealizować żądanie reklamy, renderuje reklamę. W przeciwnym razie żądanie jest wysyłane do następnej sieci w łańcuchu. Ten proces jest powtarzany, dopóki prośba nie zostanie spełniona lub łańcuch nie zostanie wyczerpany.

Zapośredniczenie kaskadowe jest często optymalizowane przez regularne zmienianie kolejności łańcucha zapośredniczenia na podstawie ponownej oceny eCPM z własnych źródeł reklam.

Automatyzacja za pomocą sieci reklamowych

Automatyczne zapośredniczenie (znane też jako „licytowanie w nagłówku”) to alternatywa dla korzystania z historycznego eCPM do określania, która sieć reklamowa ma szansę wyświetlić żądanie reklamy. W przypadku automatyzacji pośrednictwa dostawcy używają zamiast tego bieżących wartości stawek, aby znaleźć reklamę zwycięską.

Diagram modelu zapośredniczenia programowego

Rysunek 2. Model automatycznego pośrednictwa

Mediacja hybrydowa

Niektóre rozwiązania programowego zapośredniczenia łączą sieci reklamowe w hybrydowym trybie kaskady i określania stawek, aby zapewnić większą kontrolę nad reklamą, a zarazem korzystać z zalet korzystania z aktualnych wartości eCPM w celu maksymalizacji przychodów z uczestniczących sieci reklamowych.

W modelach hybrydowych sieci reklamowych i dostawcy usług zapośredniczenia mogą zapewnić deweloperom aplikacji większą elastyczność dzięki połączeniu elementów kaskady i ustalania stawek w czasie rzeczywistym. Modele hybrydowe umożliwiają deweloperom aplikacji konfigurowanie sieci reklamowych na podstawie historycznych wartości eCPM, co daje im możliwość wyświetlania reklamy przed uruchomieniem określania stawek w czasie rzeczywistym w uczestniczących sieciach w celu wykorzystania możliwości reklamowych.

Zapośredniczenie kaskadowe Protected Audience

Interfejs Protected Audience API na Androida obsługuje zapośredniczenie kaskadowe dzięki prowadzeniu wielu aukcji, z których każda dotyczy osobnego węzła w grafie zapośredniczenia. Jeśli w aukcji nie ma zwycięzcy, wywoływany jest następny węzeł sieci aukcji, aż do wyczerpania łańcucha. Proces zapośredniczenia kaskadowego:

  1. Pakiet SDK zapośredniczenia pobiera łańcuch zapośredniczenia z urządzenia końcowego serwera reklam kontekstowych, który może zwracać reklamy kontekstowe lub łańcuchy zapośredniczenia.
  2. Jeśli punkt końcowy serwera reklam wyświetla łańcuch zapośredniczenia, pakiet SDK zapośredniczenia kolejno sprawdza każdy element łańcucha, wywołując pakiet SDK danej sieci reklamowej, aby przeprowadzić selekcję reklam kontekstowych i remarketingowych. Każdy element w łańcuchu reprezentuje żądanie sieci reklamowej dotyczące zakupu miejsca na reklamę po określonej cenie za określoną liczbę wyświetleń, kliknięć lub czas reklamowy.
  3. Jeśli żaden z elementów zamówienia w łańcuchu nie wybierze reklamy zwycięskiej, framework zapośredniczenia SDK może wyświetlić reklamę z własnej sieci reklamowej, korzystając z wyboru reklamy w ramach chronionej listy odbiorców, który uwzględnia zarówno reklamy remarketingowe, jak i kontekstowe.

Schemat zapośredniczenia kaskadowego Protected Audience

Rysunek 3. Pośrednictwo kaskadowe z interfejsem Protected Audience API.

Powyższy diagram przedstawia przykład algorytmu zapośredniczenia kaskadowego, który może być implementowany przez pakiet SDK zapośredniczenia, ale bez możliwości optymalizacji przez sieć reklamową własnego wydawcy. Interfejs Protected Audience API umożliwia optymalizację sieci reklamowej za pomocą własnych danych, ponieważ pozwala na łańcuchowe tworzenie procesów wyboru reklam i zgłaszanie zwycięskich wyświetleń.

Wynik AdSelection

Typ zwracanej wartości funkcji selectAds() to obiekt AdSelectionOutcome. AdSelectionOutcome zawiera URI renderowania zwycięskiej reklamy i AdSelectionId, czyli nieprzejrzysty typ liczbowy, który identyfikuje kreację reklamy zwycięskiego elementu zamówienia.

AdSelectionOutcome {
  Uri renderUri;
  Long AdSelectionId;
}

AdSelectionId działa jak wskaźnik do AdSelectionOutcome. Obecnie parametr AdSelectionId jest przekazywany do metody reportResult() jako parametr ReportImpressionInput, aby ułatwić identyfikację właściwych reklam, w przypadku których wywoływane są metody reportWin()reportResult().

Propozycja łańcucha wyborów reklam

Proponujemy przeciążenie funkcji selectAds() funkcją AdSelectionFromOutcomesConfig.

val config = AdSelectionFromOutcomesConfig.Builder()
        .setSeller(seller)
        .setAdSelectionIds(listOf(outcome1pAdSelectionId))
        .setSelectionSignals({"bid_floor": bidFloorOfNextNetworkInline})
        .setSelectionLogicUri(selectionLogicUri)
        .build()
adSelectionClient.selectAds(config)

Umożliwia to pakietowi SDK do zapośredniczenia porównanie stawki reklamy zwycięskiej z minimalną stawką następnej sieci.

Przykład 1:

Przykład 2:

Raportowanie zwycięskich wyświetleń

Jeśli zwycięzca znajduje się w grupie selectAds(AdSelectionFromOutcomes), to właśnie ta reklama wygrywa zapośredniczenie. Następnie wywoływana jest funkcja reportImpression z identyfikatorem selekcji reklamy zwycięskiej reklamy z poziomu selectAds(AdSelectionFromOutcomes) i odpowiadającej jej AdSelectionConfig.

Jeśli zwycięzca zostanie zwrócony z poziomu selectAds(AdSelectionConfig) w przypadku dowolnej sieci, zostanie wywołana funkcja reportImpression z identyfikatorem i konfiguracją wyboru reklamy z tego wywołania.

Uruchamianie zapośredniczenia kaskadowego

Oto kolejność operacji w ramach procesu zapośredniczenia kaskadowego.

  1. Wykonaj selekcję reklam z użyciem własnych danych.
  2. Przejdź przez łańcuch zapośredniczenia. W przypadku każdej sieci zewnętrznej:
    1. Utwórz AdSelectionFromOutcomeConfig, w tym outcomeId firmy własnej i stawkę minimalną pakietu SDK firmy zewnętrznej.
    2. Wywołaj funkcję selectAds() z wartością config z poprzedniego kroku.
    3. Jeśli wynik nie jest pusty, zwracaj reklamę.
    4. Wywołaj metodę selectAds() adaptera sieci obecnego pakietu SDK. Jeśli wynik nie jest pusty, zwraca reklamę.
  3. Jeśli w łańcuchu nie zostanie znaleziony zwycięzca, zwracaj reklamę własnego źródła.

Sprawdzone metody

uruchamianie aukcji kontekstowych przed optymalizacją własnych danych,

Popyt w ramach remarketingu może generować wysokie stawki, które mogą przynieść korzystne wyniki w łańcuchu pośrednictwa. Obcinanie to proces, który często służy do włączenia optymalizacji za pomocą własnych danych poprzez dostosowanie listy odbiorców remarketingu.

Zapotrzebowanie na remarketing w interfejsie Protected Audience API jest dostępne tylko po stronie klienta w ramach aukcji Protected Audience. Może to utrudnić włączenie optymalizacji własnych danych po stronie serwera. Aby ograniczyć problemy z optymalizacją pierwszorzędową, najpierw przeprowadź aukcję kontekstową, a potem optymalizację pierwszorzędową na podstawie zwycięskiego wyniku reklamy, zgodnie z opisem na tej stronie.

Krótkie łańcuchy zapośredniczenia na urządzeniu

Aby zapewnić optymalną wydajność, łańcuchy pośrednictwa na urządzeniu powinny być krótkie. Koszt obliczania na urządzeniu może być proporcjonalny do liczby aukcji ocenianych w ramach łańcucha zapośredniczenia. Innymi słowy, im więcej węzłów, tym więcej wymagań dotyczących cyklu obliczeniowego i większy czas oczekiwania. Podczas przekazywania węzłów do oceny mediacji na urządzeniu weź pod uwagę wpływ opóźnień na przychody.

Uwagi dodatkowe

Interfejs Protected Audience API nie oferuje kompleksowego rozwiązania do zapośredniczenia wielu boksów reklamowych. Każdy boks reklamowy musi być przetwarzany niezależnie.

Interfejs Protected Audience Mediation API obsługuje zapośredniczenie kaskadowe i ograniczone zapośredniczenie programowe. Więcej informacji o obsługiwaniu dodatkowych przypadków użycia automatyzacji mediów podamy w przyszłości.

Wybór reklam w Protected Audience jest wykonywany po pobraniu reklam kontekstowych, więc wywołanie interfejsu Protected Audience API może wpłynąć na całkowity czas oczekiwania na żądania reklam.