Tutoriels

Un guide pratique de Tests A/B côté serveur avec Deno et

Taras Shynkarenko
Taras Shynkarenko
•Mis à jour : •9 min de lecture
Un guide pratique de Tests A/B côté serveur avec Deno etUn guide pratique de Tests A/B côté serveur avec Deno et

TL;DR, Réponse rapide

9 min de lecture

Les tests A/B côté serveur dans Fresh attribuent des variantes avant le rendu, évitent le scintillement de client-side, envoient uniquement des métadonnées d'expérience respectueuses de la confidentialité et mesurent les conversions globales par variante.

Choisir la variante avant le rendu de la page distingue les tests A/B côté serveur avec Deno, qui n'envoie du JavaScript que pour les îles interactives.

Les tests A/B côté serveur choisissent la variante avant le rendu de la page. Cela en fait un bon choix pour Deno Fresh, qui est d'abord serveur et envoie du JavaScript uniquement pour les îles interactives. La documentation sur l'architecture de Fresh décrit les pages telles que rendues sur le serveur avec uniquement des îlots hydratés sur le client. Voir la documentation Fresh sur architecture.

Cette approche évite le problème de test classique client-side : une page se charge, un script de test s'exécute et l'utilisateur voit un scintillement lorsque la variante change.

Que tester côté serveur

Les bons tests server-side incluent :

  • Mise en page des tarifs.
  • Longueur du formulaire d'inscription.
  • Copie de héros.
  • placement CTA.
  • Structure de navigation.
  • Ordre des étapes de paiement.
  • Parcours d'intégration.

Évitez de tester de petites modifications, sauf si vous avez un volume élevé. Pour les sites à faible trafic, testez les différences significatives ou utilisez la recherche qualitative au lieu de prétendre que de petits changements de couleur produiront des conclusions fiables.

Ce qui mérite un test côté serveur
Vaut la peine d'être testé
  • Mise en page de la page tarifaire
  • Ordre des étapes du paiement
  • Parcours d'onboarding
À éviter avec peu de trafic
  • Petits changements de couleur
  • Tests superficiels à faible volume
Les changements structurels à fort trafic résistent à une répartition côté serveur ; les petits ajustements sur des pages à faible trafic non.

Stratégie d'affectation

Vous avez besoin d’une affectation de variantes cohérente. Possibilités :

  1. Cookie anonyme de courte durée.
  2. Session côté serveur.
  3. Compte authentifié ID.
  4. Hachage déterministe d'un first-party ID stable.

Pour un site Web public, un cookie first-party de courte durée est simple, mais il peut néanmoins soulever des questions de consentement en fonction de la juridiction et de l'objectif. Si vous souhaitez éviter complètement les cookies, attribuez par demande des tests de contenu à faibles enjeux, mais comprenez que les visiteurs peuvent voir différentes variantes au fil des visites.

Pour les expériences de produits authentifiées, utilisez l'attribution au niveau du compte ou de l'utilisateur dans le cadre de votre gouvernance d'analyse de produits, et non des analyses de marketing publiques.

Un développeur travaillant sur un ordinateur portable, illustrant le code middleware qui attribue une variante avant le rendu de la page.

Fresh Forme d'implémentation

Le middleware Fresh peut s'exécuter avant une route et transmettre l'état via le contexte de la demande. La documentation Fresh explique que le middleware reçoit un contexte avec la requête et renvoie une réponse, et que le routage du système de fichiers peut définir le middleware dans les fichiers _middleware.ts. Voir Fresh documentation middleware.

Un flux typique :

  1. Le middleware vérifie si la demande est éligible à l'expérimentation.
  2. Il lit une affectation de variante existante si elle est présente.
  3. En cas d'absence, il attribue une variante en utilisant une méthode aléatoire stable.
  4. Il stocke la mission dans un cookie ou une session serveur de courte durée.
  5. Il transmet le nom_expérience et la variante au contexte de route.
  6. L'itinéraire restitue immédiatement la version correcte.
  7. Un événement d'exposition est enregistré une fois par session ou mission.
  8. Les événements de conversion incluent les mêmes métadonnées de test.

Conception d'événements respectueux de la confidentialité

Envoyez des métadonnées de test, pas d'identité :

Event: experiment_exposed
Properties:
- experiment_name = pricing_page_layout
- variant = compact
- page_template = pricing
 
Événement : demo_requested
Propriétés :
- nom_expérience = pricing_page_layout
- variante = compacte
- form_type = démo

N'envoyez pas d'e-mail, de nom, de société, d'utilisateur ID, d'adresse IP ou de contenu de formulaire en texte libre à l'analyse du site Web.

Trace d'événements, pas d'identité
Variante attribuée
experiment_exposed déclenché
demo_requested déclenché
Les deux événements transportent experiment_name et variant ; aucun ne révèle qui est le visiteur.

Évitez de compter les rechargements comme des expositions

Une exposition devrait signifier que le visiteur a eu une réelle chance de voir la variante. Si vous déclenchez un événement à chaque rendu du serveur, les rechargements augmentent le nombre.

Meilleures options :

Flowsery
Flowsery

Essai gratuit

Tableau de bord en temps réel

Suivi des objectifs

Suivi sans cookies

  • Définir un indicateur d'exposition au niveau de la session.
  • Exposition au feu une seule fois par mission d'expérimentation.
  • Suivez page_view normalement et gardez experimental_exposed séparé.
  • Excluez les robots et les demandes de prélecture lorsque cela est possible.

Résultats de mesure

Pour chaque variante, comparez :

  • Expositions.
  • Nombre de conversions.
  • Taux de conversion.
  • Progression de l'entonnoir.
  • Mélange d'appareils.
  • Mélange de sources.
  • Mesures de garde-fou telles que les erreurs de formulaire ou le rebond.

N'utilisez pas uniquement le nombre de conversions brut. Une variante avec plus de conversions peut simplement avoir reçu plus de trafic ou un meilleur mix de sources.

Mises en garde statistiques

Les tests A/B nécessitent suffisamment de volume. Si chaque variante compte quelques dizaines de visiteurs, les analyses peuvent toujours indiquer une direction, mais elles ne peuvent pas prouver grand-chose. Décidez à l'avance :

-Conversion primaire.

  • Durée d'exécution minimale.
  • Taille minimale de l'échantillon ou seuil pratique.
  • Segments à surveiller.
  • Métriques de garde-corps.
  • Règle d'arrêt.

Évitez de jeter un coup d’œil quotidiennement et de déclarer un gagnant lorsque le graphique semble passionnant.

Pourquoi le côté serveur s'adapte aux analyses axées sur la confidentialité

Les outils de test côté client ajoutent souvent des scripts, des cookies, des requêtes third-party et un scintillement visuel. Une configuration server-side peut être plus petite :

  • Pas de script de test third-party.
  • Pas de réécriture de DOM après chargement.
  • Moins de JavaScript expédié.
  • Les métadonnées des expériences restent minimes.
  • Les conversions peuvent être comptabilisées globalement.

Le modèle d'îles de Fresh est utile car le JavaScript interactif est optionnel. La documentation Fresh décrit les îlots comme les parties interactives du client de la page, tandis que le reste reste rendu par le serveur. Voir Fresh documentation des îles.

Conclusion

Les tests A/B côté serveur ne consistent pas à ajouter plus de suivi. Il s'agit de prendre des décisions contrôlées en matière de produits ou de marketing avec moins de frais généraux. Attribuez des variantes avant le rendu, gardez les métadonnées propres, mesurez les conversions globales et arrêtez le test uniquement lorsque le résultat est suffisamment solide pour modifier ce que vous expédiez.

Des rangées de baies de serveurs dans un centre de données, illustrant la couche de cache qui peut fausser un test côté serveur si elle est mal configurée.

Cachez soigneusement

Les expériences côté serveur et la mise en cache peuvent entrer en conflit. Si un CDN met en cache la première variante rendue pour tout le monde, votre test est interrompu. Soit vous modifiez le cache en fonction de l'affectation de l'expérience, soit vous désactivez la mise en cache pleine page sur les routes d'expérimentation, soit vous déplacez la partie variable derrière une décision Edge ou serveur qui n'est pas mise en cache de manière incorrecte.

Documenter le comportement du cache avant le lancement. De nombreux tests A/B échouent non pas à cause de statistiques, mais parce que l'infrastructure a servi la variante A à presque tout le monde.

Terminez le test proprement

Lorsqu'un gagnant est choisi, supprimez la logique d'affectation, les cookies obsolètes et les propriétés d'événement spécifiques à l'expérience. Conservez une annotation dans Analytics avec la date de lancement. Les expériences obsolètes depuis longtemps rendent les tableaux de bord plus difficiles à lire et peuvent maintenir en vie des cookies ou des branches inutiles.

Gardez les expériences suffisamment petites pour pouvoir être maintenues

Chaque expérience ajoute une logique de branchement. Nommez clairement les expériences, définissez une date d'expiration et attribuez un propriétaire. Si un test ne peut pas être surveillé, terminé et nettoyé, il ne doit pas être lancé. Les meilleurs systèmes de test server-side sont ennuyeux : un point de décision, une métrique principale, un ticket de nettoyage.

Liste de contrôle des expériences de pré-lancement

Avant la mise en ligne d'une expérience server-side, confirmez la méthode d'affectation, le comportement du cache, l'événement d'exposition, la conversion principale, les métriques de garde-fou, la règle de taille d'échantillon, le propriétaire et la date de nettoyage. Si un cookie ou une session de serveur est utilisé pour l'affectation, documentez pourquoi il est nécessaire et combien de temps il dure.

Après le lancement, comparez le nombre d'expositions avec le trafic des pages et le nombre de conversions avec les enregistrements backend. Si l’expérience ne peut pas se terminer proprement, ou si ses événements révèlent des données de formulaire personnel, le test n’est pas prêt.

Flowsery
Flowsery

Essai gratuit

Tableau de bord en temps réel

Suivi des objectifs

Suivi sans cookies

Questions fréquentes

Le test A/B côté serveur provoque-t-il le même effet de scintillement que les outils côté client ?

Fresh rend les pages sur le serveur et n'hydrate que les islands interactifs, si bien que la variante est fixée avant même que le HTML n'atteigne le navigateur. Cela évite le scintillement que provoquent les scripts de test côté client lorsqu'ils échangent le contenu après le chargement. La documentation d'architecture de Fresh décrit directement ce modèle de rendu centré sur le serveur.

Où se fait l'attribution de la variante dans une app Fresh ?

Le middleware s'exécute avant la route, vérifie l'éligibilité, lit ou crée l'attribution, puis transmet experiment_name et variant via le contexte de la requête. La route rend alors la bonne version dès le premier passage, sans échange côté client. La documentation de middleware de Fresh couvre le modèle _middleware.ts sur lequel cela repose.

Quelle méthode d'attribution convient pour une page marketing publique ?

Un cookie propriétaire de courte durée est l'option la plus simple, même s'il peut encore soulever des questions de consentement selon la juridiction. Si le cookie n'est pas une option, une attribution par requête fonctionne pour les tests de contenu à faible enjeu, mais les visiteurs peuvent voir une variante différente à chaque visite.

En quoi l'attribution des expériences produit authentifiées diffère-t-elle des tests marketing ?

L'attribution se fait au niveau du compte ou de l'utilisateur, dans le cadre de la gouvernance d'analytics produit plutôt que de l'analytics marketing public. Cela garde l'expérience des utilisateurs connectés séparée des décisions prises sur le trafic marketing anonyme.

Qu'est-ce qu'un événement d'exposition respectueux de la confidentialité ?

Un événement experiment_exposed avec experiment_name, variant et une propriété comme page_template, sans rien lié à l'identité. Les événements de conversion comme demo_requested portent les mêmes métadonnées d'expérience pour pouvoir être croisés par variante ensuite. L'e-mail, le nom, l'entreprise, l'ID utilisateur, l'adresse IP et le texte libre des formulaires restent totalement absents.

Pourquoi les rechargements gonflent-ils le compte d'expositions ?

Déclencher l'événement d'exposition à chaque rendu serveur compte chaque rechargement du même visiteur comme une nouvelle exposition et gonfle le dénominateur. Fixer un indicateur d'exposition au niveau de la session, ou ne déclencher l'événement qu'une seule fois par attribution, garde le compte lié à de réelles occasions de voir la variante, séparément du suivi habituel de page_view.

Le nombre brut de conversions suffit-il pour déclarer un gagnant ?

Le nombre brut seul peut induire en erreur, car les totaux de conversions varient avec le volume de trafic et le mix de sources. Comparer le taux de conversion, la progression du funnel, le mix d'appareils, le mix de sources et les métriques guardrail aux côtés des expositions donne une lecture plus juste.

De combien de trafic un test A/B côté serveur a-t-il besoin pour que les résultats aient un sens ?

Quelques dizaines de visiteurs par variante peuvent indiquer une direction, mais ne prouvent pas grand-chose. Décider à l'avance de la conversion principale, de la durée minimale, de la taille d'échantillon minimale et d'une règle d'arrêt évite de vérifier chaque jour et de déclarer un gagnant trop tôt.

Que se passe-t-il si un CDN met en cache la première variante rendue ?

Si un CDN met en cache cette première réponse rendue pour tout le monde, chaque visiteur suivant reçoit la même variante quelle que soit son attribution, et le test est cassé avant même de commencer. Faire varier le cache selon l'attribution de l'expérience, désactiver le caching de page complète sur les routes de l'expérience, ou déplacer la partie variable derrière une décision non mise en cache, évite ce problème.

Que doit-il se passer une fois qu'un test côté serveur a désigné un gagnant ?

La logique d'attribution, les cookies obsolètes et les propriétés d'événement propres à l'expérience sont retirés, et une annotation avec la date de lancement reste dans l'analytics. Des expériences mortes depuis longtemps qui continuent de tourner encombrent les dashboards et maintiennent en vie des cookies ou des branches inutiles.

Cet article vous a-t-il été utile ?

Dites-nous ce que vous en pensez !

Nous voir plus souvent sur Google

Un clic définit Flowsery comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

Flowsery

Flowsery

Des analyses orientées revenus pour votre site web

Suivez chaque visiteur, source et conversion en temps réel. Simple, puissant et sans cookies.

Tableau de bord en temps réel

Suivi des objectifs

Suivi sans cookies

Articles connexes