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

Finden Sie heraus, wie Sie Ressourcen von Drittanbietern schneller laden können, um Ihren Umsatz zu steigern.

Jonathon Imperiosi
Jonathon Imperiosi

Diese Fallstudie zeigt, wie die Verbesserung der Leistung von Drittanbieter-Ressourcen die Geschäftsmetriken verbessern kann. In einer früheren Studie wurden die Kosten durch die zusätzliche Anzeigenlatenz gemessen. Diese Studie belegt jedoch den Wert einer Leistungssteigerung in der Praxis:

0,5 %

Umsatzsteigerung für Publisher

2%

Anstieg der frühen Ladevorgänge von Anzeigenskripts

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

Hintergrund

Das Google Publisher-Tag (GPT) ist das Anzeigen-Tagging-Skript 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 GPT konnte das GPT-Team die Geschwindigkeit und Leistung von Google-Displayanzeigen für seine Publisher-Partner verbessern. Die gleiche Technik kann auf jedes andere Szenario angewendet werden, in dem das Laden von Skripts so schnell wie möglich wichtiger ist als das Laden des neuesten Codes.

Das Problem

GPT wird als Bootstrapping-Skript gpt.js bereitgestellt, das eine kurze Gültigkeitsdauer (TTL) von 15 Minuten hat. Dank dieser kurzen TTL kann das Skript schnell aktualisiert oder zurückgesetzt werden. Nach dem Laden fordert gpt.js zusätzliche Implementierungsskripts mit einer längeren TTL an und lädt sie.

Nach Ablauf der 15-minütigen TTL ist die Version von gpt.js im Cache veraltet und muss neu validiert werden. Bisher war für diese erneute Validierung eine synchrone Netzwerkanfrage erforderlich, um eine neue Kopie des Skripts abzurufen, wodurch die Latenz der ersten Anzeigenanfrage zunahm.

Die Lösung

Das Attribut stale-while-revalidate wird vom Cache-Control-Header verwendet und definiert ein zusätzliches Zeitfenster, in dem ein Cache ein veraltetes Asset verwenden kann, während das Asset asynchron erneut validiert wird. So können Entwickler ein Gleichgewicht zwischen Unmittelbarkeit – im Cache gespeicherter Inhalte sofort laden und Aktualität finden – sicherstellen, dass Aktualisierungen der im Cache gespeicherten Inhalte in Zukunft verwendet werden.

Fallstudie zu Google-Displayanzeigen

Das GPT-Team hat 2016 diesen Cache-Control-Header in die HTTP-Antwort gpt.js eingefügt, da stale-while-revalidate in Vorbereitung auf Browser implementiert wurde:

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

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

Chrome hat stale-while-revalidate in Version 75 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 protokollierte Messwerte von 1% (Testgruppe) sowie 1% der Zugriffe, bei denen die Funktion aktiviert war (Kontrollgruppe), um die Effektivität von stale-while-revalidate für Anzeigenskripts zu testen. Über einen Zeitraum von zwei Wochen wurden Messwerte für eine Stichprobe von 5, 2 Milliarden Google-Displayanzeigen-Impressionen protokolliert:

  • Steigerung der Anzeigenimpressionen um 0,3 %
  • 0,5% mehr Umsatz.
  • 2% Anstieg bei den frühen Ladevorgängen von Anzeigenskripts (< 500 ms ab Beginn des Seitenaufbaus)
  • 1,1% Steigerung bei den erfolgreichen Laden von Anzeigenskripts insgesamt.
Prozentuale Änderung der Anzahl der Anzeigenskript-Ladevorgänge im Vergleich zur Zeit vom Start des Seitenaufbaus bis zum Laden des Anzeigenskripts (ms)
Quelle: interne Daten von Google, Juni bis Juli 2019

Wie im Diagramm oben dargestellt, können die Ergebnisse dieses Tests auf eine Zunahme erfolgreicher Anzeigenskript-Ladevorgänge zurückzuführen sein, die größtenteils zu Beginn des Seitenaufbaus stattfinden.

„Stale-while-revalid“ auf Ihrer Website implementieren

Das GPT-Team hat festgestellt, dass eine relativ einfache Änderung an den HTTP-Headern mit stale-while-revalidate die Geschwindigkeit verbessern und die Geschäftsmesswerte verbessern kann. Weitere Informationen zur Implementierung von stale-while-revalidate auf Ihrer eigenen Website finden Sie im Beitrag Präsentiert werden mit stale-while-revalidator.

Foto von Kahica bei Unsplash