Dowiedz się, jak szybsze wczytywanie zasobów zewnętrznych może zwiększyć przychody.
To studium przypadku pokazuje, jak poprawa wydajności zasobów zewnętrznych może poprawić wyniki firmy. Poprzednie badanie mierzyło koszt dodatkowego czasu oczekiwania na reklamy, ale to badanie potwierdza wartość realnej poprawy skuteczności:
0,5%
Wzrost przychodów dla wydawców
2%
Wzrost wczesnego wczytywania skryptu reklamy
Źródło: wewnętrzne dane Google, czerwiec–lipiec 2019 r.
Tło
Tag wydawcy Google (GPT) to skrypt tagowania reklam dla Google Ad Managera, który wysyła żądania i renderuje reklamy displayowe w internecie. Dzięki wdrożeniu prostego nagłówka HTTP stale-while-revalidate
w GPT do tagów wydawcy Google udało się zwiększyć szybkość i skuteczność reklam displayowych Google wyświetlanych w witrynach 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 wczytywania (gpt.js
), którego czas życia danych (TTL) nie przekracza 15 minut. Ta krótka wartość TTL 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 TTL.
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 wymagał wysyłania synchronicznego żądania sieciowego w celu pobrania nowej kopii skryptu, co zwiększył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. Pomaga to deweloperom zachować równowagę między szybkością ładowania treści z pamięci podręcznej
aktualność – dzięki temu aktualizacje zawartości przechowywanej w pamięci podręcznej są używane w przyszłości;
Studium przypadku dotyczące 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 żądanie gpt.js
zostanie wysłane w okresie od 15 do 60 minut od poprzedniej wartości z pamięci podręcznej, do realizacji żądania zostanie użyta wartość z pamięci podręcznej, mimo że jest ona nieaktualna. Jednocześnie w tle zostanie wysłana prośba o ponowną weryfikację w celu zapełnienia pamięci podręcznej nową wartością do wykorzystania w przyszłości.
Chrome wdrożył stale-while-revalidate
w wersji od 75 do 99% całego ruchu, więc aby mierzyć wpływ tej funkcji, 1% ruchu zostało tymczasowo wyłączone. Zespół GPT zarejestrował dane z tego 1% (grupa eksperymentalna) oraz 1% ruchu z włączoną funkcją (grupa kontrolna), aby przetestować skuteczność tagu stale-while-revalidate
w przypadku skryptów reklamowych. 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%.
- Wzrost o 2% wcześniejszego wczytywania skryptu reklamowego (poniżej 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 wczytań skryptów reklamowych, przy czym większość przypadków następuje na wczesnym etapie procesu wczytywania strony.
Wdrażanie w witrynie funkcji „nieaktualne w trakcie ponownej weryfikacji”
Zespół GPT przekonał się, że stosunkowo prosta zmiana w nagłówkach HTTP za pomocą tagu stale-while-revalidate
może przyspieszyć działanie witryny i poprawić wskaźniki biznesowe. Więcej informacji o wdrażaniu tagu stale-while-revalidate
w swojej witrynie znajdziesz w poście na temat aktualizacji, gdy tylko nieaktualne.