Hier erfahren Sie, wie Sie durch schnelleres Laden von Drittanbieterressourcen Ihren Umsatz steigern können.
In dieser Fallstudie wird gezeigt, wie sich durch die Verbesserung der Leistung von Drittanbieterressourcen die Unternehmensmesswerte steigern lassen. In einer früheren Studie wurden die Kosten für zusätzliche Anzeigenlatenz gemessen. In dieser Studie wird der Wert einer Leistungsverbesserung in der Praxis demonstriert:
0,5%
Umsatzsteigerung für Publisher
2%
Häufigeres Laden von Anzeigenskripts
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 GPT konnte das GPT-Team die Geschwindigkeit und Leistung von Google-Displayanzeigen für seine Publisher-Partner verbessern. Dieselbe 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-Script gpt.js
bereitgestellt, das eine kurze Gültigkeitsdauer (TTL) von 15 Minuten hat. Durch diese kurze TTL kann das Skript schnell aktualisiert oder zurückgesetzt werden. Nach dem Laden werden mit gpt.js
zusätzliche Implementierungsskripts angefordert und geladen, die eine längere TTL haben.
Nach Ablauf der TTL von 15 Minuten ist die Version von gpt.js
im Cache veraltet und muss neu validiert werden. Bisher wurde bei diesem Revalidierungsprozess eine synchrone Netzwerkanfrage gesendet, um eine aktuelle Kopie des Skripts abzurufen. Dadurch wurde die erste Anzeigenanfrage verzögert.
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 altes Asset verwenden kann, während das Asset asynchron neu validiert wird. So können Entwickler ein Gleichgewicht zwischen Unmittelbarkeit – sofortiges Laden von Inhalten aus dem Cache – und Aktualität – sicherstellen, dass zukünftig Aktualisierungen der Inhalte aus dem Cache verwendet werden – herstellen.
Fallstudie zu Google-Displayanzeigen
Das GPT-Team hat diesen Cache-Control
-Header 2016 in die gpt.js
-HTTP-Antwort eingefügt, um darauf vorbereitet zu sein, dass Browser stale-while-revalidate
implementieren:
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 Revalidierungsanfrage gestellt, um den Cache mit einem neuen Wert für die zukünftige Verwendung zu füllen.
stale-while-revalidate
wurde in Chrome in Version 75 für 99% des Traffics eingeführt. Bei 1% des Traffics wurde die Funktion vorübergehend deaktiviert, um die Auswirkungen zu messen. Das GPT-Team hat Messwerte für dieses 1% (die Testgruppe) sowie für eine Stichprobe von 1% des Traffics mit aktivierter Funktion (die Kontrollgruppe) erfasst, um die Effektivität von stale-while-revalidate
für Anzeigen-Scripts zu testen. Im Laufe von zwei Wochen wurden Messwerte aus einer Stichprobe von 5, 2 Milliarden Impressionen von Google-Displayanzeigen erfasst.In der Kontrollgruppe wurde Folgendes beobachtet:
- 0,3% mehr Anzeigenimpressionen
- 0,5% mehr Umsatz
- 2% mehr frühe Anzeigen-Script-Ladevorgänge (< 500 ms nach Beginn des Seitenaufbaus)
- Die Anzahl der erfolgreichen Ladevorgänge von Anzeigen-Scripts ist insgesamt um 1,1% gestiegen.
Wie im Diagramm oben zu sehen ist, sind die Ergebnisse dieses Tests auf eine Zunahme erfolgreicher Ladevorgänge von Anzeigen-Scripts zurückzuführen, wobei die meisten zu Beginn des Seitenaufbaus stattfinden.
„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 Unternehmensmesswerte steigern kann. Weitere Informationen zur Implementierung von stale-while-revalidate
auf Ihrer eigenen Website finden Sie im Beitrag Keeping things fresh with stale-while-revalidate.