Finden Sie heraus, wie Sie Ressourcen von Drittanbietern schneller laden können, um Ihren Umsatz zu steigern.
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.
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.