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. Poprzednie badanie mierzyło koszt dodatkowego czasu oczekiwania na reklamy, ale to badanie potwierdza wartość realnej poprawy skuteczności:
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ą metodę stosuje się w każdym innym scenariuszu, w którym ważniejsze jest jak najszybsze wczytywanie skryptów niż wczytywanie najnowszego kodu.
Problem
Tag GPT jest wdrażany jako skrypt inicjujący 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 minut TTL wersja gpt.js
w pamięci podręcznej staje się nieaktualna i musi zostać ponownie zweryfikowana. Wcześniej proces ponownej weryfikacji obejmował wysłanie 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 w nagłówku Cache-Control
i określa dodatkowy przedział czasu, w którym pamięć podręczna może używać nieaktualnego zasobu w czasie, gdy zasób jest ponownie weryfikowany asynchronicznie. Dzięki temu deweloperzy mogą znaleźć 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 oczekiwaniu na wdrożenie w przeglądarkach interfejsu stale-while-revalidate
w 2016 roku zespół GPT dodał ten nagłówek Cache-Control
w odpowiedzi HTTP gpt.js
:
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. W tym samym czasie 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 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 zbierania danych z próbki obejmującej 5, 2 miliarda wyświetleń reklam displayowych Google grupa kontrolna zaobserwował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 ogólnej liczby wczytywanych skryptów reklamowych o 1,1%
Jak widać na wykresie powyżej, wyniki tego eksperymentu można przypisać większej liczbie udanych wczytywań skryptów reklamowych, przy czym większość przypadków następuje 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”.