Dowiedz się, jak szybsze wczytywanie zasobów innych firm może zwiększyć Twoje przychody.
To studium przypadku pokazuje, jak poprawa wydajności zasobów zewnętrznych może poprawić wskaźniki biznesowe. W ramach poprzedniego badania mierzyliśmy koszt dodatkowego czasu oczekiwania na reklamę, ale to badanie obrazuje wartość rzeczywistej poprawy skuteczności:
0,5%
Wzrost przychodów dla wydawców
2%
Wzrost liczby wczesnych wczytań skryptu reklamy
Źródło: wewnętrzne dane Google, od czerwca do lipca 2019 r.
Wprowadzenie
Tag wydawcy Google (GPT) to skrypt tagowania reklam dla Google Ad Managera, który wysyła żądania reklam displayowych i renderuje je w internecie. Dzięki wdrożeniu prostego nagłówka HTTP stale-while-revalidate
na potrzeby GPT zespół GPT był w stanie zwiększyć szybkość i skuteczność reklam displayowych Google u partnerów wydawców. Tę samą technikę możesz zastosować we wszystkich innych sytuacjach, w których możliwie najszybsze ładowanie skryptów jest ważniejsze niż ładowanie najnowszego kodu.
Problem
Tag GPT jest wdrażany jako skrypt wczytywania (gpt.js
), który ma krótki czas życia danych (TTL) wynoszący 15 minut. Ten krótki czas TTL umożliwia szybkie aktualizowanie skryptu lub wycofywanie go. Po wczytaniu gpt.js
wysyła i wczytuje dodatkowe skrypty implementacji o dłuższej wartości TTL.
Po upływie 15 minut TTL wersja gpt.js
w pamięci podręcznej staje się nieaktualna i wymaga ponownej weryfikacji. Wcześniej proces ponownej weryfikacji wymagał wysyłania synchronicznego żądania sieciowego do pobrania nowej kopii skryptu, co wydłużało czas oczekiwania na pierwsze żądanie reklamy.
Rozwiązanie
Atrybut stale-while-revalidate
jest używany przez nagłówek Cache-Control
i określa dodatkowy okres, w którym pamięć podręczna może używać nieaktualnego zasobu, gdy zasób jest asynchronicznie weryfikowany. Pomaga to deweloperom zachować równowagę między tym, jak szybko – natychmiastowe wczytanie treści z pamięci podręcznej – a aktualnością – aby w przyszłości korzystać z aktualizacji zawartości zapisanej w pamięci podręcznej.
Studium przypadku dotyczące reklam displayowych Google
W 2016 roku zespół GPT dodał ten nagłówek Cache-Control
do odpowiedzi HTTP gpt.js
w oczekiwaniu na stosowanie w przeglądarkach stale-while-revalidate
:
cache-control: private, max-age=900, stale-while-revalidate=3600
To ustawienie oznacza, że jeśli żądanie gpt.js
zostanie wysłane po upływie 15–60 minut od poprzedniej wartości w pamięci podręcznej, do realizacji żądania zostanie wykorzystana wartość z pamięci podręcznej, mimo że jest ona nieaktualna. Jednocześnie w tle zostanie wysłana prośba o ponowną weryfikację, która wypełni pamięć podręczną nową wartością do wykorzystania w przyszłości.
W Chrome wdrożono stale-while-revalidate
w wersjach 75–99% całego ruchu, pozostawiając 1% ruchu z tymczasowo wyłączoną, aby mierzyć jej wpływ. Zespół GPT zarejestrował dane z tego 1% (grupy eksperymentalnej) oraz 1% próbki ruchu z włączoną funkcją (grupą kontrolną), aby przetestować skuteczność stale-while-revalidate
w skryptach reklamowych. W ciągu 2 tygodni zarejestrowanych na podstawie próbki o rozmiarze 5, 2 mld wyświetleń reklam displayowych Google grupa kontrolna zaobserwowała:
- Wzrost liczby wyświetleń reklamy o 0,3%.
- Wzrost przychodów o 0,5%.
- Wzrost liczby wczesnych wczytań skryptu reklamowego o 2% (poniżej 500 ms od rozpoczęcia wczytywania strony).
- Wzrost liczby udanych operacji wczytywania skryptu o 1,1%.
Jak widać na wykresie powyżej, wyniki tego eksperymentu można przypisać wzrostowi liczby udanych skryptów reklamowych, z których większość ma miejsce na początku procesu wczytywania strony.
Wdrażanie w witrynie trybu nieaktualnej weryfikacji podczas ponownej weryfikacji
Zespół GPT zauważył, że stosunkowo prosta zmiana w nagłówkach HTTP za pomocą stale-while-revalidate
może poprawić szybkość i poprawić wskaźniki biznesowe. Więcej informacji o wdrażaniu stale-while-revalidate
w witrynie znajdziesz w poście na temat aktualizowania treści dzięki nieaktualnym danym na bieżąco-revalidate (w języku angielskim).