Platformy reklamowe po stronie sprzedawcy zazwyczaj dywersyfikują źródła ofert reklamowych, aby optymalizować 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 wdrożyć funkcję mediacji kaskadowej w sposób chroniący prywatność. Obecnie sieci reklamowe udostępniają deweloperom aplikacji różne sposoby zapośredniczenia w aukcjach reklamowych pochodzących od wielu sprzedawców reklam:
- Zapośredniczenie kaskadowe: deweloperzy aplikacji definiują uporządkowaną listę sieci reklamowych, często uszeregowaną według historycznych eCPMs dla danej sieci. Ta lista jest nazywana łańcuchem mediacji. Platforma zapośredniczenia dewelopera aplikacji korzysta z tej listy, aby wywoływać sieci reklamowe w kolejności, w jakiej są na niej wymienione, i określać odpowiednie źródła popytu na reklamy.
- Zapośredniczenie automatyczne: deweloper aplikacji konfiguruje wiele sieci reklamowych, aby uczestniczyły w określaniu stawek za możliwości wyświetlania reklam. Te sieci mogą określać stawki w czasie rzeczywistym na podstawie tego, jak oceniają daną możliwość.
- Zapośredniczenie hybrydowe: połączenie technik zapośredniczenia kaskadowego i programowego.
Zapośredniczenie kaskadowe
W przypadku zapośredniczenia kaskadowego, gdy pojawia się możliwość wyświetlenia reklamy, pakiet SDK do reklam wysyła żądanie do serwera backendu. Zamiast odpowiadać na żądanie zwycięskim kreacją reklamy, serwer odpowiada łańcuchem zapośredniczenia, który zawiera listę sieci reklamowych uporządkowanych według historycznego eCPM.
Rysunek 1. Model zapośredniczenia kaskadowego.
W modelu kaskadowym po stronie serwera pakiet SDK do reklam wywołuje poszczególne sieci reklamowe (lub ich własny pakiet SDK do aukcji) w kolejności określonej przez łańcuch zapośredniczenia. Jeśli sieć reklamowa może zrealizować żądanie reklamy, wyświetla reklamę. Jeśli nie, żądanie jest wysyłane do następnej sieci w łańcuchu. Ten proces jest powtarzany, dopóki żądanie nie zostanie zrealizowane 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 ze źródeł żądań reklam własnych.
Automatyzacja – mediacja
Zapośredniczenie automatyczne (znane też jako „licytacja w nagłówku”) to alternatywa dla używania historycznego eCPM do określania, która sieć reklamowa ma szansę na obsłużenie żądania reklamy. W przypadku zapośredniczenia programowego dostawcy używają wartości stawek w czasie rzeczywistym, aby znaleźć zwycięską reklamę.
Rysunek 2. Model zautomatyzowanej mediacji
Zapośredniczenie hybrydowe
Niektóre rozwiązania do zapośredniczenia programowego łączą sieci reklamowe w trybie hybrydowym zapośredniczenia kaskadowego i określania stawek, aby zapewnić większą kontrolę nad reklamą, a jednocześnie korzystać z eCPM na żywo w celu maksymalizacji przychodów z uczestniczących sieci reklamowych.
W hybrydowych modelach zapośredniczenia sieci reklamowe i dostawcy usług zapośredniczenia mogą zapewnić deweloperom aplikacji większą elastyczność, łącząc elementy kaskadowego i real-time bidding. Modele hybrydowe umożliwiają deweloperom aplikacji konfigurowanie sieci reklamowych na podstawie historycznych wartości eCPM, co daje im możliwość wyświetlania reklamy przed przeprowadzeniem określania stawek w czasie rzeczywistym z sieciami uczestniczącymi w wypełnianiu możliwości wyświetlania reklam.
Zapośredniczenie kaskadowe w Protected Audience API
Protected Audience API na Androidzie obsługuje zapośredniczenie kaskadowe, przeprowadzając wiele aukcji, z których każda dotyczy pojedynczego węzła w grafie zapośredniczenia. Jeśli w aukcji nie ma zwycięzcy, wywoływany jest kolejny węzeł aukcji sieci, aż do wyczerpania łańcucha. Proces zapośredniczenia kaskadowego wygląda tak:
- Pakiet SDK do zapośredniczenia pobiera łańcuch zapośredniczenia z punktu końcowego serwera reklam kontekstowych, który może zwracać reklamy kontekstowe lub łańcuchy zapośredniczenia.
- Jeśli punkt końcowy serwera reklam zwróci łańcuch zapośredniczenia, pakiet SDK zapośredniczenia przechodzi kolejno przez wszystkie elementy łańcucha, wywołując pakiet SDK uczestniczącej sieci reklamowej w celu przeprowadzenia selekcji reklam kontekstowych i remarketingowych. Każdy element w łańcuchu reprezentuje żądanie sieci reklamowej dotyczące zakupu miejsca na reklamę za określoną cenę i na określoną liczbę wyświetleń, kliknięć lub czasu reklamowego.
- Jeśli żaden z elementów zamówienia w łańcuchu nie wybierze zwycięskiej reklamy, pakiet SDK do zapośredniczenia może wyświetlić reklamę z własnej sieci reklamowej, przeprowadzając wybór reklamy z ochroną odbiorców, który uwzględnia zarówno remarketing, jak i reklamy kontekstowe.
Rysunek 3. Mediacja kaskadowa z interfejsem Protected Audience API.
Powyższy diagram przedstawia przykład algorytmu zapośredniczenia kaskadowego, który może zaimplementować pakiet SDK do zapośredniczenia, ale bez możliwości optymalizacji przez sieć reklamową własną. Interfejs Protected Audience API obsługuje optymalizację własnych sieci reklamowych, umożliwiając łączenie procesów wyboru reklam i raportowanie zwycięskich wyświetleń.
Wynik AdSelection
Typem zwracanym przez funkcję selectAds() jest obiekt AdSelectionOutcome.
AdSelectionOutcome zawiera adres URI renderowania zwycięskiej reklamy i AdSelectionId, czyli nieprzezroczystą liczbę całkowitą, która identyfikuje kreację reklamową zwycięskiego elementu zamówienia.
AdSelectionOutcome {
Uri renderUri;
Long AdSelectionId;
}
AdSelectionId działa jak wskaźnik do AdSelectionOutcome. Obecnie wartość
AdSelectionId jest przekazywana do metody reportResult() jako parametr
ReportImpressionInput, aby pomóc w identyfikowaniu prawidłowych reklam, w przypadku których wywoływane są metody reportWin() i reportResult().
Propozycja wyboru reklam w łańcuchu
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 do mediacji może porównać stawkę zwycięskiej reklamy ze stawką minimalną sieci następnej w kolejności.
Przykład 1:
Przykład 2:
Raportowanie zwycięskich wyświetleń
Jeśli w selectAds(AdSelectionFromOutcomes) jest zwycięzca, ta reklama wygrywa zapośredniczenie. Następnie wywoływana jest funkcja reportImpression z identyfikatorem wybranej reklamy z selectAds(AdSelectionFromOutcomes) i odpowiednim parametrem AdSelectionConfig.
Jeśli zwycięska reklama zostanie zwrócona z selectAds(AdSelectionConfig) w przypadku którejkolwiek z sieci, wywoływana jest funkcja reportImpression z identyfikatorem wyboru reklamy i konfiguracją z tego wywołania.
Uruchamianie zapośredniczenia kaskadowego
Oto kolejność działań w procesie zapośredniczenia kaskadowego:
- Uruchom wybieranie reklam własnych.
- Iteruj po łańcuchu zapośredniczenia. W przypadku każdej sieci zewnętrznej wykonaj te czynności:
- Twórz
AdSelectionFromOutcomeConfig, w tym cenę minimalnąoutcomeIddla pakietu SDK firmy zewnętrznej i danych własnych. - Wywołaj funkcję
selectAds()z wartościąconfigz poprzedniego kroku. - Jeśli wynik nie jest pusty, zwróć reklamę.
- Wywołaj metodę
selectAds()bieżącego adaptera sieciowego pakietu SDK. Jeśli wynik nie jest pusty, zwróć reklamę.
- Twórz
- Jeśli w łańcuchu nie znajdzie się zwycięzca, zwróć reklamę własną.
Sprawdzone metody
Przeprowadzanie aukcji kontekstowych przed optymalizacją własną
Popyt na remarketing może generować wysokie stawki, które mogą przynosić zwycięskie wyniki w łańcuchu mediacji. Obcinanie to proces, który jest często stosowany w celu włączenia optymalizacji własnych danych przez doprecyzowanie listy odbiorców remarketingowych.
Popyt na remarketing w interfejsie Protected Audience API jest dostępny tylko po stronie klienta w przypadku aukcji Protected Audience. Może to utrudniać włączenie optymalizacji danych własnych po stronie serwera. Aby ograniczyć problemy z optymalizacją na podstawie danych własnych, najpierw przeprowadź aukcję kontekstową, a potem optymalizację na podstawie danych własnych na podstawie wyniku zwycięskiej reklamy, jak opisano wcześniej na tej stronie.
Ograniczanie długości łańcuchów mediacji na urządzeniu
Aby zapewnić optymalną wydajność, łańcuchy mediacji na urządzeniu powinny być krótkie. Koszt obliczeniowy związany z wykonywaniem na urządzeniu może być liniowy w stosunku do liczby aukcji ocenianych w ramach łańcucha zapośredniczenia. Innymi słowy, większa liczba węzłów wiąże się z większymi wymaganiami dotyczącymi cykli obliczeniowych i dłuższym czasem oczekiwania. Przekazując węzły do oceny w ramach mediacji na urządzeniu, weź pod uwagę wpływ opóźnienia na przychody.
Uwagi dodatkowe
Interfejs Protected Audience API nie oferuje kompleksowego rozwiązania do mediacji w przypadku 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łudze dodatkowych przypadków użycia automatyzacji mediacji podamy w przyszłości.
Ponieważ wybór reklam Protected Audience odbywa się po pobraniu reklam kontekstowych, wywoływanie interfejsu Protected Audience API może wpływać na opóźnienie kompleksowe żądań reklam.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Przewodnik dla programistów dotyczący interfejsu Protected Audience API na Androidzie
- Obsługa kierowania na niestandardowych odbiorców za pomocą interfejsu Protected Audience API
- Protected Audience: przewodnik po integracji