Je suis sûr que vous avez entendu parler des séquences ou utilisé une application avec une. Mais vous êtes-vous déjà demandé pourquoi les séries sont si populaires et si puissantes ? Eh bien, il est évident que les applications nécessitent autant d'attention que possible, mais à part cela, saviez-vous que lorsque la populaire application d'apprentissage Duolingo a introduit des widgets iOS pour afficher des séquences, l'engagement des utilisateurs a augmenté de 60 %. Soixante pour cent représente un changement massif de comportement et démontre comment les modèles de « séquences » peuvent être utilisés pour augmenter l’engagement et stimuler l’utilisation. À la base, une séquence est le nombre de jours consécutifs pendant lesquels un utilisateur effectue une activité spécifique. Certaines personnes le définissent également comme une habitude « gamifiée » ou une mesure conçue pour encourager une utilisation cohérente. Mais les séquences vont au-delà du simple fait d’être une mesure ou un enregistrement dans une application ; c'est plus psychologique que ça. Les instincts humains sont faciles à influencer avec les bons facteurs. Regardez ces trois facteurs : le progrès, la fierté et la peur de rater quelque chose (communément appelé FOMO). Qu’est-ce que tout cela a en commun ? Effort. Plus vous consacrez d’efforts à quelque chose, plus cela façonne votre identité, et c’est ainsi que les tendances se retrouvent dans le monde de la psychologie comportementale. Or, un grand pouvoir implique de grandes responsabilités, et à cause de cela, les séquences ont un côté sombre. Dans cet article, nous aborderons la psychologie, l'UX et les principes de conception derrière la création d'un système de séquences efficace. Nous examinerons (1) pourquoi notre cerveau réagit presque instinctivement à l'activité des séquences, (2) comment concevoir des séquences de manière à réellement aider les utilisateurs et (3) le travail technique impliqué dans la création d'un modèle de séquence. La psychologie derrière les stries Pour concevoir et construire un système de séquences efficace, nous devons comprendre comment il s'aligne sur la façon dont notre cerveau est câblé. Par exemple, qu’est-ce qui le rend si efficace dans la mesure où nous ressentons autant de dévouement intense pour protéger nos séquences ? Il existe trois principes psychologiques intéressants et bien documentés qui soutiennent ce qui rend les séquences si puissantes et si addictives. Aversion aux pertes C’est probablement la force la plus importante derrière les séquences. Je dis cela parce que la plupart du temps, on ne peut presque pas éviter cela dans la vie. Pensez-y de cette façon : si un ami vous donne 100 $, vous seriez heureux. Mais si vous perdiez 100 $ de votre portefeuille, cela vous ferait encore plus mal. Le poids émotionnel de ces situations n’est pas égal. La perte fait bien plus mal que le gain ne fait du bien. Allons plus loin et disons que je vous donne 100 $ et vous demande de jouer un pari. Il y a 50 % de chances que vous gagniez 100 $ supplémentaires et 50 % de chances que vous perdiez les 100 $ d’origine. Le prendriez-vous ? Je ne le ferais pas. La plupart des gens ne le feraient pas. C’est l’aversion aux pertes. Si on y réfléchit, c’est logique, c’est compréhensible, c’est humain. Le concept derrière l’aversion à la perte est que nous ressentons la douleur de perdre quelque chose deux fois plus que le plaisir de gagner quelque chose de valeur égale. En termes psychologiques, la perte persiste plus que les gains. Vous voyez probablement le rapport avec les séquences. Pour construire une séquence notable, cela demande des efforts ; à mesure qu’une séquence se développe, la motivation qui la sous-tend commence à s’estomper ; ou plus exactement, cela commence à devenir secondaire. Voici un exemple : disons que votre ami a une séquence de trois jours en fermant ses « Move Rings » sur son Apple Watch. Ils n’ont presque rien à perdre à part vouloir atteindre leur objectif et être cohérents. Dans le même temps, vous avez une impressionnante séquence de 219 jours. Il y a de fortes chances que vous soyez pris au piège par la peur de le perdre. Vous ne pensez probablement pas à la réussite à ce stade ; il s’agit davantage de protéger vos efforts investis, et c’est l’aversion aux pertes. Duolingo explique comment l'aversion aux pertes contribue à la réticence d'un utilisateur à interrompre une longue séquence, même pendant ses jours les plus paresseux. D’une certaine manière, une séquence peut se transformer en habitude lorsque l’aversion à la perte s’installe. Le modèle de comportement Fogg (B = MAP) Maintenant que nous comprenons la peur de perdre les efforts investis dans des séquences plus longues, une autre question est : qu’est-ce qui nous pousse à faire cette chose en premier lieu, jour après jour, avant même que la séquence ne devienne importante ? C’est l’objet du modèle comportemental Fogg. C'est relativement simple. Un comportement (B) ne se produit que lorsque trois facteurs – Motivation (M), Capacité (A) et Invite (P) – s'alignent au même moment. Ainsi, l'équation B=MAP. Si l’un de ces facteurs, même un seul, manque à ce moment-là, le comportement ne se produira pas. Ainsi, pour qu’un système de séquences soit efficace et récurrent, les trois facteurs doivent être présents : MotivationC'est fragile et ce n'est pas quelque chose qui est constamment présent. Il y a des jours où tu esmotivé à apprendre l’espagnol, et des jours où vous ne ressentez même pas un iota de volonté pour apprendre la langue. La motivation en elle-même pour développer une habitude n’est pas fiable et est une bataille perdue d’avance dès le premier jour. CapacitéPour compenser les limites de la motivation, la capacité est essentielle. Dans ce contexte, la capacité signifie la facilité d’action, c’est-à-dire que l’effort est si facile qu’il est irréaliste de dire qu’il n’est pas possible. La plupart des applications l'utilisent intentionnellement. Apple Fitness a juste besoin que vous restiez debout une minute toutes les heures pour gagner une coche vers votre objectif Stand. Duolingo n’a besoin que d’une seule leçon terminée. Ces tâches ne nécessitent pas beaucoup d’efforts. La barrière est si basse que même dans vos pires jours, vous pouvez le faire. Mais l’effort combiné d’une séquence en cours est le point où l’idée de perdre cette séquence entre en jeu. InviteC'est ce qui complète l'équation. Les humains sont naturellement oublieux, alors oui, la capacité peut nous y amener à 90 %. Mais une invite nous rappelle d’agir. Les séquences sont persistantes de par leur conception, il faut donc constamment rappeler aux utilisateurs d'agir. Pour voir à quel point une invite peut être puissante, Duolingo a effectué un test A/B pour voir si un petit badge rouge sur l'icône de l'application augmentait une utilisation cohérente. Il a généré une augmentation de 6 % du nombre d’utilisateurs actifs quotidiens. Juste un badge rouge. Limites du modèle Cela étant dit, le modèle Fogg présente une limite : les critiques et les recherches modernes ont remarqué qu'une conception qui s'appuie trop sur des invites, comme les notifications agressives, risque de créer une fatigue mentale. Les notifications constantes et les heures supplémentaires pourraient entraîner le désabonnement des utilisateurs. Alors faites attention à ça. L'effet Zeigarnik Que ressentez-vous lorsque vous laissez une tâche ou un projet à moitié terminé ? Cela irrite beaucoup de gens car les tâches inachevées occupent plus d’espace mental que les choses que nous accomplissons. Quand quelque chose est fait et terminé, nous avons tendance à l’oublier. Quand quelque chose n’est pas fait, cela a tendance à nous peser sur l’esprit. C'est exactement pourquoi les produits numériques utilisent des indicateurs de progression artificiels, comme la barre de complétion de profil d'Upwork, pour faire savoir à un utilisateur que son profil n'est « complet qu'à 60 % ». Cela incite l'utilisateur à terminer ce qu'il a commencé.
Regardons un autre exemple. Vous avez cinq tâches dans une application de liste de tâches et, à la fin de la journée, vous n'en vérifiez que quatre comme étant terminées. Beaucoup d’entre nous se sentiront inachevés à cause de cette tâche inachevée. C’est là l’effet Zeigarnik. L'effet Zeigarnik a été démontré par la psychologue Bluma Zeigarnik, qui a décrit que nous avons tendance à garder actives les tâches incomplètes dans notre mémoire plus longtemps que les tâches terminées. Un motif de stries exploite naturellement cela dans la conception UX. Disons que vous êtes au 63e jour d’une séquence d’apprentissage. À ce stade, vous êtes dans un schéma continu de tâches inachevées. Votre cerveau l’oublierait rarement car il se trouve au fond de votre esprit. À ce stade, c’est votre cerveau qui vous envoie des notifications. Lorsque vous rassemblez ces forces psychologiques, vous commencez à vraiment comprendre pourquoi les séquences ne sont pas simplement une fonctionnalité habituelle de l'application ; ils sont capables de remodeler le comportement humain. Mais quelque part le long de la ligne – je ne peux pas dire exactement quand, car cela diffère pour tout le monde – les choses atteignent un point où une séquence passe du « amusant » à quelque chose que vous sentez que vous ne pouvez pas vous permettre de perdre. Vous ne voulez pas que 58 jours d’efforts soient gaspillés, n’est-ce pas ? C’est ce qui rend un système de séquences efficace. Si elles sont bien faites, les séquences aident les utilisateurs à développer des habitudes étonnantes qui atteignent un objectif. Il peut s’agir de lire quotidiennement ou d’aller régulièrement au gymnase. Ces actions répétées (parfois petites) s’aggravent avec le temps et deviennent évidentes dans notre vie quotidienne. Mais il y a deux faces à chaque médaille. La fine frontière entre habitude et contrainte Si vous avez suivi, vous pouvez déjà constater qu’il existe un côté obscur dans les systèmes de stries. La formation d’habitudes est une question de cohérence avec un objectif répété. La contrainte, cependant, est la cohérence de travailler sur un objectif qui n’est plus nécessaire mais que l’on s’accroche par peur ou sous pression. C’est une ligne très fine. Vous vous brossez les dents tous les matins sans réfléchir ; c'est automatique et instinctif, avec un objectif clair : avoir une bonne haleine. C’est une séquence qui constitue une bonne habitude. Un système de séquences éthiques donne aux utilisateurs un espace pour respirer. Si, pour une raison quelconque, vous ne vous brossez pas les dents le matin, vous pouvez vous les brosser à midi. L'imperfection est permise sans crainte de perdre un long effort. La contrainte prend le chemin inverse, où une séquence vous rend anxieux, vous vous sentez coupable, voire épuisé, et parfois, vous avez l'impression de n'avoir rien accompli, malgré tous vos efforts.travail. Vous n’agissez pas parce que vous le souhaitez, mais parce que vous êtes inconsciemment terrifié à l’idée de voir vos progrès remis à zéro. Quelqu'un a même parfaitement décrit cela : "J'avais l'impression de tricher, mais je m'en fichais. Je ne suis rien sans ma séquence". Cela montre l’emprise extrême que les séquences peuvent avoir sur un individu. Dans la mesure où les utilisateurs commencent à lier leur estime de soi à une mesure arbitraire plutôt qu’à l’objectif initial ou à la raison pour laquelle ils ont commencé la séquence. La séquence devient ce qu'ils sont, pas seulement ce qu'ils font. Un système d’éthique bien conçu doit ressembler à un encouragement pour l’utilisateur, et non à une pression ou à une obligation. Cela concerne l’équilibre entre la motivation intrinsèque et extrinsèque. La motivation extrinsèque (récompenses externes, éviter les punitions) peut inciter les utilisateurs à démarrer, mais la motivation intrinsèque (accomplir la tâche pour un objectif personnel comme apprendre l'espagnol parce que vous voulez vraiment communiquer avec un être cher) est plus forte pour un engagement à long terme. Un bon système doit s’orienter vers la motivation intrinsèque avec une utilisation prudente des éléments extrinsèques, c’est-à-dire rappeler aux utilisateurs le chemin parcouru, sans les menacer de ce qu’ils pourraient perdre. Encore une fois, la frontière est mince. Un test simple lors de la conception d'un système de séquences consiste à prendre le temps de réfléchir si vos produits rapportent de l'argent en vendant des solutions à l'anxiété créée par votre produit. Si oui, il y a de fortes chances que vous exploitiez les utilisateurs. La question suivante devient donc : si je choisis d’utiliser streak, comment puis-je le concevoir de manière à aider réellement les utilisateurs à atteindre leurs objectifs ? L'UX de la conception du système Good Streak Je pense que c'est là que la plupart des projets mettent en place un système de séquences efficace ou le gâchent complètement. Passons en revue quelques principes UX d'une bonne conception de séquence. Gardez-le sans effort Vous avez probablement déjà entendu cela, peut-être dans des livres comme Atomic Habits, mais il convient de mentionner que l’un des moyens les plus simples de créer des habitudes est de rendre l’action petite et facile. Ceci est similaire au facteur de capacité dont nous avons discuté dans le modèle de comportement de Fogg. La première règle de toute conception de séquence devrait être de rendre l'action requise aussi petite qu'humainement possible tout en continuant à réaliser des progrès. Si une action quotidienne nécessite de la volonté, cette action ne durera pas cinq jours. Pourquoi? On ne peut pas être motivé cinq jours de suite. Exemple concret : si vous exécutez une application de méditation, vous n’avez pas besoin de faire suivre aux utilisateurs une session de 20 minutes juste pour maintenir la séquence. Essayez plutôt une seule minute, peut-être même quelque chose d’aussi petit que trente secondes. Comme le dit le proverbe, les petites gouttes d'eau font le puissant océan). Les petits efforts se transforment en grandes réalisations avec le temps. Tel devrait être l’objectif : éliminer les frictions, surtout lorsque les moments peuvent être difficiles. Lorsque les utilisateurs sont stressés ou dépassés, faites-leur savoir que le simple fait de se présenter, même pendant quelques secondes, compte comme un effort. Fournir des commentaires visuels clairs Les humains sont visuels par nature. La plupart du temps, nous avons besoin de voir quelque chose pour croire ; il y a ce besoin de visualiser les choses pour mieux les comprendre et relativiser. C'est pourquoi les modèles de séquences utilisent souvent des éléments visuels, comme des graphiques, des coches, des anneaux de progression et des grilles, pour visualiser l'effort. Regardez le graphique de contribution de GitHub. Il s’agit d’une simple visualisation de la cohérence. Pourtant, les développeurs le respirent comme de l’oxygène.
La clé n’est pas de rendre un système de séquences abstrait. Cela devrait sembler réel et mérité. Par exemple, Duolingo et les anneaux d'activité Fitness d'Apple utilisent des conceptions d'animation épurées à la fin d'une séquence, et GitHub affiche des données historiques sur la cohérence d'un utilisateur au fil du temps.
Utilisez le bon timing J'ai mentionné plus tôt que les humains sont généralement oublieux par nature et que les incitations peuvent aider à maintenir l'élan. Sans invites, la plupart des nouveaux utilisateurs oublient de continuer. La vie peut être chargée, la motivation disparaît et des choses se produisent. Même les utilisateurs de longue date bénéficient des invites, même si la plupart du temps, ils sont déjà enfermés dans la boucle des habitudes. Néanmoins, même la personne la plus engagée peut accidentellement manquer une journée. Votre système de séquences a certainement besoin de rappels. Les rappels rapides les plus utilisés sont les notifications push. Le timing est vraiment important lorsque vous travaillez avec des notifications push. Le type d’application compte également. Envoyer une notification à 9 heures du matin indiquant « Vous n'avez pas pratiqué aujourd'hui » est tout simplement bizarre pour une application d'apprentissage, car beaucoup ont des choses à faire dans la journée avant même de penser à terminer une leçon. Mais si nous parlons d’une application de fitness,est raisonnable et peut-être même devrait-il être rappelé plus tôt dans la journée. Les notifications push varient considérablement selon la catégorie d'applications. Les applications de fitness, par exemple, enregistrent un engagement plus élevé avec les notifications tôt le matin (7h-8h), tandis que les applications de productivité peuvent être plus performantes tôt midi. La clé est de tester A/B le timing de votre application en fonction des comportements de vos utilisateurs plutôt que de supposer que les choses sont universelles. Ce qui fonctionne pour une application de méditation peut ne pas fonctionner pour un tracker de codage. D'autres méthodes d'invite sont les points rouges sur l'icône de l'application et même les widgets de l'application. Les études varient, mais la personne moyenne déverrouille son appareil entre 50 et 150 fois par jour (PDF). Si un utilisateur voit un point rouge sur une application ou un widget indiquant une séquence en cours à chaque fois qu'il déverrouille son téléphone, cela augmente son engagement. N’en faites pas trop ; l'invite doit servir de rappel et non de rappel. Célébrez les jalons Un système de séquences devrait essayer de célébrer les jalons pour raviver les émotions, en particulier pour les utilisateurs profondément engagés dans une séquence. Lorsqu'un utilisateur atteint le jour 7, le jour 30, le jour 50, le jour 100, le jour 365, vous devriez en faire toute une histoire. Reconnaissez les réalisations, en particulier pour les utilisateurs de longue date.
Comme nous l'avons vu précédemment, Duolingo l'a compris et a mis en œuvre un graphique animé qui célèbre les étapes importantes avec des confettis. Certaines plateformes offrent même des bonus substantiels qui valident les efforts des utilisateurs. Et cela peut être bénéfique pour les applications, dans la mesure où les utilisateurs ont tendance à partager publiquement leurs étapes sur les réseaux sociaux. Un autre avantage est l’anticipation qui précède l’atteinte des jalons. Il ne s’agit pas seulement de maintenir la séquence en vie sans fin ; les utilisateurs ont quelque chose à espérer. Utiliser les mécanismes de grâce La vie est imprévisible. Les gens sont distraits. Tout bon système de séquences doit s’attendre à des imperfections. L’une des plus grandes menaces psychologiques pour un système de séquences est la remise à zéro après une seule journée manquée. Un système de séquences « éthique » devrait donner un peu de répit à l’utilisateur. Disons que vous avez une séquence d'apprentissage des échecs de 90 jours. Vous êtes cohérent depuis trois bons mois, et un jour, votre téléphone s'éteint en voyage, et juste comme ça, 90 devient 0 — tout, tous ces efforts, sont effacés et les progrès disparaissent. L'utilisateur pourrait être complètement dévasté. L’idée de le reconstruire à partir de zéro est tellement démoralisante que l’effort n’en vaut pas la peine. Dans le pire des cas, un utilisateur pourrait abandonner l’application après s’être senti comme un échec. Pensez à ajouter un mécanisme de « grâce » à votre système de séquences :
Streak FreezePermet aux utilisateurs de manquer intentionnellement une journée sans pénalité. Temps supplémentaire Attendez quelques heures (2 à 3) après le délai habituel avant de déclencher une réinitialisation. Modèles de décroissanceAu lieu d'une réinitialisation matérielle, la séquence diminue légèrement, par exemple, 10 jours sont déduits de la séquence par jour manqué.
Utilisez un ton encourageant Comparons deux messages affichés aux utilisateurs lorsqu'une séquence s'interrompt :
"Vous avez perdu votre séquence de 42 jours. Recommencez." "Vous êtes présent pendant 42 jours d'affilée. C'est un progrès incroyable ! Voulez-vous réessayer ?"
Les deux véhiculent la même information, mais l’impact émotionnel est différent. Le premier message démoraliserait très probablement l’utilisateur et le pousserait à arrêter de fumer. Le deuxième message célèbre ce qui a déjà été réalisé et encourage gentiment l'utilisateur à réessayer. Défis de conception des systèmes Streak Avant d'entrer dans les détails techniques de la construction d'un système de séquences, vous devez être conscient des défis auxquels vous pourriez être confronté. Les choses peuvent devenir compliquées, comme on peut s’y attendre. Gestion des fuseaux horaires Il y a une raison pour laquelle la gestion de l’heure et de la date fait partie des concepts les plus difficiles auxquels les développeurs sont confrontés. Il y a le formatage, l’internationalisation et bien plus encore à prendre en compte. Laissez-moi vous demander ceci : qu'est-ce qui compte comme un jour ? Nous savons que le monde fonctionne sur des fuseaux horaires différents, et comme si cela ne suffisait pas, certaines régions ont l'heure d'été (DST) qui se produit deux fois par an. Par où commencer à gérer ces cas extrêmes ? Qu’est-ce qui compte comme « début » de demain ? Certains développeurs tentent d'éviter cela en utilisant un fuseau horaire central, comme UTC. Pour certains utilisateurs, cela donnerait des résultats corrects, mais pour d’autres, cela pourrait être décalé d’une heure, deux heures ou plus. Cette incohérence ruine l'expérience utilisateur. Les utilisateurs ne se soucient pas de la façon dont vous gérez le temps passé en coulisses ; tout ce qu'ils s'attendent, c'est que s'ils effectuent une action consécutive à 23 h 40, elle devrait alors s'enregistrer à cette heure exacte, dans leur contexte. Vous devez définir « un jour » en fonction du fuseau horaire local de l'utilisateur, et non de l'heure du serveur. Bien sûr, tu peux prendre la facilitéacheminez et réinitialisez les séquences globalement pour tous les utilisateurs à minuit UTC, mais vous créez vraiment une injustice. Un Californien dispose toujours de huit heures supplémentaires pour accomplir sa tâche par rapport à un habitant de Londres. Il s’agit d’un défaut de conception injuste qui punit certains utilisateurs en raison de leur emplacement. Et que se passe-t-il si cette personne à Londres est seulement en visite, accomplit une tâche, puis retourne dans un autre fuseau horaire ? Une solution efficace à tout cela consiste à demander aux utilisateurs de définir explicitement leur fuseau horaire lors de l’intégration (de préférence après la première authentification). C'est une bonne idée d'inclure une note subtile indiquant que la fourniture d'informations sur le fuseau horaire est uniquement utilisée pour que l'application puisse suivre avec précision les progrès, plutôt que d'être utilisée comme données personnellement identifiables. Et c’est une autre bonne idée d’en faire un paramètre modifiable. Je suggère à quiconque d'éviter de gérer directement la logique de fuseau horaire dans une application. Utilisez des bibliothèques de dates éprouvées, comme Moment.js ou pytz (Python), etc. Il n'est pas nécessaire de réinventer la roue pour quelque chose d'aussi complexe que celui-ci. Jours manqués et cas extrêmes Un autre défi dont vous devez vous soucier concerne les cas extrêmes incontrôlables tels que la veille excessive des utilisateurs, les temps d'arrêt du serveur, le décalage, les pannes de réseau, etc. Utiliser l’idée de mécanismes de grâce, comme ceux dont nous avons discuté plus tôt, peut aider. Une fenêtre de grâce de deux heures pourrait aider à la fois l'utilisateur et le développeur, dans le sens où les utilisateurs ne sont pas sévèrement punis pour des circonstances de vie incontrôlables. Pour les développeurs, les fenêtres de grâce sont utiles dans les moments incontrôlables où le serveur tombe en panne au milieu de la nuit. Surtout, ne faites jamais confiance au client. Validez toujours côté serveur. Le serveur doit être la seule source de vérité. Prévention de la triche Encore une fois, je ne saurais trop insister sur ce point : assurez-vous de tout valider côté serveur. Les utilisateurs sont des humains, et les humains peuvent tricher s’ils en ont l’occasion. C'est inévitable. Vous pourriez essayer :
Stockage de toutes les actions avec les horodatages UTC. Le client peut envoyer son heure locale, mais le serveur peut immédiatement la convertir en UTC et la valider par rapport à l'heure du serveur. De cette façon, si l'horodatage du client est suspect, le système peut le rejeter comme une erreur et l'interface utilisateur peut répondre en conséquence. Utilisation du suivi basé sur les événements. En d’autres termes, stockez un enregistrement de chaque action avec des métadonnées comprenant des informations telles que l’ID de l’utilisateur, le type d’action effectuée, ainsi que l’horodatage et le fuseau horaire. Cela aide à la validation.
Construire un moteur de système Streak Ceci n’est pas un tutoriel de code, j’éviterai donc de vous décharger un tas de code. Je vais garder cela pratique et décrire comment les choses fonctionnent généralement sur un moteur de système de séquence en ce qui concerne l'architecture, le flux et la fiabilité. Architecture de base Comme je l'ai dit à plusieurs reprises, faites du serveur la source unique de vérité pour les données de séquence. L'architecture peut ressembler à ceci sur le serveur :
Stockez les données de chaque utilisateur dans une base de données. Stocke le magasin de séquences actuel (0 par défaut) sous forme d'entier. Stockez la préférence de fuseau horaire, c'est-à-dire la chaîne IANA Timezone (soit implicitement à partir de l'horodatage local, soit explicitement en demandant à l'utilisateur de sélectionner son fuseau horaire). Par exemple, « Amérique/New_York ». Gérez toute la logique pour déterminer si la séquence continue ou s'interrompt, avec une vérification du fuseau horaire relatif au fuseau horaire local de l'utilisateur.
Pendant ce temps, côté client :
Affiche la séquence en cours, normalement récupérée sur le serveur. Envoyez l'action effectuée sous forme de métadonnées au serveur pour valider si l'utilisateur a réellement effectué une action de séquence de qualification. Fournissez un retour visuel basé sur les réponses du serveur.
En bref, le cerveau est sur le serveur et le client est destiné à l'affichage et à la soumission d'événements. Cela vous évite de nombreux échecs et cas extrêmes, et facilite les mises à jour et les correctifs. Le flux logique Simulons une présentation pas à pas de la façon dont un moteur de système de séquences d'efficacité minimale fonctionnerait lorsqu'un utilisateur effectue une action :
L'utilisateur effectue une action consécutive de qualification. Le client envoie un événement au serveur sous forme de métadonnées. Cela pourrait être « L’utilisateur X a terminé l’action Y à l’horodatage Z ». Le serveur reçoit cet événement et effectue une validation de base. Est-ce un vrai utilisateur ? Sont-ils authentifiés ? L'action est-elle valide ? Le fuseau horaire est-il cohérent ? Si cela réussit, le serveur récupère les données de séquence de l’utilisateur de la base de données. Ensuite, convertissez l’horodatage de l’action reçue en fuseau horaire local de l’utilisateur. Laissez le serveur comparer les dates du calendrier (et non les horodatages) dans le fuseau horaire local de l'utilisateur : Si c'est le même jour, alors l'action est redondante et il n'y a aucun changement dans letraînée. Si c'est le lendemain, la séquence s'étend et s'incrémente de 1. S'il y a un intervalle de plus d'un jour, la séquence est interrompue. Cependant, c’est là que vous pouvez appliquer la mécanique de la grâce. Si le mécanisme de grâce est manqué, réinitialisez la séquence à 1.
Si vous choisissez d'enregistrer les données historiques pour les réalisations d'étapes, mettez à jour les variables telles que « séquence la plus longue » ou « nombre total de jours actifs ». Le serveur met ensuite à jour la base de données et répond au client. Quelque chose comme ça :
{ "current_streak": 48, "longest_streak": 50, "total_active_days": 120, "streak_extended": vrai, }
Comme mesure supplémentaire, le serveur doit réessayer ou rejeter et informer le client en cas d'échec au cours du processus. Construire pour la résilience Comme mentionné précédemment, les utilisateurs qui perdent une séquence à cause de bugs ou de temps d'arrêt du serveur sont une expérience utilisateur terrible, et les utilisateurs ne s'attendent pas à en prendre la responsabilité. Ainsi, votre système de séquences doit disposer de garanties pour ces scénarios. Si le serveur est en panne pour maintenance (ou pour quelque raison que ce soit), envisagez d'autoriser une fenêtre temporaire d'heures supplémentaires pour le réparer afin que les actions puissent être soumises en retard et toujours compter. Vous pouvez également choisir d'avertir les utilisateurs, surtout si la situation est susceptible d'affecter une séquence en cours. Remarque : établissez une porte dérobée d'administrateur où les données peuvent être restaurées manuellement. Les bugs sont inévitables, et certains utilisateurs appelleraient votre application ou vous contacteraient pour vous expliquer que leur séquence s'est interrompue pour une raison qu'ils ne pouvaient pas contrôler. Vous devriez pouvoir restaurer manuellement les stries si, après enquête, l'utilisateur a raison. Conclusion Une chose reste claire : les séquences sont vraiment puissantes en raison du fonctionnement fondamental de la psychologie humaine. Le meilleur système de séquences est celui auquel les utilisateurs ne pensent pas consciemment. C’est devenu une routine avec des résultats immédiats ou des progrès visibles, comme le brossage des dents qui devient une habitude régulière. Et je vais juste le dire : tous les produits n’ont pas besoin d’un système de stries. Devez-vous vraiment forcer la cohérence simplement parce que vous voulez des utilisateurs actifs quotidiennement ? La réponse pourrait très bien être « non ».