Dowiedz się, jak szybsze wczytywanie zasobów innych firm może zwiększyć przychody.
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.
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”.