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

Prześlij opinię

Platformy reklamowe sprzedaży detalicznej zwykle dywersyfikują źródła ofert reklamowych, aby optymalizować skuteczność pod kątem przychodów z reklam. Dzięki zapośredniczeniu reklam dana sieć lub usługa reklamowa wywołuje wiele sieci reklamowych, aby wybrać najlepszą reklamę dla danego boksu reklamowego. W ramach tej oferty wyjaśniamy, jak rozszerzyć interfejs Protected Audience API na Androida, aby wdrożyć funkcję zapośredniczenia kaskadowego w sposób zapewniający ochronę prywatności. Obecnie sieci reklamowe zapewniają deweloperom aplikacji różne sposoby zapośredniczenia w aukcjach reklam pochodzących od wielu sprzedawców:

  1. Zapośredniczenie kaskadowe: deweloperzy aplikacji definiują uporządkowaną listę sieci reklamowych, często posortowaną według historycznych wartości eCPMs w przypadku danej sieci. Jest to tzw. łańcuch zapośredniczenia. Platforma zapośredniczenia dewelopera aplikacji korzysta z tej listy do wywoływania sieci reklamowych w kolejności, w której są one wymienione, aby określić odpowiednie źródła ofert reklamowych.
  2. Automatyczne zapośredniczenie: deweloper aplikacji skonfigurował wiele sieci reklamowych na potrzeby określania stawek za możliwości reklamowe. Te sieci mogą ustalać stawki w czasie rzeczywistym na podstawie wartości możliwości.
  3. Zapośredniczenie hybrydowe: połączenie technik zapośredniczenia kaskadowego i zautomatyzowanego.

Zapośredniczenie kaskadowe

W zapośredniczeniu kaskadowym, gdy pojawia się możliwość wyświetlenia reklamy, pakiet SDK reklam wysyła żądanie do swojego serwera backendu. Zamiast odpowiadać na żądanie zwycięską reklamą, serwer w odpowiedzi przesyła łańcuch zapośredniczenia zawierający listę sieci reklamowych uporządkowanych według historycznego eCPM.

Schemat kaskadowego modelu zapośredniczenia
Rysunek 1. Kaskadowy model zapośredniczenia.

W tradycyjnym modelu kaskadowym pakiet SDK do wyświetlania 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, wyświetla reklamę. W przeciwnym razie żądanie jest wysyłane do następnej sieci w łańcuchu. Ten proces jest powtarzany, dopóki żądanie nie zostanie zrealizowane lub cały łańcuch się nie wyczerpie.

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ł żądań reklamy.

Zapośredniczenie automatyczne

Zapośredniczenie automatyczne (nazywane też „określaniem stawek przez kod w nagłówku”) jest alternatywą dla określania, która sieć reklamowa ma szansę wyświetlić żądanie reklamy, używając historycznego eCPM. W przypadku zapośredniczenia zautomatyzowanego dostawcy korzystają z rzeczywistych stawek, aby znaleźć zwycięską reklamę.

Schemat modelu zapośredniczenia zautomatyzowanego
Rys. 2. Model zautomatyzowanej zapośredniczenia

Zapośredniczenie hybrydowe

Niektóre rozwiązania w ramach zautomatyzowanej zapośredniczenia łączą sieci reklamowe w hybrydowym trybie kaskady i określania stawek, aby zapewnić większą kontrolę nad reklamami, a jednocześnie korzystać z korzyści korzystania z rzeczywistych wartości eCPM do maksymalizacji przychodów z uczestniczących sieci reklamowych.

W hybrydowych modelach zapośredniczenia sieci reklamowe i dostawcy zapośredniczenia mogą zapewnić deweloperom aplikacji większą elastyczność dzięki połączeniu elementów kaskady i określania stawek w czasie rzeczywistym. Modele hybrydowe umożliwiają deweloperom aplikacji konfigurowanie sieci reklamowych na podstawie historycznych wartości eCPM, dzięki czemu mogą oni wyświetlać reklamę, zanim zaczną określać stawki w czasie rzeczywistym z uczestniczącymi sieciami w celu wypełnienia możliwości reklamowych.

Zapośredniczenie kaskadowe Protected Audience API

Protected Audience API na Androida obsługuje zapośredniczenie kaskadowe przez prowadzenie wielu aukcji, każdą dla pojedynczego węzła na wykresie zapośredniczenia. W przypadku braku zwycięzcy aukcji wywoływany jest następny węzeł aukcji sieci aż do wyczerpania łańcucha. Proces zapośredniczenia kaskadowego wygląda tak:

  1. Pakiet SDK zapośredniczenia pobiera łańcuch zapośredniczenia z punktu końcowego serwera reklam kontekstowych, który może zwrócić reklamy kontekstowe lub łańcuchy zapośredniczenia.
  2. Jeśli punkt końcowy serwera reklam zwraca łańcuch zapośredniczenia, pakiet SDK zapośredniczenia przechodzi kolejno przez każdy element łańcucha, wywołując pakiet SDK odpowiedniej sieci reklamowej, aby wybrać reklamy kontekstowe i remarketingowe. Każdy element w łańcuchu reprezentuje żądanie sieci reklamowej o zakup przestrzeni reklamowej w określonej cenie za określoną liczbę wyświetleń, kliknięć lub czas wyświetlania reklamy.
  3. Jeśli żaden z elementów zamówienia w łańcuchu nie wybierze zwycięskiej reklamy, pakiet SDK zapośredniczenia może wyświetlić reklamę z własnej sieci reklamowej, przeprowadzając wybór reklam w ramach Protected Audience API, który uwzględnia zarówno reklamy remarketingowe, jak i kontekstowe.

Schemat procesu zapośredniczenia kaskadowego w ramach Protected Audience API
Rysunek 3. Zapośredniczenie kaskadowe z interfejsem Protected Audience API.

Poprzedni diagram przedstawia przykładowy algorytm zapośredniczenia kaskadowego, który może wdrożyć pakiet SDK zapośredniczenia, ale bez możliwości optymalizacji własnej sieci reklamowej. Protected Audience API obsługuje optymalizację własnych sieci reklamowych, umożliwiając łańcuch procesów wyboru reklam i raportowanie zwycięskich wyświetleń.

Wynik wyboru reklamy

Zwracany typ selectAds() jest obiektem AdSelectionOutcome. AdSelectionOutcome zawiera identyfikator URI renderowania zwycięskiej reklamy oraz AdSelectionId, który jest nieprzejrzystą liczbą całkowitą identyfikującą kreację reklamową zwycięskiego elementu zamówienia.

AdSelectionOutcome {
  Uri renderUri;
  Long AdSelectionId;
}

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

Oferta pakietowa dotycząca wyboru reklam

Proponujemy przeciążenie selectAds() za pomocą AdSelectionFromOutcomesConfig.

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

Dzięki temu pakiet SDK zapośredniczenia może porównać stawkę reklamy zwycięskiej ze stawką minimalną w następnej sieci.

Przykład 1:

Przykład 2:

Raportowanie zwycięskich wyświetleń

Jeśli zwycięzca wygra selectAds(AdSelectionFromOutcomes), zapośredniczenie wygra właśnie tę reklamę. Następnie wywołuje metodę reportImpression z identyfikatorem wyboru zwycięskiej reklamy ze źródła selectAds(AdSelectionFromOutcomes) oraz z odpowiednią reklamą AdSelectionConfig.

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

Uruchom zapośredniczenie kaskadowe

Poniżej przedstawiono kolejność operacji realizowanych w ramach procesu zapośredniczenia kaskadowego.

  1. Uruchom wybór reklam własnych.
  2. Powtórz proces na łańcuchu zapośredniczenia. W przypadku każdej sieci zewnętrznej wykonaj te czynności:
    1. Kompilacja AdSelectionFromOutcomeConfig, w tym własny outcomeId i dolny poziom stawki pakietu SDK firmy zewnętrznej
    2. Wywołaj selectAds(), podając config z poprzedniego kroku.
    3. Jeśli wynik nie jest pusty, zwraca reklamę.
    4. Wywołaj metodę selectAds() obecnego adaptera sieci SDK. Jeśli wynik nie jest pusty, zwraca reklamę.
  3. Jeśli w łańcuchu nie zostanie znaleziony zwycięzca, zwróć reklamę własną.

Sprawdzone metody

Przeprowadzenie aukcji kontekstowych przed własną optymalizacją

Popyt na potrzeby remarketingu może generować wysokie stawki, które mogą przynieść dobre wyniki w łańcuchu zapośredniczenia. Obcinanie to proces, który często stosuje się do włączenia własnej optymalizacji poprzez zawężenie listy odbiorców remarketingu.

Żądania remarketingu w interfejsie Protected Audience API są dostępne tylko po stronie klienta w ramach aukcji Protected Audience API. Może to utrudniać włączenie własnej optymalizacji po stronie serwera. Aby wyeliminować problemy z własną optymalizacją, najpierw uruchom aukcję kontekstową, a potem przeprowadź własną optymalizację na podstawie zwycięskiej reklamy w sposób opisany wcześniej na tej stronie.

Dbaj o to, aby łańcuchy zapośredniczenia na urządzeniu były jak najmniejsze

Aby uzyskać optymalną skuteczność, łańcuchy zapośredniczenia na urządzeniu powinny być małe. Koszt obliczeniowy na potrzeby realizacji na urządzeniu może być liniowy w zależności od liczby aukcji ocenianych w ramach łańcucha zapośredniczenia. Innymi słowy, im więcej węzłów, tym większe wymagania dotyczące cyklu obliczeniowego i tym dłuższy czas oczekiwania. Weź pod uwagę wpływ czasu oczekiwania na przychody podczas przekazywania węzłów do oceny zapośredniczenia na urządzeniu.

Dodatkowe uwagi

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

Protected Audience API obsługuje zapośredniczenie kaskadowe i ograniczone zapośredniczenie automatyczne. W przyszłości udostępnimy więcej szczegółów na temat dodatkowych przypadków użycia zapośredniczenia zautomatyzowanego.

Wybór reklam w ramach Protected Audience API odbywa się po pobraniu reklam kontekstowych, dlatego wywołanie interfejsu Protected Audience API może wpływać na całkowity czas oczekiwania na żądanie reklamy.