Jak Google poprawiło skuteczność reklam dzięki funkcji nieaktualnej weryfikacji w trakcie ponownej weryfikacji

Dowiedz się, jak szybsze wczytywanie zasobów innych firm może zwiększyć przychody.

Jonathon Imperiosi
Jonathon Imperiosi

To badanie pokazuje, jak poprawa skuteczności zasobów zewnętrznych może zwiększyć wyniki biznesowe. W poprzednim badaniu zmierzono koszt zwiększenia opóźnienia reklam, a w tym badaniu pokazano, jaką wartość ma poprawa skuteczności w rzeczywistych warunkach:

0,5%

Wzrost przychodów wydawców

2%

Zwiększenie liczby wczesnych wczytań skryptów reklamowych

Źródło: wewnętrzne dane Google, czerwiec–lipiec 2019 r.

Tło

Tag wydawcy Google (GPT) to skrypt tagowania reklam w Google Ad Manager, który żąda i renderuje reklamy displayowe w internecie. Dzięki zastosowaniu prostego nagłówka HTTP stale-while-revalidate w przypadku tagu GPT zespół GPT mógł zwiększyć szybkość i skuteczność reklam displayowych Google w przypadku partnerów wydawców. Tę samą technikę można zastosować w każdej sytuacji, w której szybsze wczytywanie skryptów jest ważniejsze niż wczytywanie najnowszego kodu.

Problem

GPT jest wdrażany jako skrypt bootstrappingu gpt.js, który ma krótki czas życia (TTL) wynoszący 15 minut. Krótki czas trwania umożliwia szybkie zaktualizowanie lub wycofanie skryptu. Po załadowaniu gpt.js wysyła żądania i wczytuje dodatkowe skrypty implementacji, które mają dłuższy czas życia.

Po upływie 15-minutowego okresu TTL wersja gpt.js w pamięci podręcznej traci ważność i musi zostać ponownie zweryfikowana. Wcześniej ten proces weryfikacji wymagał wysłania synchronicznego żądania sieci w celu pobrania nowej kopii skryptu, co powodowało opóźnienie pierwszego żądania reklamy.

Rozwiązanie

Atrybut stale-while-revalidate jest używany przez nagłówek Cache-Control i określa dodatkowe okno czasowe, w którym pamięć podręczna może używać nieaktualnego zasobu, podczas gdy zasób jest weryfikowany asynchronicznie. Dzięki temu deweloperzy mogą zachować równowagę między natychmiastowością (natychmiastowe wczytywanie treści z pamięci podręcznej) a świeżością (zapewnienie, że aktualizacje treści z pamięci podręcznej będą używane w przyszłości).

Studium przypadku reklam displayowych Google

W 2016 r. zespół GPT dodał nagłówek Cache-Control do odpowiedzi HTTP gpt.js, przewidując, że przeglądarki zaimplementują stale-while-revalidate:

cache-control: private, max-age=900, stale-while-revalidate=3600

To ustawienie oznacza, że jeśli gpt.js zostanie zażądany w okresie 15–60 minut od poprzedniej wartości w pamięci podręcznej, do spełnienia żądania zostanie użyta wartość z pamięci podręcznej, nawet jeśli jest nieaktualna. Jednocześnie w tle zostanie wysłane żądanie ponownej weryfikacji, aby wypełnić pamięć podręczną aktualną wartością na przyszłość.

W Chrome w wersji 75 funkcja stale-while-revalidate została wdrożona dla 99% ruchu, a dla 1% ruchu została tymczasowo wyłączona, aby móc zmierzyć jej wpływ. Aby przetestować skuteczność stale-while-revalidate w przypadku skryptów reklamowych, zespół GPT rejestrował dane z 1% (grupa eksperymentalna) oraz z 1% próbki ruchu z włączoną funkcją (grupa kontrolna). W ciągu 2 tygodni z danych zarejestrowanych z próbki o rozmiarze 5, 2 mld wyświetleń reklam Google Display Network grupa kontrolna wykazała:

  • wzrost liczby wyświetleń reklam o 0,3%.
  • Wzrost przychodów o 0,5%.
  • 2% wzrost wczesnego wczytywania skryptu reklamy (do 500 ms od rozpoczęcia wczytywania strony).
  • wzrost o 1,1% skutecznych wczytań skryptu reklamy.
Zmiana liczby wczytań skryptu reklamy w procentach w porównaniu z czasem od rozpoczęcia wczytywania strony do wczytania skryptu reklamy (ms)
Źródło: wewnętrzne dane Google, czerwiec–lipiec 2019 r.

Jak widać na wykresie powyżej, wyniki tego eksperymentu można przypisać do wzrostu liczby pomyślnych wczytań skryptu reklamy, z których większość miała miejsce na początku procesu wczytywania strony.

Wdrażanie w witrynie zasady „stale-while-revalidate”

Zespół GPT zauważył, że wprowadzenie stosunkowo prostej zmiany w nagłówkach HTTP za pomocą stale-while-revalidate może zwiększyć szybkość i poprawić wyniki biznesowe. Aby dowiedzieć się więcej o wdrażaniu stale-while-revalidate w swojej witrynie, przeczytaj artykuł Utrzymywanie aktualności treści dzięki funkcji „nieaktualne, ale zweryfikowane”.

Zdjęcie autorstwa KahicaUnsplash