Comment Google a amélioré les performances des annonces grâce à l'attribut "stale-while-revalidate"

Découvrez comment augmenter vos revenus en chargeant des ressources tierces plus rapidement.

Jonathon Imperiosi
Jonathon Imperiosi

Cette étude de cas montre comment améliorer les performances de ressources tierces peut booster les métriques commerciales. Une étude précédente a mesuré le coût de la latence supplémentaire des annonces, mais cette étude démontre l'importance d'une amélioration réelle des performances:

0,5%

Augmentation des revenus pour les éditeurs

2%

Augmentation des premiers chargements de scripts d'annonce

Source: données internes Google, juin à juillet 2019.

Contexte

Google Publisher Tag (GPT) est le script d'ajout de tags d'emplacement publicitaire pour Google Ad Manager qui demande et affiche des annonces display sur le Web. En implémentant un en-tête HTTP stale-while-revalidate simple pour GPT, l'équipe GPT a pu améliorer la vitesse et les performances des annonces display Google pour ses éditeurs partenaires. La même technique peut être appliquée à tout autre scénario où le chargement de scripts le plus rapidement possible est plus important que le chargement du code le plus récent.

Problème

GPT est déployé sous la forme d'un script d'amorçage, gpt.js, qui bénéficie d'une courte durée de vie (TTL) de 15 minutes. Cette courte TTL permet de mettre à jour ou d'annuler le script rapidement. Une fois le chargement terminé, gpt.js demande et charge des scripts d'implémentation supplémentaires, dont la valeur TTL est plus longue.

Une fois la valeur TTL de 15 minutes expirée, la version de gpt.js dans le cache devient obsolète et doit être revalidée. Auparavant, ce processus de revalidation nécessitait l'envoi d'une requête réseau synchrone pour récupérer une nouvelle copie du script, ce qui ajoutait de la latence à la première demande d'annonce.

Solution

L'attribut stale-while-revalidate est utilisé par l'en-tête Cache-Control et définit une période supplémentaire pendant laquelle un cache peut utiliser un élément obsolète, tandis que celui-ci est revalidé de manière asynchrone. Cela aide les développeurs à trouver le bon équilibre entre l'immédiateté (chargement immédiat du contenu mis en cache) et l'actualisation, qui vous assure que les mises à jour du contenu mis en cache sont utilisées à l'avenir ;

Étude de cas sur les annonces display Google

L'équipe GPT a ajouté cet en-tête Cache-Control dans la réponse HTTP gpt.js en 2016, en prévision des navigateurs qui implémentent stale-while-revalidate:

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

Ce paramètre signifie que si gpt.js est demandé entre 15 et 60 minutes après la valeur mise en cache précédente, cette valeur mise en cache sera utilisée pour traiter la requête, même si elle est obsolète. Dans le même temps, une demande de revalidation est envoyée en arrière-plan afin de remplir le cache avec une nouvelle valeur pour une utilisation ultérieure.

Chrome a déployé stale-while-revalidate dans la version 75 sur 99% de tout le trafic. Cette fonctionnalité est alors temporairement désactivée pour 1% du trafic afin d'en mesurer l'impact. L'équipe GPT a enregistré des métriques issues de ces 1% (groupe de test) et d'un échantillon de 1% du trafic pour lequel la fonctionnalité est activée (groupe de contrôle), afin de tester l'efficacité de stale-while-revalidate pour les scripts d'annonce. Sur une période de deux semaines de métriques enregistrées sur un échantillon de 5,2 milliards d'impressions d'annonces display Google, le groupe de contrôle a observé:

  • Augmentation de 0,3% des impressions d'annonces
  • Augmentation de 0,5% des revenus.
  • Augmentation de 2% des premiers chargements de script d'annonce (à moins de 500 ms à partir du début du chargement de la page)
  • Augmentation globale de 1,1% du nombre de chargements de scripts d'annonce réussis
<ph type="x-smartling-placeholder">
</ph> Variation en points de pourcentage du nombre de chargements de scripts publicitaires par rapport au temps écoulé entre le début du chargement de la page et le chargement du script publicitaire (ms)
Source: données internes Google, juin à juillet 2019.

Comme le montre le graphique ci-dessus, les résultats de ce test peuvent être attribués à une augmentation du nombre de chargements de scripts publicitaires réussis, la majorité ayant lieu au début du processus de chargement de la page.

Mettre en œuvre la fonctionnalité "stale-while-revalidate" sur votre site

L'équipe GPT a constaté qu'une modification relativement simple des en-têtes HTTP avec stale-while-revalidate pouvait améliorer la vitesse et les métriques métier. Pour en savoir plus sur l'implémentation de stale-while-revalidate sur votre site, consultez l'article Mettre à jour les paramètres avec stale-while-revalidate.

Photo de Kahica sur Unsplash