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

Hier erfahren Sie, wie Sie durch schnelleres Laden von Drittanbieterressourcen Ihren Umsatz steigern können.

Jonathon Imperiosi
Jonathon Imperiosi

Diese Fallstudie zeigt, wie die Verbesserung der Leistung von Drittanbieterressourcen die Geschäftsmetriken steigern kann. In einer vorherigen Studie wurden die Kosten der zusätzlichen Anzeigenlatenz gemessen. Diese Studie zeigt jedoch den Wert einer realen Leistungsverbesserung:

0,5 %

Umsatzsteigerung für Publisher

2%

Steigerung der frühen Ladevorgänge des Anzeigenskripts

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

Hintergrund

Das Google Publisher-Tag (GPT) ist das Skript zur Tag-Kennzeichnung von 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 Publisher-Partner verbessern. Dieselbe Technik kann auf alle anderen Szenarien angewendet werden, bei denen es wichtiger ist, Skripts so schnell wie möglich zu laden als den neuesten Code.

Das Problem

GPT wird als Bootstrapping-Skript (gpt.js) bereitgestellt, für das eine kurze Gültigkeitsdauer (TTL) von 15 Minuten gilt. Durch diese kurze TTL kann das Skript schnell aktualisiert oder zurückgesetzt werden. Nach dem Laden fordert gpt.js zusätzliche Implementierungsskripts an, die eine längere TTL haben, und lädt diese.

Nach Ablauf der 15-minütigen TTL wird die Version von gpt.js im Cache veraltet und muss neu validiert werden. Bisher war bei dieser erneuten Validierung eine synchrone Netzwerkanfrage erforderlich, um eine neue Kopie des Skripts abzurufen, wodurch die Latenz der ersten Anzeigenanfrage erhöht wurde.

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 neu validiert wird. So können Entwickler ein Gleichgewicht zwischen der Unmittelbarkeit – im Cache gespeicherter Inhalte sofort laden – und Aktualität: Hier erfahren Sie, wie Sie sicherstellen, dass die im Cache gespeicherten Inhalte auch in Zukunft aktualisiert werden.

Fallstudie zu Google-Displayanzeigen

Das GPT-Team hat 2016 der HTTP-Antwort gpt.js den folgenden Cache-Control-Header hinzugefügt, bevor Browser stale-while-revalidate implementieren:

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

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

Chrome führte stale-while-revalidate in Version 75 für 99% aller Zugriffe ein, sodass die Funktion zur Messung der Auswirkungen bei 1% der Zugriffe vorübergehend deaktiviert war. Das GPT-Team protokollierte Messwerte von 1% (Testgruppe) sowie 1% des Traffics mit aktivierter Funktion (Kontrollgruppe), um die Effektivität von stale-while-revalidate für Anzeigenskripts zu testen. Über einen Zeitraum von zwei Wochen mit erfassten Messwerten aus einer Stichprobe von 5, 2 Milliarden Impressionen für Google-Displayanzeigen stellte die Kontrollgruppe Folgendes fest:

  • 0,3% mehr Anzeigenimpressionen
  • 0,5% mehr Umsatz
  • 2% Steigerung bei frühen Ladezeiten des Anzeigenskripts (weniger als 500 ms ab Beginn des Seitenaufbaus)
  • 1,1% Steigerung beim erfolgreichen Laden des Anzeigenskripts insgesamt
<ph type="x-smartling-placeholder">
</ph> Prozentuale Änderung der Anzahl der geladenen Anzeigenskripts im Vergleich zur Zeit vom Beginn des Seitenaufbaus bis zum Laden des Anzeigenskripts (ms)
Quelle: interne Daten von Google, Juni bis Juli 2019.

Wie in der Abbildung oben dargestellt, sind die Ergebnisse dieses Tests auf eine Zunahme erfolgreicher Anzeigenskripts zurückzuführen. Der Großteil erfolgt bereits zu Beginn des Seitenladevorgangs.

Die Neuvalidierung der veralteten Version auf Ihrer Website implementieren

Das GPT-Team hat festgestellt, dass durch eine relativ einfache Änderung an HTTP-Headern mit stale-while-revalidate die Geschwindigkeit sowie die Geschäftsmesswerte gesteigert werden können. Weitere Informationen zur Implementierung von stale-while-revalidate auf Ihrer eigenen Website finden Sie im Beitrag Mit veraltete Überprüfungen auf dem neuesten Stand halten.

Foto von Kahica auf Unsplash