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ć Twoje przychody.

Jonathon Imperiosi
Jonathon Imperiosi

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%.
Procentowa zmiana liczby wczytań skryptu reklamowego w porównaniu z czasem od rozpoczęcia wczytywania strony do wczytania skryptu reklamy (ms)
Źródło: wewnętrzne dane Google, od czerwca do lipca 2019 r.

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).

Zdjęcie: Kahica w: Unsplash