So verbesserte Google die Anzeigenleistung mit „stale-while-revalid“

Hier erfahren Sie, wie Sie mit einem schnelleren Laden von Drittanbieterressourcen Ihren Umsatz steigern können.

Jonathon Imperiosi
Jonathon Imperiosi

In dieser Fallstudie wird gezeigt, wie sich die Geschäftsmesswerte durch die Verbesserung der Leistung von Drittanbieterressourcen steigern lassen. In einer vorherigen Studie wurden die Kosten der zusätzlichen Anzeigenlatenz gemessen. Diese Studie zeigt den Wert einer realen Leistungsverbesserung:

0,5 %

Umsatzsteigerung für Publisher

%

Mehr frühes Laden von Anzeigenscripts

Quelle: Interne Daten von Google, Juni bis Juli 2019.

Hintergrund

Das Google Publisher-Tag (GPT) ist das Anzeigen-Tagging-Script für Google Ad Manager, mit dem Displayanzeigen im Web angefordert und gerendert werden. Durch die Implementierung eines einfachen stale-while-revalidate-HTTP-Headers für das GPT konnte das GPT-Team die Geschwindigkeit und Leistung von Google-Displayanzeigen für seine Publisher-Partner verbessern. Diese Technik kann auf jedes andere Szenario angewendet werden, in dem das Laden von Scripts so schnell wie möglich wichtiger ist als das Laden des neuesten Codes.

Das Problem

GPT wird als Bootstrapping-Script (gpt.js) bereitgestellt, das eine kurze Gültigkeitsdauer (TTL) von 15 Minuten hat. Durch diese kurze TTL kann das Script schnell aktualisiert oder rückgängig gemacht werden. Nach dem Laden fordert gpt.js zusätzliche Implementierungsscripts an und lädt sie. Diese haben eine längere TTL.

Nach Ablauf der 15-minütigen TTL ist die Version von gpt.js im Cache veraltet und muss noch einmal validiert werden. Bisher war für diesen Vorgang eine synchrone Netzwerkanfrage erforderlich, um eine neue Kopie des Scripts abzurufen. Dadurch wurde die Latenz der ersten Anzeigenanfrage erhöht.

Die Lösung

Das stale-while-revalidate-Attribut wird vom Cache-Control-Header verwendet und definiert ein zusätzliches Zeitfenster, in dem ein Cache ein veraltete Asset verwenden kann, während das Asset asynchron noch einmal validiert wird. So können Entwickler einen Ausgleich zwischen Aktualität (sofortiges Laden von im Cache gespeicherten Inhalten) und Aktualität (Sorgen dafür, dass Aktualisierungen der im Cache gespeicherten Inhalte in Zukunft verwendet werden) schaffen.

Fallstudie zu Google-Displayanzeigen

Das GPT-Team hat diesen Cache-Control-Header 2016 in die gpt.js-HTTP-Antwort eingefügt, in Erwartung der Implementierung von stale-while-revalidate in Browsern:

cache-control: private, max-age=900, stale-while-revalidate=3600

Wenn gpt.js zwischen 15 und 60 Minuten nach dem vorherigen im Cache gespeicherten Wert angefordert wird, wird der im Cache gespeicherte Wert verwendet, um die Anfrage zu erfüllen, auch wenn er veraltet ist. Gleichzeitig wird im Hintergrund eine Anfrage zur erneuten Validierung gesendet, um den Cache mit einem neuen Wert für die zukünftige Verwendung zu füllen.

In Chrome-Version 75 wurde stale-while-revalidate für 99% des gesamten Traffics eingeführt. Bei 1% des Traffics war die Funktion vorübergehend deaktiviert, um ihre Auswirkungen zu messen. Das GPT-Team hat Messwerte für diese 1% (Testgruppe) sowie für eine 1 %-Stichprobe der Zugriffe mit aktivierter Funktion (Kontrollgruppe) erfasst, um die Effektivität von stale-while-revalidate für Anzeigenscripts zu testen. Im Laufe von zwei Wochen wurden Messwerte aus einer Stichprobe von 5, 2 Milliarden Google-Displayanzeigenimpressionen erfasst.In der Kontrollgruppe wurden folgende Ergebnisse erzielt:

  • 0,3% mehr Anzeigenimpressionen.
  • 0,5% mehr Umsatz.
  • 2% schnelleres Laden von Anzeigenscripts zu Beginn des Seitenaufbaus (< 500 ms nach Beginn des Seitenaufbaus)
  • 1,1% mehr erfolgreiche Anzeigenscript-Ladevorgänge insgesamt.
Prozentuale Änderung der Anzahl der Anzeigenskript-Ladevorgänge im Vergleich zur Zeit vom Beginn des Seitenaufbaus bis zum Laden des Anzeigenscripts (ms)
Quelle: Interne Daten von Google, Juni bis Juli 2019

Wie das Diagramm oben zeigt, lässt sich der Erfolg dieses Tests auf eine Steigerung der erfolgreichen Anzeigenskript-Ladevorgänge zurückführen, die vor allem zu Beginn des Seitenladevorgangs erfolgen.

„Stale-while-revalidate“ auf Ihrer Website implementieren

Das GPT-Team hat festgestellt, dass eine relativ einfache Änderung an HTTP-Headern mit stale-while-revalidate die Geschwindigkeit verbessern und die Geschäftsmesswerte steigern kann. Weitere Informationen zur Implementierung von stale-while-revalidate auf Ihrer eigenen Website finden Sie im Artikel Mit „stale-while-revalidate“ für aktuelle Inhalte sorgen.

Foto von Kahica auf Unsplash