Programmatic buying to jeden z najpopularniejszych sposobów zakupu reklamy online. Polega on na automatyzacji procesu zakupu powierzchni reklamowych za pomocą platformy DSP (Demand Side Platform). Platformy te wykorzystują zaawansowane algorytmy do zakupu.
W jaki sposób algorytmy wpływają na efektywność kampanii programmatic? Jakie są najważniejsze rodzaje algorytmów wykorzystywanych w DSP? Jakie są trendy w rozwoju algorytmów w programmatic?
O tym wszystkim rozmawiamy z Jackiem Wąsem, dyrektorem Customer Success w Adformie.
- Czym są algorytmy zakupowe w programmatic?
- Dlaczego strategie zakupowe są tak ważne?
- Jak wygląda od “wewnątrz” budowa takich algorytmów?
- Czy minimalizuj vCPM to lepszy dynamiczny CPM?
- Jakie rodzaje algorytmów stosujecie w procesie zakupu reklam w DSP? Czy są to głównie algorytmy oparte na uczeniu maszynowym, regułowe czy hybrydowe?
- Jakie wyzwania mogą wystąpić przy stosowaniu algorytmów zakupowych w DSP? Jakie metody stosujecie, aby je pokonać?
- Jakie sygnały i skąd odbierają algorytmy, aby lepiej optymalizować kampanię pod jej cel?
- Czy myślicie, lub może już pracujecie nad mieszanymi algorytmami optymalizującymi np. pod CPA i widoczność jednocześnie?
- Ulubiony algorytm z perspektywy insiderskiej i dlaczego?
Adam Jagłowski: Czym są algorytmy zakupowe w programmatic? W Adformie mieszczące się w sekcji “buying strategy”.
Jacek Wąs: Myślę, że na początku rozmowy o algorytmach warto przypomnieć, jak wygląda komunikacja między platformami SSP a DSP. Rozmawiając o strategiach zakupu, powinniśmy pamiętać, że to SSP wciąż bombarduje DSP milionami bid requestów – okazji do zakupu odsłony reklamowej.
Rola platformy zakupowej polega więc przede wszystkim na wyborze, na które z nich odpowiedzieć i jaką stawkę zaproponować. Ponieważ robi to w odpowiedzi na spływające bid requesty, musi w przeciągu określonej liczby milisekund podejmować decyzję o każdym z nich. Miliony takich decyzji w każdej sekundzie.
Z perspektywy platformy to do tego przede wszystkim służą algorytmy – żeby określić, które odsłony opłaca się kupić dla danej kampanii i za ile. O tym oczywiście musi też decydować użytkownik, wybierając strategię zgodną z celami kampanii.
Dlaczego strategie zakupowe są tak ważne?
Właśnie… Można by pomyśleć, że dobra platforma tak czy siak kupi odsłony sensownie, na dobrych placementach, po dobrej cenie, prawda? W jakimś stopniu tak oczywiście jest, zwłaszcza jeśli weźmiemy pod uwagę udział wydatków w ramach “deali” na ustalonych z góry powierzchniach, czy rozwój modelu Programmatic Guaranteed. Ale nawet w hipotetycznym świecie, w którym te modele byłyby absolutnie dominujące, nadal obowiązywałaby pewna uniwersalna prawda – że niektóre placementy sprawdzają się lepiej do jednych typów kampanii, a inne do innych.
Rozmawiamy o współczesnych platformach automatyzujących proces zakupu, ale ja nadal uważam, że żeby korzystać z nich w pełni świadomie, przydaje się też pewne doświadczenie z planowania i realizacji konkretnych placementów u konkretnych wydawców. Takie doświadczenie uczy, że wyświetlenie na przykład dużego rich mediowego bannera na stronie głównej popularnego portalu może być zupełnie bezsensowne z perspektywy celów wybranej kampanii. Ale jednoczenie do innej kampanii, planowanej z innymi KPI, może być strzałem w dziesiątkę.
Tak samo myślę o strategiach zakupowych platform DSP. Mając tak dużo potencjalnych odsłon do kupienia, Adform może kupić zupełnie inne inventory i inne formaty, optymalizując dajmy na to vCPM, niż gdyby kupował ze strategią CPA. Nie można powiedzieć, żeby jedna z tych strategii była gorsza od drugiej. Ale jedna może być właściwsza do zrealizowania określonego celu.
Na konferencji Adform DSP Day 2.0 tłumaczyłeś, że strategia kupowania “maximize viewability rate” sporo się różni od “minimize viewable CPM”. Na pierwszy rzut oka może być to niezrozumiałe, ale jak się zastanowić to staje się to oczywiste. Jak wygląda od “wewnątrz” budowa takich algorytmów?
Tak… Mam wrażenie, że temat widoczności nadal jest w naszej branży trochę mitologizowany. Wielokrotnie miałem okazję rozmawiać np. o rozliczaniu się tylko za widoczne odsłony z klientami, którzy byli jednocześnie zdziwieni, że niekoniecznie spowoduje to wzrost procentowej widoczności kampanii. A przecież przy rozliczeniu za kliki nikt nie spodziewa się raczej, że każda odsłona zakończy się kliknięciem
Ja osobiście jestem większym fanem optymalizacji pod vCPM i podobnie też było w Adform – ten algorytm zakupowy był dostępny wcześniej, zanim pojawiła się optymalizacja na cel procentowy. No bo czy możemy powiedzieć, że określony format na stronie X jest bardziej opłacalny niż taki sam na stronie Y tylko dlatego, że średnio raportuje widoczność dla 65% odsłon, a na stronie Y dla 60%? A co z kwestią kosztów albo zmierzonego czasu tej widoczności?
Ale, jak wiemy, dążenie do wzrostu średniej widoczności jest długofalowym celem wielu marek. I patrząc z perspektywy rozwoju całego rynku, to ważne, żeby promować wyświetlanie formatów mających więcej szans na widoczność (nawet jeśli dla efektywności pojedynczej kampanii to może nie mieć znaczenia). Dlatego strategia maksymalizująca % widoczności też jest dostępna we FLOW.
Tak jak wspominałem na konferencji, to są, wbrew pozorom, przykłady kompletnie innych filozofii budowy algorytmu kupującego. Filozofię vCPM opisać dość łatwo, bo jest w zasadzie podobna do filozofii CPC. Optymalizacja ze względu na efektywność kosztową pozwala na zastosowanie prostej logiki racjonalnego kupca, czyli “jeśli spodziewam się lepszego efektu, mogę zapłacić więcej; jeśli gorszego, zapłacę mniej”. Taka strategia gwarantuje, że nie przepłacimy za kupowane odsłony, pilnując jednocześnie kosztu tych widocznych. Logika jest prosta, a cała “magia” polega tylko na skutecznym przewidywaniu szansy, że dana odsłona będzie widoczna. Długofalowo powinna też być motywacją dla wydawców, żeby zwiększali widoczność swoich powierzchni, bo za placementy przynoszące średnio niską widoczność algorytm proponuje dużo niższe stawki.
Strategia Viewability Rate to zupełnie inna bajka. Użytkownik Adform oczywiście nadal wprowadza jakieś ramy kosztowe, ale algorytm wie, że nie może akceptować odsłon o niższej przewidywanej widoczności, płacąc odpowiednio mniej. Jednocześnie pojawia się pytanie “jaki poziom widoczności powinien być tym dobrym?”. A to też zależy, bo przecież każdy rynek jest inny, a nawet w ramach jednego kraju różni kupujący wybierają różne rozmiary banerów, powierzchnie czy konteksty. Tak że główny problem, który musi rozwiązać ten algorytm, to określenie, jakie jest to minimum spodziewanej widoczności, poniżej którego proponowane odsłony odrzucamy, żeby z jednej strony mieścić się w założonych kosztach, z drugiej mieć też na uwadze realizację zakładanego budżetu. I robi to, przewidując rozkład wszystkich dostępnych odsłon dla danych ustawień konkretnego Line Itemu.
Czy minimalizuj vCPM to lepszy dynamiczny CPM?
Powiedziałbym raczej, że dzięki optymalizacji vCPM, CPMem (tym liczonym z wszystkich odsłon, nie tylko widocznych) właściwie nie musimy się przejmować. Wiemy, że nie kupimy nic absurdalnie drogo (bo przecież nawet przy maksymalnej 100% pewności, że odsłona będzie widoczna, CPM będzie się najwyżej równał założonemu vCPM). Możemy też być spokojni, że za każdą odsłonę zapłacimy tyle, ile z perspektywy widoczności jest ona warta.
Jakie rodzaje algorytmów stosujecie w procesie zakupu reklam w DSP? Czy są to głównie algorytmy oparte na uczeniu maszynowym, regułowe czy hybrydowe?
Uczenie maszynowe jest na pewno podstawowym sposobem, w jaki wszystkie algorytmy w Adform optymalizują swoje działanie. Jednak w czasie pracy nad każdym z nich musi też być (często trwający dość długo) etap, w którym to zespół ludzi ustala, z jakich danych określone algorytmy powinny korzystać i co dla nich powinno być kryterium sukcesu. W ramach dziedziny “uczenia maszynowego” mówi się nawet też o podgrupie “supervised learning”, czyli “uczenia nadzorowanego”. Biorąc za przykład algorytm CPA, to ludzie muszą wskazać, jaki rodzaj danych widocznych wśród wszystkich zbieranych przez Adform opisuje w jakiś sposób konwersje, a które opisują użytkownika.
Jakie wyzwania mogą wystąpić przy stosowaniu algorytmów zakupowych w DSP? Jakie metody stosujecie, aby je pokonać?
Myślę, że podstawowym wyzwaniem dla większości algorytmów są ilość i jakość danych, które mogą wykorzystywać do uczenia się. Przez wiele lat najbardziej widocznym tego przykładem był komunikat widoczny w platformie Adform przy wyborze strategii CPA – że wymaga ona zebrania wcześniej przynajmniej 100 konwersji przypisanych już do kanałów programmatic. To naturalne, że jakieś dane do stworzenia modelu określającego prawdopodobieństwo tych konkretnych konwersji wybranego klienta są potrzebne. Ale oczywiście bardzo wielu klientów często zastanawiało się, w jaki sposób optymalizować działania zanim zbierze się ta wymagana baza.
Niewiele można zrobić, żeby nauczyć algorytm, jak dobrze działać, nie dając mu wystarczająco dużo danych Ale postanowiliśmy pomóc tym klientom, tworząc wariant algorytmu, który sam przełącza się między różnymi “trybami” działania. W sytuacji, kiedy nie zebrał jeszcze wystarczających informacji o konwersjach, system stosuje inne techniki optymalizacji – stara się znaleźć jakościowy ruch, który zgodnie z ogólnymi założeniami powinien w końcu przełożyć się na konwersje. Jednocześnie wraz ze zdobywaniem kolejnych konwersji model jest testowany i kiedy algorytm uzna, że daje on więcej korzyści, strategia sama “przełącza się” na klasyczne CPA.
Jakie sygnały i skąd odbierają algorytmy, aby lepiej optymalizować kampanię pod jej cel? Dajmy dla przykładu z wizerunkowych celów “minimalizuj koszt vCPM” i z performance algorytm pod CPA.
Myślę, że czytelników może zainteresować fakt, że różne algorytmy uczą się na zestawach danych o bardzo różnych poziomach ogólności. Wybrane przez Ciebie przykłady bardzo dobrze to obrazują. CPA jako najbardziej istotnego wkładu potrzebuje informacji o konkretnych wskazanych konwersjach wybranego reklamodawcy, więc można powiedzieć, że budowany model jest za każdym razem zupełnie inny.
Inteligencja uczenia maszynowego sprawia, że de facto dla każdego line itemu niezależnie wybierane są te sygnały, które dają największą szansę przewidzenia sukcesu – konwersji. Każdego dnia, biorąc pod uwagę osiągane dotychczas wyniki, algorytm dalej sam się trenuje.
Sygnały, które może wykorzystywać są czytane przede wszystkim z bid requestów i dotyczą zarówno informacji o użytkowniku – skąd się łączy, jak często na jakich stronach można go zobaczyć, czy konwertuje, itp., jak też informacji o konkretnie odsłonie, którą mielibyśmy kupić – jaki to format, na jakiej domenie, jakiej pozycji. Można powiedzieć, że dla każdej strategii dostępne sygnały są podobne (może z wyjątkiem informacji o konwersjach), ale jednak różna jest ich przydatność dla poszczególnych celów optymalizacji.
vCPM, wracając do Twojego przykładu, nie musi być trenowany oddzielnie dla każdego line itemu, czy nawet oddzielnie dla każdego klienta. Przewidywana widoczność poszczególnych placementów zależy przede wszystkim od charakterystyk powierzchni – jaki format, w którym miejscu, na jakiej stronie, przez kogo sprzedawany. Do tego przydają się też schematy zachowań poszczególnych użytkowników (niektórzy na przykład scrollują szybciej niż inni), rodzaj połączenia internetowego czy urządzenia, wraz z rozdzielczością ekranu. A te wszystkie sygnały można właściwie analizować na poziomie całego rynku, bo niezależnie od klienta, algorytm widzi te same prawidłowości.
Czy myślicie, lub może już pracujecie nad mieszanymi algorytmami optymalizującymi np. pod CPA i widoczność jednocześnie?
Myślimy… Chociaż przyznam, że w tym momencie wyższy priorytet mają pracę nad usprawnieniem działania niektórych algorytmów na ciasteczkach 1st party i innych identyfikatorach wspieranych przez ID Fusion. Wychodząc na chwilę poza algorytmy, sposobem na optymalizację kampanii dla paru KPI jednocześnie będzie też wprowadzana już za parę tygodni funkcjonalność automatycznego rozdzielania budżetów ze względu na performance. Będzie więc można prowadzić parę różnych strategii optymalizujących pod CPA, a jednocześnie system sam będzie rozdzielał między nimi budżet, patrząc na inne wskaźniki, np. widoczność.
Ta funkcjonalność, w połączeniu z wprowadzonymi niedawno rekomendacjami, otwiera wiele nowych sposobów łączenie automatycznych algorytmów z doświadczeniem osoby obsługującej kampanię.
Sam czekam z ciekawością na tę funkcjonalność. Ulubiony algorytm z perspektywy insiderskiej i dlaczego?
Hm… Naprawdę trudno wybrać jeden ulubiony Kiedyś na pewno był to CPA, myśląc z perspektywy różnorodności scenariuszy wykorzystania i przydatności w digitalowych strategiach. Ale dziś odpowiem chyba trochę zaskakująco – obecnie ulubionym nazwałbym “optimal price (dynamic CPM)”.
Czuję do niego dużo sympatii, bo to on dał początek wielu innym algorytmom z części “branding”. Dzięki niemu klienci mogą nie przepłacać za odsłony, nawet jeśli w danej strategii nie mają żadnego kosztowego celu, który by to ułatwił.
Lubię też rozmawiać o nim jako o przykładzie, jak technologia może ułatwić radzenie sobie z pewnymi problemami. W tym przypadku, po spopularyzowaniu się aukcji pierwszej ceny, wielu specjalistów programmatic stanęło przed ryzykiem, że CPM wpisywany w platformie, traktowany dotąd jako maksymalny, okaże się tym transakcyjnym – nawet dla odsłon, które nie są aż tyle warte. To oczywiście dotyczyło tylko line itemów korzystających z “fixed CPM”, nie tych z ustawionymi algorytmami, ale takich kampanii w platformie wciąż jest sporo.
Widząc to ryzyko, zaprojektowaliśmy algorytm “optimal price” tak, żeby sprawdzał wartość określonej odsłony na podstawie historycznych danych i obniżał ostateczny bid naszych klientów, żeby nie wchodzili do aukcji pierwszej ceny ze swoją maksymalną stawką.To że go lubię, nie znaczy oczywiście, że rekomendowałbym go do każdej kampanii “Optimal price” nie poprawia sam z siebie żadnej metryki, którą widziałbym jako dobry strategiczny cel kampanii. Pozwala tylko obniżyć CPM. Jeśli miałbym wybrać algorytm, który chciałbym rekomendować jak najczęściej, wybrałbym CPA
Z tą rekomendacją zostawiamy czytelników, dziękuję bardzo za wywiad i podzielenie się tajemną wiedzą insidera.